Main Page | Class List | File List | Class Members | File Members

# TelepatiPkgMemMng.h

    00001 /* TelepatiPkgMemMng
    00002
    00003    Memory manager per i TelepatiPkg. Si occupa della creazione, gestione e distruzione dell'area di memoria condivisa necessaria per lo scambio di messaggi di tipo TelepatiPkg (o ereditieri) tra oggetti OPENR
    00004 */
    00005
    00006 #ifndef TELEPATIPKGMEMMNG_H_DEF
    00007 #define TELEPATIPKGMEMMNG_H_DEF
    00008
    00009 #include "TelepatiPkg.h"
    00010 #include <OPENR/RCRegion.h>
    00011 #include <OPENR/OSyslog.h>
    00012
    00013 using namespace std;
    00014
    00015 class TelepatiPkgMemMng {
    00016 #include "TelepatiCfg.h"
    00017  public:
    00018   TelepatiPkgMemMng() {
    00019     shareRegion=new RCRegion(SHARE_REGION_MAX_SIZE);
    00020     OSYSDEBUG(("Creata RCRegion, ref= %d\n", shareRegion->NumberOfReference()));};
    00021
    00022   ~TelepatiPkgMemMng() {
    00023     OSYSDEBUG(("Quasi distsrutta RCRegion, ref= %d\n", shareRegion->NumberOfReference()));
    00024     shareRegion->RemoveReference();};
    00025
    00026   RCRegion* pkgToRCRegion(TelepatiPkg* pkg);  //ritorna un puntatore a memoria condivisa contenente l'obj passato come parametro
    00027   TelepatiPkg* pkgFromRCRegion(RCRegion* region);  //ritorna l'oggetto contenuto nella memoria condivisa passata come parametro
    00028
    00029   inline int numOfReference() { return shareRegion->NumberOfReference();};
    00030   inline void justSent() { };
    00031 //shareRegion->RemoveReference();}
    00032
    00033  private:
    00034   RCRegion* shareRegion;
    00035 };
    00036
    00037
    00038 #endif