00001
00007 #include <string>
00008 #include <iostream>
00009 #include <sstream>
00010 #include <math.h>
00011
00012 #include "shm_segment.h"
00013 #include "shm_ptr.h"
00014 #include "scoped_lock.h"
00015 #include "shm_allocator.h"
00016 #include "shm_queue.h"
00017 #include "shm_message.h"
00018
00019 using namespace std;
00020
00021 int main(int argc, char*argv[])
00022 {
00023 std::cout
00024 << "enter a shared memory id : "
00025 << std::flush;
00026 std::string line;
00027 std::getline( std::cin, line );
00028 long shmid = atol( line.c_str() );
00029 shm_segment seg( (int)shmid, 01640 ) ;
00030 shm_allocator a( seg );
00031 shm_queue<shm_message> q( a );
00032
00033 while ( true ) {
00034 std::cout
00035 << "Queue size : "
00036 << q.size()
00037 << endl;
00038 shm_ptr<shm_message> p = q.pop();
00039 shm_message* m = p.get(seg);
00040 std::cout
00041 << "Message "
00042 << m->sequence_num
00043 << " "
00044 << m->message.get(seg)
00045 << "\n";
00046
00047
00048
00049 }
00050 }
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062