]> gerrit.simantics Code Review - simantics/platform.git/blob - 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
1 #pragma once\r
2 \r
3 #include "DataBoardAPI.h"\r
4 \r
5 #include "SimanticsDataParser.h"\r
6 #include "SimanticsDataLexer.h"\r
7 \r
8 #include <string>\r
9 #include <vector>\r
10 \r
11 namespace Databoard {\r
12 \r
13         namespace Type {\r
14                 class DataType;\r
15                 class DataBoardRepository;\r
16                 struct strTypeDefinition;\r
17         }\r
18 \r
19         namespace Value {\r
20 \r
21                 class Value;\r
22 \r
23                 struct DATABOARD_API strDataValueDefinition {\r
24                         std::string name;\r
25                         std::string type;\r
26                         Value* value;\r
27 \r
28                         std::string writeOut() const;\r
29                 };\r
30 \r
31                 class DATABOARD_API DataValueRepository {\r
32                 public:\r
33                         DataValueRepository();\r
34                         virtual ~DataValueRepository();\r
35 \r
36                         int count();\r
37                         const strDataValueDefinition* getDataValue(int i);\r
38                         const strDataValueDefinition* getDataValue(std::string value);\r
39 \r
40                         bool open(std::string fileName, Databoard::Type::DataBoardRepository* dataBoardRepository);\r
41                         Value* open(std::string fileName, Databoard::Type::DataType* dataType);\r
42                         \r
43 \r
44                 protected:\r
45 \r
46                         std::vector<strDataValueDefinition> values;\r
47 \r
48                 private:\r
49 \r
50                         Databoard::Type::DataBoardRepository* dataBoardRepository;\r
51 \r
52                         Value* parse(pANTLR3_BASE_TREE tree, Value* parent = NULL, int indent = 0);\r
53                         void print(pANTLR3_BASE_TREE tree, int indent = 0);\r
54 \r
55                         const Databoard::Type::strTypeDefinition* parseTypeReference(pANTLR3_BASE_TREE tree);\r
56                         Value* parseValues(pANTLR3_BASE_TREE tree, Databoard::Type::DataType* dataBoard, int indent);\r
57 \r
58                         void addDataValue(std::string name, std::string type, Value* dataValue);\r
59                 };\r
60         }\r
61 }\r