Hauptseite   Klassenhierarchie   Übersicht   Auflistung der Dateien   Datenstruktur-Elemente   Datei-Elemente  

rppointer.h

gehe zur Dokumentation dieser Datei
00001 
00010 #ifndef RPPOINTER_H
00011 #define RPPOINTER_H
00012 #include<assert.h>
00013 #include"mseg.h"
00014 #include<sys/types.h>
00015 
00016 namespace RAMS
00017 {
00018 
00024  class RPPointer_s
00025  {
00026  protected:
00028     Mseg *seg;
00030     off_t &off;
00031  public:
00035     RPPointer_s(Mseg *s,off_t& o):seg(s),off(o){}
00036     void init(Mseg *s,off_t& o) { seg=s; off=o; }
00037     off_t offset() const { return off; }
00038     
00042     int ok() { return off < seg->length(); }
00046     size_t operator-(RPPointer_s a)
00047         {
00048             assert(a.seg->begin()==seg->begin());
00049             return (off-a.off);
00050         }
00051 
00053     void setoff(off_t o) { off=o; }
00057     RPPointer_s& cast(const RPPointer_s &anderer)
00058     {
00059         seg=anderer.seg;
00060         off=anderer.off;
00061         return *this;
00062     }
00063     void *operator=(void *p)
00064     {
00065       off=(char *)p - (char *)(seg->begin());
00066       assert(ok());
00067       return p;
00068     }
00069  };
00070 };
00071 #endif
00072 
00073 
00074 

Erzeugt am Sat Nov 29 19:45:39 2003 für rams_persito von doxygen1.2.14 geschrieben von Dimitri van Heesch, © 1997-2002