BALL  1.4.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
XDRPersistenceManager.h
Go to the documentation of this file.
1 // -*- Mode: C++; tab-width: 2; -*-
2 // vi: set ts=2:
3 //
4 
5 #ifndef BALL_CONCEPT_XDRPERSISTENCEMANAGER_H
6 #define BALL_CONCEPT_XDRPERSISTENCEMANAGER_H
7 
8 #ifndef BALL_CONCEPT_PERSISTENCEMANAGER_H
10 #endif
11 
12 #include <rpc/types.h>
13 #include <rpc/xdr.h>
14 
15 namespace BALL
16 {
25  : public PersistenceManager
26  {
27  public:
28 
34  static const Size STREAM_HEADER;
35 
38  static const Size STREAM_TRAILER;
39 
42  static const Size OBJECT_HEADER;
43 
46  static const Size OBJECT_TRAILER;
48 
52 
56  ;
57 
60  XDRPersistenceManager(std::istream& is)
61  ;
62 
65  XDRPersistenceManager(std::ostream& os)
66  ;
67 
70  XDRPersistenceManager(std::istream& is, std::ostream& os)
71  ;
73 
77 
82  virtual void writeHeader(const char* type_name, const char* name, LongSize ptr)
83  ;
84 
89  virtual bool checkHeader(const char* type_name, const char* name, LongSize& ptr)
90  ;
91 
96  virtual void writeTrailer(const char* name = 0)
97  ;
98 
103  virtual bool checkTrailer(const char* name = 0)
104  ;
105 
108  virtual void writeStreamHeader()
109  ;
110 
113  virtual void writeStreamTrailer()
114  ;
115 
118  virtual bool checkStreamHeader()
119  ;
120 
123  virtual bool checkStreamTrailer()
124  ;
125 
128  virtual bool getObjectHeader(String& type_name, LongSize& ptr)
129  ;
130 
133  virtual void writeName(const char* name)
134  ;
135 
138  virtual bool checkName(const char* name)
139  ;
140 
143  virtual void writeStorableHeader(const char* type_name, const char* name)
144  ;
145 
148  virtual bool checkStorableHeader(const char* type_name, const char* name)
149  ;
150 
153  virtual void writePrimitiveHeader(const char* type_name, const char* name)
154  ;
155 
158  virtual bool checkPrimitiveHeader(const char* type_name, const char* name)
159  ;
160 
163  virtual void writeStorableTrailer()
164  ;
165 
168  virtual bool checkStorableTrailer()
169  ;
170 
173  virtual void writePrimitiveTrailer()
174  ;
175 
178  virtual bool checkPrimitiveTrailer()
179  ;
180 
183  virtual void writeObjectPointerHeader(const char* type_name, const char* name)
184  ;
185 
188  virtual bool checkObjectPointerHeader(const char* type_name, const char* name)
189  ;
190 
193  virtual void writeObjectReferenceHeader(const char* type_name, const char* name)
194  ;
195 
198  virtual bool checkObjectReferenceHeader(const char* type_name, const char* name)
199  ;
200 
203  virtual void writeObjectPointerArrayHeader(const char* type_name, const char* name, Size size)
204  ;
205 
208  virtual bool checkObjectPointerArrayHeader(const char* type_name, const char* name, Size& size)
209  ;
210 
213  virtual void writeObjectPointerArrayTrailer()
214  ;
215 
218  virtual bool checkObjectPointerArrayTrailer()
219  ;
220 
225  virtual void initializeOutputStream()
226  ;
227 
231  virtual void finalizeOutputStream()
232  ;
233 
238  virtual void initializeInputStream()
239  ;
240 
244  virtual void finalizeInputStream()
245  ;
246 
248 
252 
255  virtual void put(const char c)
256  ;
257 
260  virtual void put(const Byte b)
261  ;
262 
265  virtual void put(const Index i)
266  ;
267 
270  virtual void put(const Size s)
271  ;
272 
275  virtual void put(const bool b)
276  ;
277 
280  virtual void put(const Real f)
281  ;
282 
285  virtual void put(const DoubleReal d)
286  ;
287 
290  virtual void put(const string& s)
291  ;
292 
295  virtual void put(const LongSize p)
296  ;
298 
302 
305  virtual void get(char& c)
306  ;
307 
310  virtual void get(Byte& c)
311  ;
312 
315  virtual void get(Index& s)
316  ;
317 
320  virtual void get(Size& s)
321  ;
322 
325  virtual void get(bool& b)
326  ;
327 
330  virtual void get(Real& f)
331  ;
332 
335  virtual void get(DoubleReal& d)
336  ;
337 
340  virtual void get(string& s)
341  ;
342 
345  virtual void get(LongSize& p)
346  ;
348 
352 
356  void setHandleStreamsExternally(bool handle_externally);
357 
359  private:
360 
363  XDR xdr_in_;
364 
367  XDR xdr_out_;
368 
373 
374  };
375 
376 } // namespace BALL
377 
378 #endif // BALL_CONCEPT_XDRPERSISTENCEMANAGER_H