/****************************************************************************
 *   gshm.h
 *   		basic interface for UNIX shared memory interface.
 *
 *   Change Log :
 *		  Mar. 16, 1998 Initial version,  Liujian Qian
 *
 *   $Id: gshmem.h,v 1.1.1.1 1998/05/21 05:37:26 qian Exp $
 ***************************************************************************/

#ifndef _GSHMEM_H_
#define _GSHMEM_H_

#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/shm.h>
#include "gcxx.h"

/**
 *  GShmem is an abstraction for a shared memory segment.
 *
 *
 */
class GShmem
{
    char*	_base;
    int		_id;
    uint32	_size;

public:
    NOP		GShmem() : _base(0), _id(0), _size(0) {}
    NOP		~GShmem()   {}
    
    int		id() const {return _id; }
    uint32	size() const {return _size; }
    char*	base() const {return _base; }
    
    Result	create(uint32 sz, mode_t mode = 0644);
    Result	destroy();
    
    Result	attach(int id);
    Result	detach();
    
    Result	set(uid_t uid=0, gid_t gid=0, mode_t mode=0);

    void	setIntValue(int off, int v);
    
    void	clean();
};


#endif




Documentation generated by lqian@lqian-sun on Wed Jul 14 09:36:10 EDT 1999