DRAMA C++ Intro   Class Hierarchy   Alphabetical List of types   List of Classes   File List   Class Member Index   File Members Index   Related Pages  

DcppShared Class Reference

#include <dcpp.h>

List of all members.


Detailed Description

This is used to create and represent a shared memory segment.

When sending bulk data DRAMA messages, it is necessary to describe the bulk data shared memory segment. This type does this.


Public Types

enum  SharedType {
  Create = DITS_SHARE_CREATE, Gblsec = DITS_SHARE_GBLSEC, Global = DITS_SHARE_GLOBAL, ShMem = DITS_SHARE_SHMEM,
  MMap = DITS_SHARE_MMAP
}
 This enum gives the various shared memory types. More...


Public Member Functions

 DcppShared (long Size, StatusType *const status, const SharedType Type=Create, const int CreateIt=true, const char *const Name="", const int Key=0, void *const Address=0)
 Basic Shared memory segment constructor.

 DcppShared (const SdsId &Template, StatusType *const status, const SharedType Type=Create, const int CreateIt=true, const char *const Name="", const int Key=0, void *const Address=0)
 Shared memory segment constructor - for an SDS structure.

 DcppShared (DitsSharedMemInfoType *Info, void *Address=0, SdsIdType ID=0, bool Free=false)
 Shared memory segment constructor - using existing segment.

void GetInfo (const DitsSharedMemInfoType **const Info, StatusType *const status) const
 Get share memory details - const version.

void GetInfo (DitsSharedMemInfoType **const Info, StatusType *const status)
 Get share memory details - non-const version.

SdsIdGetSds ()
 Return Sds structure id.

const SdsIdGetSds () const
 Return Sds structure id - const version.

void GetAddress (const void **Address, StatusType *status) const
 Return the shared memory address - const version.

void GetAddress (void **Address, StatusType *status)
 Return the shared memory address - non-const version.

virtual ~DcppShared ()
 Destructor - free shared memory and SDS ID.


Member Enumeration Documentation

enum DcppShared::SharedType
 

This enum gives the various shared memory types.

This enum type is used with the DcppShared constructor to select the type of shared memory segment. The value of the argument of this type determines how some of the other arguments are used.

See DitsDefineShared()for full details on this, refering to the enum value constants.

Enumeration values:
Create  Default type, most suitable for the current machine.

The Name, Key and Address arguments to the constructor are ignored as it CreateIt, which is assumed to be true

Gblsec  Appropiate for VMS only.

Creates a VME global page section with name specified by the Name field. Key and Address are ignored

Global  Appropriate for VxWorks.

The mapped section is just and area of memory, starting at a specified address. If CreateIt is true, Address is ignored and the memory allocated. If CreateIt is false, then Address specifies the address of the memory

ShMem  Create Unix System V shared memory.

Key specifies the shared memory key and Name should be the Null string, and Address is ignored.

MMap  Create a unix mapped section.

Name should be the full name of the file. Key and Address are ignored.


Constructor & Destructor Documentation

DcppShared::DcppShared long  Size,
StatusType *const  status,
const SharedType  Type = Create,
const int  CreateIt = true,
const char *const  Name = "",
const int  Key = 0,
void *const  Address = 0
[inline]
 

Basic Shared memory segment constructor.

See also:
DitsDefineShared()
Parameters:
Size The size in bytes of the shared memory segment
status Inherited status.
Type The type of the shared memory segement.
CreateIt If set true, the segement is created.
Name The name of the shared memory segement, if required.
Key The Key for the shared memory segement, if required.
Address The address of the shared memory segment, if required.

DcppShared::DcppShared const SdsId Template,
StatusType *const  status,
const SharedType  Type = Create,
const int  CreateIt = true,
const char *const  Name = "",
const int  Key = 0,
void *const  Address = 0
[inline]
 

Shared memory segment constructor - for an SDS structure.

This version takes an SDS ID, which represents the structure to be stored in the shared memory segment.

See also:
DitsDefineSdsShared()
Parameters:
Template The SdsId which contains the template structure. This is often a structure which has been created but does not contain data as yet - it has not been defined, which when large arrays are involved, means is does not take up much space as yet. It will be exported into the shared memory segment with this data defined.
status Inherited status.
Type The type of the shared memory segement.
CreateIt If set true, the segement is created.
Name The name of the shared memory segement, if required.
Key The Key for the shared memory segement, if required.
Address The address of the shared memory segment, if required.

DcppShared::DcppShared DitsSharedMemInfoType *  Info,
void *  Address = 0,
SdsIdType  ID = 0,
bool  Free = false
[inline]
 

Shared memory segment constructor - using existing segment.

This constructor initializes the object from an existing DitsSharedMemInfoType structure. Note, Address will only be known if passed in. Similary for the Sds ID. The SdsdD (if any) and shared memory segement are only released when by this object's destructure if the Free flag is set true.

See also:
DitsDefineShared()

DitsDefineSdsShared()

Parameters:
Info The shared memory details.
Address The address of the shared memory segment.
ID The SDS ID of any structure in the segment.
Free If set true, then the shared memory segment and SDS ID are freeed when the object destructor is invoked.

virtual DcppShared::~DcppShared  )  [inline, virtual]
 

Destructor - free shared memory and SDS ID.


Member Function Documentation

void DcppShared::GetAddress void **  Address,
StatusType *  status
[inline]
 

Return the shared memory address - non-const version.

Parameters:
Address The addesss of the shared memory is written here.
status Inherited status.

void DcppShared::GetAddress const void **  Address,
StatusType *  status
const [inline]
 

Return the shared memory address - const version.

Parameters:
Address The addesss of the shared memory is written here.
status Inherited status.

void DcppShared::GetInfo DitsSharedMemInfoType **const  Info,
StatusType *const  status
[inline]
 

Get share memory details - non-const version.

This function returns the shared memory details appropiate for use by DITS functions, non-const version.

Parameters:
Info The shared memory details are written here.
status Inherited status.

void DcppShared::GetInfo const DitsSharedMemInfoType **const  Info,
StatusType *const  status
const [inline]
 

Get share memory details - const version.

This function returns the shared memory details appropiate for use by DITS functions, const version.

Parameters:
Info The shared memory details are written here.
status Inherited status.

const SdsId& DcppShared::GetSds  )  const [inline]
 

Return Sds structure id - const version.

Just returns the SDS id assoicated with this shared memory segment. If none is assoicated, this will be a null SDS id

Returns:
The SDS id of the structure in shared memory.

SdsId& DcppShared::GetSds  )  [inline]
 

Return Sds structure id.

Just returns the SDS id assoicated with this shared memory segment. If none is assoicated, this will be a null SDS id

Returns:
The SDS id of the structure in shared memory.


The documentation for this class was generated from the following file:

Click here for the DRAMA home page and here for the AAO home page.

For more information, contact tjf@aaoepp.aao.gov.au 

Generated on Wed Oct 8 15:56:36 2008 for AAO DRAMA C++ Interfaces by doxygen 1.3.5