#ifndef __CDBSEM_H_ #define __CDBSEM_H_ #ifdef _WINDOWS64 #ifdef PUB_TOOLS_EXPORTS #define PUB_TOOLS_API __declspec(dllexport) #else #define PUB_TOOLS_API __declspec(dllimport) #endif #else #define PUB_TOOLS_API #endif #include #include #include #include #include #ifndef _WINDOWS64 #include #include #include #include #include #include #include #include #include #include #else #include #endif using namespace std; union db_semun { int val; struct semid_ds *buf; unsigned short *array; }; class PUB_TOOLS_API CDbSem { #ifndef _WINDOWS64 int m_nSemId; #else char m_pSemName[64]; #endif public: CDbSem(); ~CDbSem(); #ifndef _WINDOWS64 int InitSem(key_t key, int nsems, int initval); int GetSemValue(int sem_id, int sem_num); int ClearSemValue(int sem_id, int sem_num); #else int InitSem(const char *sem_name); #endif int p(); int v(); }; #endif