00001 /*************************************************************************** 00002 LOW_sharedMemSegment.h - description 00003 ------------------- 00004 begin : Tue Jul 30 2002 00005 copyright : (C) 2002 by Harald Roelle, Helmut Reiser 00006 email : roelle@informatik.uni-muenchen.de, reiser@informatik.uni-muenchen.de 00007 ***************************************************************************/ 00008 00009 /*************************************************************************** 00010 * * 00011 * This program is free software; you can redistribute it and/or modify * 00012 * it under the terms of the GNU General Public License as published by * 00013 * the Free Software Foundation; either version 2 of the License, or * 00014 * (at your option) any later version. * 00015 * * 00016 ***************************************************************************/ 00017 00018 #ifndef LOW_SHAREDMEMSEGMENT_H 00019 #define LOW_SHAREDMEMSEGMENT_H 00020 00021 00022 #include "LOW_exception.h" 00023 00024 00025 /** Abstract base class for shared memory segments. 00026 Each instance represents one shared memory segment. 00027 00028 Specific platforms dereive their implementation classes from this class. 00029 00030 The instances are created by LOW_sharedMemSegmentFactory, following the factory 00031 design pattern. 00032 00033 <B>Note:</B> There is no prescribed constructor. A class deriving from this 00034 class should give the opportunity to specify the size of the segment. 00035 00036 @see LOW_sharedMemSegmentFactory 00037 00038 @author Harald Roelle, Helmut Reiser 00039 */ 00040 class LOW_sharedMemSegment { 00041 00042 //======================================================================================= 00043 public: 00044 00045 //===================================================================================== 00046 // 00047 // exceptions 00048 // 00049 00050 /** Exception base class for all exceptions thrown by LOW_sharedMemSegment. */ 00051 class_DERIVE_FROM_EXCEPTION( sharedMemSeg_error, LOW_exception); 00052 00053 00054 //===================================================================================== 00055 // 00056 // methods 00057 // 00058 00059 00060 /** Get a pointer to the shared memory segment. 00061 Abstract method to be implemented by derived class. 00062 @return Pointer to the shared memory segment. 00063 */ 00064 virtual void* get() const = 0; 00065 }; 00066 00067 #endif