'privPointLoc'
Tree.h
1 
6 #ifndef PRIVPOINTLOC_TREE_H
7 #define PRIVPOINTLOC_TREE_H
8 
9 #include <iostream>
10 #include <fstream>
11 
12 #include "Node.h"
13 #include "Segment.h"
14 #include "Encryptor.h"
15 #include "PrivPointUtil.h"
16 
17 // handle cyclic dependencies
18 class Node;
19 class Segment;
20 
21 class Tree {
22 public:
23  Tree();
24 
30  void readSegmentsFile(std::string);
31 
32 
38  Node * getRoot();
39 
40 
46  int getTreeSize();
47 
48 
54  int getTotalTrapezoids();
55 
56 
62  void insert(Segment *);
63 
64 
71  void printTree(Node *, int = 0);
72 
78  void addLeafNodes(Node *);
79 
85  void deleteLeafNodes(Node *);
86 
92  void setupLists(Node *);
93 
99  void printLists();
100 
106  void initAdjacencyMatrix();
107 
113  void writeAdjacencyMatrix(Node *);
114 
121 
127  void printAdjacencyMatrix();
128 
134  void writeAdjacencyMatrixToFile(std::string);
135 
143  void findPoint(int, int, Node *);
144 
153  void findPrivatePoint(Encryptor &, PrivPointUtil *, helib::Ctxt , helib::Ctxt &, helib::Ctxt, Node *, int, int);
154 
160  void cleanTree(Node *);
161 
170  void setupPathLabels(Node *, std::string);
171 
177  void printPathLabels();
178 
184  std::vector<std::string> getAllPaths();
185 
197  void evaluateOnePath(Encryptor &, PrivPointUtil *, helib::Ctxt, helib::Ctxt &, int, int, std::string);
198 
211  void getPathResult(Encryptor &, PrivPointUtil *, helib::Ctxt, helib::Ctxt &, int, int, std::string);
212 
223  helib::Ctxt evaluateAllNodes(Encryptor &, PrivPointUtil *, helib::Ctxt, int, int);
224 private:
225  Node * root;
226  int size; //total nodes
227  int totalTrapezoids;
228  int totalSegments;
229  std::vector<Node *> pList;
230  std::vector<Node *> qList;
231  std::vector<Node *> sList;
232  std::vector<Node *> tList;
233  std::vector<std::vector<std::string>> adjMatrix;
234  std::vector<std::string> allPaths;
235  int minX, maxX;
236 };
237 
238 #endif /*PRIVPOINTLOC_TREE_H*/
int getTreeSize()
Definition: Tree.cpp:26
void setupLists(Node *)
Definition: Tree.cpp:468
void addLeafNodes(Node *)
Definition: Tree.cpp:267
Definition: Node.h:30
Definition: Encryptor.h:12
void getPathResult(Encryptor &, PrivPointUtil *, helib::Ctxt, helib::Ctxt &, int, int, std::string)
Definition: Tree.cpp:959
void insert(Segment *)
Definition: Tree.cpp:39
std::vector< std::string > getAllPaths()
Definition: Tree.cpp:34
void initAdjacencyMatrix()
Definition: Tree.cpp:520
void printLists()
Definition: Tree.cpp:441
void findPrivatePoint(Encryptor &, PrivPointUtil *, helib::Ctxt, helib::Ctxt &, helib::Ctxt, Node *, int, int)
Definition: Tree.cpp:680
void writeAdjacencyMatrix(Node *)
Definition: Tree.cpp:591
Node * getRoot()
Definition: Tree.cpp:22
void deleteLeafNodes(Node *)
Definition: Tree.cpp:300
void cleanTree(Node *)
Definition: Tree.cpp:400
int getTotalTrapezoids()
Definition: Tree.cpp:30
Definition: Tree.h:21
void writeAdjacencyMatrixToFile(std::string)
Definition: Tree.cpp:635
Definition: Segment.h:16
void findPoint(int, int, Node *)
Definition: Tree.cpp:652
void writeSumsAdjacencyMatrix()
Definition: Tree.cpp:614
helib::Ctxt evaluateAllNodes(Encryptor &, PrivPointUtil *, helib::Ctxt, int, int)
Definition: Tree.cpp:1004
void printPathLabels()
Definition: Tree.cpp:409
void evaluateOnePath(Encryptor &, PrivPointUtil *, helib::Ctxt, helib::Ctxt &, int, int, std::string)
Definition: Tree.cpp:824
void printTree(Node *, int=0)
Definition: Tree.cpp:368
void printAdjacencyMatrix()
Definition: Tree.cpp:626
void readSegmentsFile(std::string)
Definition: Tree.cpp:333
Definition: PrivPointUtil.h:11
void setupPathLabels(Node *, std::string)
Definition: Tree.cpp:423