X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.databoard%2Fcpp%2FDataBoardTest%2FDataBoard%2FDataBoardRepository.h;fp=bundles%2Forg.simantics.databoard%2Fcpp%2FDataBoardTest%2FDataBoard%2FDataBoardRepository.h;h=7da3c80dd82f651fe70cc3e07991f9fa20e0572d;hb=969bd23cab98a79ca9101af33334000879fb60c5;hp=0000000000000000000000000000000000000000;hpb=866dba5cd5a3929bbeae85991796acb212338a08;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.databoard/cpp/DataBoardTest/DataBoard/DataBoardRepository.h b/bundles/org.simantics.databoard/cpp/DataBoardTest/DataBoard/DataBoardRepository.h new file mode 100644 index 000000000..7da3c80dd --- /dev/null +++ b/bundles/org.simantics.databoard/cpp/DataBoardTest/DataBoard/DataBoardRepository.h @@ -0,0 +1,83 @@ +#pragma once + +#include "DataType.h" + +#include + +#include "SimanticsDataParser.h" +#include "SimanticsDataLexer.h" + +namespace Databoard { + + class Range; + + namespace Type { + + struct DATABOARD_API strTypeDefinition { + std::string name; + DataType* dataBoard; + + std::string writeOut(); + }; + + //DataType* parse(pANTLR3_BASE_TREE tree, DataType* parent = NULL, int indent = 0); + //bool addToChildren(DataType* parent, char* name, DataType* children); + //Range* parseRange(pANTLR3_BASE_TREE tree, int minPos, int maxPos); + //void parseParameters(pANTLR3_BASE_TREE tree, DataType* type); + + class DATABOARD_API DataBoardRepository { + public: + + DataBoardRepository(); + virtual ~DataBoardRepository(); + + int count(); + strTypeDefinition getDataBoard(int i); + DataType* getDataBoard(std::string name); + + bool open(std::string fileName); + + const strTypeDefinition* get(std::string name); + + void addDataBoard(char* name, DataType* dataBoard); + + + protected: + + std::vector dataBoards; + + private: + + //DataType* parse(pANTLR3_BASE_TREE tree, DataType* parent = NULL, int indent = 0); + //bool addToChildren(DataType* parent, char* name, DataType* children); + //Range* parseRange(pANTLR3_BASE_TREE tree, int minPos, int maxPos); + //void parseParameters(pANTLR3_BASE_TREE tree, DataType* type); + + + void print(pANTLR3_BASE_TREE tree, int indent = 0); + + }; + + + class DATABOARD_API temporaryname { + public: + + temporaryname(DataBoardRepository* dataBoardRepository); + virtual ~temporaryname(); + + DataType* parse(pANTLR3_BASE_TREE tree, DataType* parent = NULL, int indent = 0); + + + private: + + Range* parseRange(pANTLR3_BASE_TREE tree, int minPos, int maxPos); + bool addToChildren(DataType* parent, char* name, DataType* children); + + void parseParameters(pANTLR3_BASE_TREE tree, DataType* type); + + + DataBoardRepository* dataBoardRepository; + + }; + } +}