Adding SMT Interpreters
[satune.git] / src / Serialize / serializer.h
1
2 /*
3  * File:   serializer.h
4  * Author: hamed
5  *
6  * Created on September 7, 2017, 3:38 PM
7  */
8
9 #ifndef SERIALIZER_H
10 #define SERIALIZER_H
11 #include "mymemory.h"
12 #include "classlist.h"
13 #include "structs.h"
14
15
16 class Serializer {
17 public:
18         Serializer(const char *file);
19         void mywrite(const void *__buf, size_t __n);
20         inline bool isSerialized(void *obj);
21         inline void addObject(void *obj) { map.put(obj, obj);}
22         virtual ~Serializer();
23         CMEMALLOC;
24 private:
25         void flushBuffer();
26         char *buffer;
27         uint bufferoffset;
28         uint bufferlength;
29         int filedesc;
30         CloneMap map;
31 };
32
33 inline bool Serializer::isSerialized(void *obj) {
34         return map.contains(obj);
35 }
36
37
38
39
40 void serializeBooleanEdge(Serializer *serializer, BooleanEdge be, bool isTopLevel = false);
41
42 #endif/* SERIALIZER_H */
43