26 class TMapFile :
public TObject {
42 TDirectory *fDirectory;
52 static Long_t fgMapAddress;
53 static void *fgMmallocDesc;
57 TMapFile(
const char *name,
const char *title, Option_t *option, Int_t size, TMapFile *&newMapFile);
58 TMapFile(
const TMapFile &f, Long_t offset = 0);
59 void operator=(
const TMapFile &rhs);
61 TMapFile *FindShadowMapFile();
63 TObject *Remove(TObject *obj, Bool_t lock);
64 TObject *Remove(
const char *name, Bool_t lock);
65 void SumBuffer(Int_t bufsize);
66 Int_t GetBestBuffer();
68 void CreateSemaphore(Int_t pid=0);
69 Int_t AcquireSemaphore();
70 Int_t ReleaseSemaphore();
71 void DeleteSemaphore();
73 static void *MapToAddress();
76 enum { kDefaultMapSize = 0x80000 };
80 void operator delete(
void *vp);
82 void Browse(TBrowser *b);
83 void Close(Option_t *option =
"");
84 void *GetBaseAddr()
const {
return (
void *)fBaseAddr; }
85 void *GetBreakval()
const;
86 TDirectory *GetDirectory()
const {
return fDirectory;}
87 Int_t GetFd()
const {
return fFd; }
88 void *GetMmallocDesc()
const {
return fMmallocDesc; }
89 const char *GetName()
const {
return fName; }
90 Int_t GetSize()
const {
return fSize; }
91 const char *GetOption()
const {
return fOption; }
92 const char *GetTitle()
const {
return fTitle; }
93 TMapRec *GetFirst()
const {
return (TMapRec*)((Long_t) fFirst + fOffset); }
94 TMapRec *GetLast()
const {
return (TMapRec*)((Long_t) fLast + fOffset); }
95 Bool_t IsFolder()
const;
96 Bool_t IsWritable()
const {
return fWritable; }
97 void *OrgAddress(
void *addr)
const {
return (
void *)((Long_t)addr - fOffset); }
98 void Print(Option_t *option=
"")
const;
99 void ls(Option_t *option=
"")
const;
100 Bool_t cd(
const char *path = 0);
102 void Add(
const TObject *obj,
const char *name =
"");
103 void Update(TObject *obj = 0);
104 TObject *Remove(TObject *obj) {
return Remove(obj, kTRUE); }
105 TObject *Remove(
const char *name) {
return Remove(name, kTRUE); }
107 TObject *Get(
const char *name, TObject *retObj = 0);
109 static TMapFile *Create(
const char *name, Option_t *option=
"READ", Int_t size=kDefaultMapSize,
const char *title=
"");
110 static TMapFile *WhichMapFile(
void *addr);
111 static void SetMapAddress(Long_t addr);
130 friend class TMapFile;
140 TMapRec(
const TMapRec&);
141 TMapRec &operator=(
const TMapRec&);
144 TMapRec(
const char *name,
const TObject *obj, Int_t size,
void *buf);
146 const char *GetName(Long_t offset = 0)
const {
return (
char *)((Long_t) fName + offset); }
147 const char *GetClassName(Long_t offset = 0)
const {
return (
char *)((Long_t) fClassName + offset); }
148 void *GetBuffer(Long_t offset = 0)
const {
return (
void *)((Long_t) fBuffer + offset); }
149 Int_t GetBufSize()
const {
return fBufSize; }
150 TObject *GetObject()
const;
151 TMapRec *GetNext(Long_t offset = 0)
const {
return (TMapRec *)((Long_t) fNext + offset); }