scratch of (de)serializing
[satune.git] / src / Serialize / serializer.cc
1
2 /* 
3  * File:   serializer.cc
4  * Author: hamed
5  * 
6  * Created on September 7, 2017, 3:38 PM
7  */
8
9 #include "serializer.h"
10 #include "unistd.h"
11 #include "fcntl.h"
12
13 Serializer::Serializer(const char *file) {
14         filedesc = open(file, O_WRONLY | O_CREAT, 0666);
15  
16         if (filedesc < 0) {
17                 exit(-1);
18         }
19 }
20
21 Serializer::~Serializer() {
22         if (-1 == close(filedesc)){
23                 exit(-1);
24         }
25 }
26
27 void Serializer::mywrite(const void *__buf, size_t __n){
28         write (1, __buf, __n);
29         model_print("\n");
30         write (filedesc, __buf, __n);
31 }
32
33
34 void serializeBooleanEdge(Serializer* serializer, BooleanEdge& be){
35         if(serializer->isSerialized(be.getRaw()))
36                 return;
37         serializer->addObject(be.getRaw());
38 //      b->seralize(serializer);
39         ASTNodeType type = BOOLEANEDGE;
40         serializer->mywrite(&type, sizeof(ASTNodeType));
41         serializer->mywrite(be.getRaw(), sizeof(Boolean*));
42 }