Samchon Framework for CPP  1.0.0
NTFile.hpp
1 #pragma once
2 #include <samchon/API.hpp>
3 
4 #include <samchon/library/FTFile.hpp>
5 #include <samchon/namtree/INTExplore.hpp>
6 
7 #include <functional>
8 #include <vector>
9 
10 namespace samchon
11 {
12 namespace namtree
13 {
14  class NTFactory;
15  class NTParameterArray;
16  class NTIterator;
17 
50  class SAMCHON_FRAMEWORK_API NTFile
51  : public library::FTFile,
52  public INTExplore
53  {
54  private:
55  typedef library::FTFile super;
56 
57  protected:
58  typedef std::function<double(const NTIterator&, const std::vector<double> &)> SideFunction;
59 
65  NTFactory *factory; //TO FIND OTHERSIDE AND FUNCTION POINTER
66 
71 
87 
91  SideFunction function;
92 
93  public:
94  /* -------------------------------------------------------------------
95  CONSTRUCTORS
96  ------------------------------------------------------------------- */
104  virtual ~NTFile() = default;
105 
106  virtual void construct(std::shared_ptr<library::XML>) override;
107 
108  /* -------------------------------------------------------------------
109  GETTERS
110  ------------------------------------------------------------------- */
114  auto getParameterArray() const->NTParameterArray*;
115 
119  auto getOtherside() const->NTFile*;
120 
124  auto getFunction() const->SideFunction;
125 
126  /* -------------------------------------------------------------------
127  EXPORTERS
128  ------------------------------------------------------------------- */
129  virtual auto toXML() const->std::shared_ptr<library::XML> override;
130  };
131 };
132 };
NTParameterArray * parameterArray
Metadata of parameters.
Definition: NTFile.hpp:70
An interface of file-tree.
Definition: FTInstance.hpp:22
A factory for Nam-Tree objects.
Definition: NTFactory.hpp:52
Definition: RWMutex.hpp:4
A file archiving metadata of a function.
Definition: NTFile.hpp:50
An interface for exploration.
Definition: INTExplore.hpp:25
NTFactory * factory
A factory and manager class for nam-tree.
Definition: NTFile.hpp:65
NTFile * otherside
A file of otherside.
Definition: NTFile.hpp:86
Top level namespace of products built from samchon.
Definition: ByteArray.hpp:7