]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.databoard/cpp/DataBoardTest/DataBoard/DataValue.h
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.databoard / cpp / DataBoardTest / DataBoard / DataValue.h
1 #pragma once\r
2 \r
3 namespace Databoard {\r
4         namespace Value {\r
5 \r
6 \r
7                 class Value {\r
8                 public:\r
9                         Value();\r
10                         virtual ~Value() = 0; // meniks tää näin..\r
11                 };\r
12 \r
13 \r
14                 class Integer : public Value {\r
15                 public:\r
16                         Integer();\r
17                         Integer(int value);\r
18 \r
19                         virtual ~Integer();\r
20 \r
21                         int getValue();\r
22                         void setValue(int value);\r
23 \r
24                 protected:\r
25 \r
26                         int value;\r
27                 };\r
28 \r
29 \r
30 \r
31                 class Array : public Value {\r
32                 public:\r
33                         virtual int size() = 0;\r
34                         virtual Value get(int index) = 0;\r
35                 };\r
36 \r
37 \r
38 \r
39                 class GenericArray : public Array {\r
40                 public:\r
41                         Value get(int index) { return values.get(index); }\r
42                 private:\r
43                         std::vector<Value> values;\r
44                 };\r
45 \r
46 \r
47                 class ByteArray : public Array {\r
48                 public:\r
49                         Value get(int index) { return null; }\r
50                         char* getPrimitiveArray() { return null; }\r
51                 private:\r
52                         std::vector<char> values;\r
53                 };\r
54 \r
55                 class Double : public Value {\r
56                 public:\r
57                         double getValue() { return value; }\r
58                 private:\r
59                         double value;\r
60                 }\r
61         }\r
62 }