ACE Tutorial 020
Sharing your Memories with persistence


The mmap.h where we define stuff that needs to be shared between the apps at compile-time.

mmap.h

// $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 */

mmap.cpp


// $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;
}


[Tutorial Index] [Continue This Tutorial]