Qore Programming Language Reference Manual  1.12.0
QC_Serializable.dox.h
1 
3 namespace Qore {
5 
10  auto _data;
12  *hash<string, hash<ObjectSerializationInfo>> _index;
14  *list<string> _modules;
15 };
16 }
17 
19 namespace Qore {
21 
26  string _class;
28  *hash<string, hash<string, auto>> _class_data;
29 };
30 }
31 
33 namespace Qore {
35 
40  string _index;
41 };
42 }
43 
45 namespace Qore {
47 
52  string _hash;
54  *hash<string, auto> _members;
55 };
56 }
57 
59 namespace Qore {
61 
66  *list<auto> _elements;
68  string _list;
69 };
70 }
71 
73 namespace Qore {
75 
96 class Serializable {
97 
98 public:
100 /***/
102 
103 public:
105 /***/
106  copy();
107 
108 private:
110 
148 nothing deserializeMembers(hash<auto> members);
149 
150 public:
152 
168 
169 public:
171 
187 
188 private:
190 
232 *hash<auto> serializeMembers(*hash<auto> members);
233 
234 public:
236 
254 hash<SerializationInfo> serializeToData();
255 
256 public:
258 
272 static auto deserialize(InputStream stream);
273 
274 public:
276 
289 static auto deserialize(binary bin);
290 
291 public:
293 
309 static auto deserialize(string bin);
310 
311 public:
313 
327 static auto deserialize(hash<SerializationInfo> data);
328 
329 public:
331 
345 static hash<SerializationInfo> deserializeToData(InputStream stream);
346 
347 public:
349 
363 static hash<SerializationInfo> deserializeToData(binary bin);
364 
365 public:
367 
383 static serialize(auto val, OutputStream stream);
384 
385 public:
387 
404 static binary serialize(auto val);
405 
406 public:
408 
428 static hash<SerializationInfo> serializeToData(auto val);
429 };
430 }
This class defines an abstract interface for input streams.
Definition: QC_InputStream.dox.h:19
This class defines an abstract interface for output streams.
Definition: QC_OutputStream.dox.h:18
The Serializable class can be used to mark a class as being serializable.
Definition: QC_Serializable.dox.h:96
static auto deserialize(binary bin)
Deserializes data produced with serialize() and returns the value represented by the data.
static auto deserialize(InputStream stream)
Deserializes data produced with serialize() and returns the value represented by the data.
static hash< SerializationInfo > deserializeToData(InputStream stream)
Deserializes data produced with serialize() and returns the value represented by the data.
copy()
The copy constructor does not perform any action; this class is just used to mark a class as serializ...
static serialize(auto val, OutputStream stream)
serializes the data and writes the serialized data to the given output stream
static auto deserialize(hash< SerializationInfo > data)
Deserializes data produced with serializeToData() and returns the value represented by the data.
static hash< SerializationInfo > deserializeToData(binary bin)
Deserializes data produced with serialize() and returns the value represented by the data.
hash< SerializationInfo > serializeToData()
converts the object to a serialization hash representing the object
serialize(OutputStream stream)
converts the object to binary data representing the object
constructor()
The constructor does not perform any action; this class is just used to mark a class as serializable ...
nothing deserializeMembers(hash< auto > members)
overrides the default automatic member assignment logic for user classes during data deserialization
static auto deserialize(string bin)
Deserializes data produced with serialize() and returns the value represented by the data.
static binary serialize(auto val)
serializes the data and returns the serialized data as a binary object
*hash< auto > serializeMembers(*hash< auto > members)
overrides the default automatic member retrieval for user classes during data serialization
static hash< SerializationInfo > serializeToData(auto val)
converts the value to a serialization hash representing the value
binary serialize()
converts the object to binary data representing the object
binary binary()
Always returns an empty binary object (of zero length)
main Qore-language namespace
Definition: Pseudo_QC_All.dox.h:3
hash serialization information for typed hashes or untyped hashes
Definition: QC_Serializable.dox.h:50
string _hash
typed hash path name, if any; otherwise for an untyped hash: "^..." where ... is the complex value ty...
Definition: QC_Serializable.dox.h:52
*hash< string, auto > _members
member values
Definition: QC_Serializable.dox.h:54
object serialization information for an indexed object
Definition: QC_Serializable.dox.h:38
string _index
index value
Definition: QC_Serializable.dox.h:40
list serialization information
Definition: QC_Serializable.dox.h:64
string _list
the complex list element type info
Definition: QC_Serializable.dox.h:68
*list< auto > _elements
the data-serialized list elements
Definition: QC_Serializable.dox.h:66
object serialization information
Definition: QC_Serializable.dox.h:24
*hash< string, hash< string, auto > > _class_data
member values per class; class path -> member hash
Definition: QC_Serializable.dox.h:28
string _class
class path name
Definition: QC_Serializable.dox.h:26
serialization information
Definition: QC_Serializable.dox.h:8
*hash< string, hash< ObjectSerializationInfo > > _index
unique object index
Definition: QC_Serializable.dox.h:12
*list< string > _modules
list of modules to load to support the data
Definition: QC_Serializable.dox.h:14
auto _data
serialized data
Definition: QC_Serializable.dox.h:10