FlashGraph-ng
A new frontier in large-scale graph analysis and data mining
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Pages
vertex_index_constructor.h
1 #ifndef __VERTEX_INDEX_CONSTRUCTOR_H__
2 #define __VERTEX_INDEX_CONSTRUCTOR_H__
3 
22 #include "vertex_index.h"
23 
24 namespace fg
25 {
26 
27 /*
28  * These are the in-mem counterparts of vertex index above.
29  * These in-memory data structures are used to construct vertex indices.
30  */
31 
32 class vertex_index_construct
33 {
34 public:
35  typedef std::shared_ptr<vertex_index_construct> ptr;
36 
37  static ptr create(bool directed);
38  static ptr create_compressed(bool directed, size_t edge_data_size);
39 
40  virtual ~vertex_index_construct() {
41  }
42 
43  virtual void add_vertex(const in_mem_vertex &) = 0;
44  virtual void dump(const std::string &file, const graph_header &header,
45  bool compressed) = 0;
46  virtual vertex_index::ptr dump(const graph_header &header, bool compressed) = 0;
47 };
48 
49 }
50 
51 #endif