Class wrapper std::map + templates

Description

Voici un exemple d'utilisation de la stl (standard template library). Cette source fournit des classes permettant de simplifier l'utilisation de std::map. Les map permment de stocker des données associées à une clé. Cette source contient 4 classes : CControlerDB, CPtrControlerDB et leur version 2. Ces classes sont multi-thread safe, elle permettent d'accéder à des ressources (sous forme de pointer pour CPtr*) en bloquant un mutex. Les versions 1 garantissent un accès exclusif aux ressources, tandis que les versions 2, plus souples permettent d'obtenir des accès non exclusifs et exclusifs (grace à un compteur).
J'ai aussi inclus les classes CMutex et CThread qui ne sont pas de moi, et la classe CAutoMutex (de moi) qui utilise la propriété de visibilité des variables de bloc en C++ pour permettre de gérer les mutex facilement sans s'embeter à débloquer à chaque return ou throw de fonction.
Enjoy

Source / Exemple :


//CAutoMutex Example
#include "CMutex.h"
CMutex global_mutex;
void ma_fonction(void)
{
    CAutoMutex m(&global_mutex);//lock automatiquement le mutex

[do some stuff]
if( error_somewhere )
return; // perte de visibilité de la variable : appel destructor : unlock mutex
[some more stuff]
//end of function, perte de visibilité, ...
}

//1 seule ligne pour économiser du temps, du code et éviter les deadlocks.

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.