]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.databoard/cpp/DataBoardTest/DataBoard/DataValueRepository.h
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.databoard / cpp / DataBoardTest / DataBoard / DataValueRepository.h
diff --git a/bundles/org.simantics.databoard/cpp/DataBoardTest/DataBoard/DataValueRepository.h b/bundles/org.simantics.databoard/cpp/DataBoardTest/DataBoard/DataValueRepository.h
new file mode 100644 (file)
index 0000000..7b16fe2
--- /dev/null
@@ -0,0 +1,61 @@
+#pragma once\r
+\r
+#include "DataBoardAPI.h"\r
+\r
+#include "SimanticsDataParser.h"\r
+#include "SimanticsDataLexer.h"\r
+\r
+#include <string>\r
+#include <vector>\r
+\r
+namespace Databoard {\r
+\r
+       namespace Type {\r
+               class DataType;\r
+               class DataBoardRepository;\r
+               struct strTypeDefinition;\r
+       }\r
+\r
+       namespace Value {\r
+\r
+               class Value;\r
+\r
+               struct DATABOARD_API strDataValueDefinition {\r
+                       std::string name;\r
+                       std::string type;\r
+                       Value* value;\r
+\r
+                       std::string writeOut() const;\r
+               };\r
+\r
+               class DATABOARD_API DataValueRepository {\r
+               public:\r
+                       DataValueRepository();\r
+                       virtual ~DataValueRepository();\r
+\r
+                       int count();\r
+                       const strDataValueDefinition* getDataValue(int i);\r
+                       const strDataValueDefinition* getDataValue(std::string value);\r
+\r
+                       bool open(std::string fileName, Databoard::Type::DataBoardRepository* dataBoardRepository);\r
+                       Value* open(std::string fileName, Databoard::Type::DataType* dataType);\r
+                       \r
+\r
+               protected:\r
+\r
+                       std::vector<strDataValueDefinition> values;\r
+\r
+               private:\r
+\r
+                       Databoard::Type::DataBoardRepository* dataBoardRepository;\r
+\r
+                       Value* parse(pANTLR3_BASE_TREE tree, Value* parent = NULL, int indent = 0);\r
+                       void print(pANTLR3_BASE_TREE tree, int indent = 0);\r
+\r
+                       const Databoard::Type::strTypeDefinition* parseTypeReference(pANTLR3_BASE_TREE tree);\r
+                       Value* parseValues(pANTLR3_BASE_TREE tree, Databoard::Type::DataType* dataBoard, int indent);\r
+\r
+                       void addDataValue(std::string name, std::string type, Value* dataValue);\r
+               };\r
+       }\r
+}\r