// $Id$ #ifndef MMAP_H #define MMAP_H // The expected filename for ACE_Shared_Memory_MM.h #include "ace/Shared_Memory_MM.h" // Just enough for the alphabet... #define SHMSZ 27 /* Here we use a real filename instead of an arbitrary number. This actually will exist in the filesystem. You can 'cat' it and everything! */ #define SHM_KEY "mmapfile" /* The SV Shared Memory SharedData object returns. It is identical to the one we used in that tutorial. I didn't even change the name. */ class SharedData { public: SharedData (int initialize = 1); void set (void); void show (void); int available (void); void available (int not_in_use); protected: char buf_[128]; int available_; }; #endif /* MMAP_H */
// $Id$ #include "mmap.h" #include "ace/Log_Msg.h" SharedData::SharedData(int _initialize) : available_(0) { if( _initialize ) { ACE_OS::sprintf(buf_,"UNSET\n"); } } void SharedData::set(void) { ACE_OS::sprintf(buf_,"My PID is (%d)\n",ACE_OS::getpid()); } void SharedData::show(void) { ACE_DEBUG ((LM_INFO, "(%P|%t) Shared Data text is (%s)\n", buf_ )); } int SharedData::available(void) { return available_; } void SharedData::available(int _available) { available_ = _available; }