1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- // main.c
- //
- #ifdef _WIN32
- #define _CRT_SECURE_NO_WARNINGS
- #include <windows.h>
- #include "../Win32/w32def.h"
- #define sleep(sec) Sleep(sec * 1000)
- #endif // _WIN32
- #include <stdio.h>
- #include "src/defines.h"
- #include "src/gfaipc.h"
- #define _UNUSED(v) v = v
- typedef struct _TESTSTRUCT1
- {
- int nCounter1;
- int nCounter2;
- }TESTSTRUCT1, *LPTESTSTRUCT1;
- typedef const TESTSTRUCT1 *LPCTESTSTRUCT1;
- typedef struct _TESTSTRUCT2
- {
- int nCounter1;
- int nCounter2;
- }TESTSTRUCT2, *LPTESTSTRUCT2;
- typedef const TESTSTRUCT2 *LPCTESTSTRUCT2;
- #define _UUID_TESTSTRUCT1 "8c2e723a-5556-4d90-b5ed-bba8575b6f28"
- #define _UUID_TESTSTRUCT2 "8d961df7-96c4-45cd-8dd7-346227782ac0"
- int main(int argc, char *argv[])
- {
- HSHM hShm1, hShm2;
- LPTESTSTRUCT1 p1 = NULL;
- LPTESTSTRUCT2 p2 = NULL;
- _UNUSED(argc);
- _UNUSED(argv);
- GfaIpcDumpSHMROT();
- hShm1 = GfaIpcAcquireSHM(_UUID_TESTSTRUCT1, sizeof(TESTSTRUCT1), 1, "Teststruct 1");
- GfaIpcDumpSHMROT();
- hShm2 = GfaIpcAcquireSHM(_UUID_TESTSTRUCT1, sizeof(TESTSTRUCT1), 1, "Teststruct 1");
- // GfaIpcDumpSHMROT();
- if(hShm1 && hShm2)
- {
- p1 = (LPTESTSTRUCT1)GfaIpcAcquirePointer(hShm1);
- TRACE("Get pointer: %p\n", p1);
- p2 = (LPTESTSTRUCT2)GfaIpcAcquirePointer(hShm2);
- TRACE("Get pointer: %p\n", p2);
- TRACE("p1C1: %d, p1C2: %d\n", p1->nCounter1, p1->nCounter2);
- TRACE("p2C1: %d, p2C2: %d\n", p2->nCounter1, p2->nCounter2);
- GfaIpcLockSHM(hShm1);
- p1->nCounter1++;
- p1->nCounter2--;
- GfaIpcUnlockSHM(hShm1);
- TRACE("p1C1: %d, p1C2: %d\n", p1->nCounter1, p1->nCounter2);
- TRACE("p2C1: %d, p2C2: %d\n", p2->nCounter1, p2->nCounter2);
- GfaIpcLockSHM(hShm2);
- p2->nCounter1--;
- p2->nCounter2++;
- GfaIpcUnlockSHM(hShm2);
- TRACE("p1C1: %d, p1C2: %d\n", p1->nCounter1, p1->nCounter2);
- TRACE("p2C1: %d, p2C2: %d\n", p2->nCounter1, p2->nCounter2);
- GfaIpcReleasePointer(hShm1, p1);
- GfaIpcReleasePointer(hShm2, p2);
- GfaIpcReleaseSHM(hShm1);
- GfaIpcReleaseSHM(hShm2);
- }
- //uuid_t uuid;
- //_uuid_parse("8c2e723a-5556-4d90-b5ed-bba8575b6f28", &uuid);
- return 0;
- }
|