00001
00008 #ifndef GROWINGMSEG_H
00009 #define GROWINGMSEG_H
00010 #include<unistd.h>
00011 #include<sys/mman.h>
00012 #include"mseg.h"
00013 #include"errorclass.h"
00014
00015 namespace RAMS
00016 {
00017
00026 class Growingmseg: public Mseg
00027 {
00028 public:
00029 class Error : public Systemerror
00030 {
00031 public:
00032 Error(int err,char *pcall,char *msg,...):Systemerror()
00033 {
00034 va_list args;
00035 va_start(args,msg);
00036 init(err,pcall,msg,args);
00037 va_end(args);
00038 }
00039 };
00040 protected:
00041
00042 int fd;
00043 int gmflags;
00044
00047 virtual void grow_internal(int anzseiten) throw(Error);
00048 public:
00049 Growingmseg():Mseg() { fd=-1; gmflags=MAP_PRIVATE; }
00053 void grow(int anzseiten) throw(Error);
00054
00058 ~Growingmseg();
00059 };
00060
00061 };
00062 #endif
00063
00064
00065