JODA  0.13.1 (59b41972)
JSON On-Demand Analysis
JoinManager.h
Go to the documentation of this file.
1 //
2 // Created by Nico Schäfer on 08/01/18.
3 //
4 
5 #ifndef JODA_JOINFILECREATOR_H
6 #define JODA_JOINFILECREATOR_H
8 #include <rapidjson/document.h>
9 #include <mutex>
10 #include <string>
11 #include <unordered_map>
12 #include "../../../../storage/container/include/joda/container/JSONContainer.h"
13 
14 typedef unsigned long JODA_JOINID;
19 class JoinManager {
20  public:
26  JoinManager(std::string name,
27  std::unique_ptr<joda::query::IValueProvider>&& valProv);
28 
29  virtual ~JoinManager();
34  virtual void join(const RapidJsonDocument& doc) = 0;
35 
40  virtual void join(JSONContainer& cont);
41 
46  virtual const std::string& getName() const;
47 
48  protected:
49  enum JoinVals {
51  FALSE_VAL = 1,
52  TRUE_VAL = 2,
53  STARTNORMAL_VAL = 3
54  };
55  std::string name;
56  std::unique_ptr<joda::query::IValueProvider> valProv;
57 };
58 
59 #endif // JODA_JOINFILECREATOR_H
unsigned long JODA_JOINID
Definition: JoinManager.h:14
Definition: JSONContainer.h:37
Definition: JoinManager.h:19
virtual const std::string & getName() const
Definition: JoinManager.cpp:23
JoinManager(std::string name, std::unique_ptr< joda::query::IValueProvider > &&valProv)
Definition: JoinManager.cpp:15
virtual void join(const RapidJsonDocument &doc)=0
virtual ~JoinManager()
JoinVals
Definition: JoinManager.h:49
@ NOT_HASHABLE
Definition: JoinManager.h:50
@ STARTNORMAL_VAL
Definition: JoinManager.h:53
@ FALSE_VAL
Definition: JoinManager.h:51
@ TRUE_VAL
Definition: JoinManager.h:52
std::string name
Definition: JoinManager.h:55
std::unique_ptr< joda::query::IValueProvider > valProv
Definition: JoinManager.h:56
Definition: RapidJsonDocument.h:22