27 #include <utils/ipc/shm.h> 28 #include <utils/ipc/shm_exceptions.h> 37 #define MAGIC_TOKEN "FawkesShmemQAApp" 47 QASharedMemoryHeader(
unsigned int type)
55 QASharedMemoryHeader *qs =
new QASharedMemoryHeader(header.type);
61 const QASharedMemoryHeader *qs =
dynamic_cast<const QASharedMemoryHeader *
>(&s);
62 return (qs && (header.type == qs->header.type));
65 virtual bool matches(
void *memptr)
67 return (memcmp(memptr, &header,
sizeof(qashmem_header_t)) == 0);
72 return sizeof(qashmem_header_t);
80 virtual void initialize(
void *memptr)
82 memcpy(memptr, (
char *)&header,
sizeof(qashmem_header_t));
85 virtual void set(
void *memptr)
87 memcpy((
char *)&header, memptr,
sizeof(qashmem_header_t));
95 virtual size_t data_size()
101 qashmem_header_t header;
108 signal_handler(
int signum)
115 main(
int argc,
char **argv)
118 signal(SIGINT, signal_handler);
120 QASharedMemoryHeader *h1 =
new QASharedMemoryHeader(1);
142 int *m1 = (
int *)s1->
memptr();
143 int *m2 = (
int *)s2->
memptr();
149 std::cout <<
"Wrote " << *m1 <<
" (should be " << i
150 <<
") to b1, afterwards b2 reads: " << *m2
Fawkes library namespace.
void * memptr() const
Get a pointer to the shared memory This method returns a pointer to the data-segment of the shared me...
Could not attach to shared memory segment.
void print_trace()
Prints trace to stderr.