-
Notifications
You must be signed in to change notification settings - Fork 10
/
Copy pathContainerInfo.h
80 lines (63 loc) · 2.44 KB
/
ContainerInfo.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
/*
Copyright (c) 2017 TOSHIBA Digital Solutions Corporation.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
#ifndef _CONTAINERINFO_H_
#define _CONTAINERINFO_H_
#include <string>
#include <cstring>
#include <utility>
#include <assert.h>
#include "TimeSeriesProperties.h"
#include "ExpirationInfo.h"
#include "GSException.h"
#include "Util.h"
//Support column_info_list attribute
struct ColumnInfoList {
GSColumnInfo* columnInfo;
size_t size;
};
using namespace std;
namespace griddb {
class ContainerInfo {
/**
* Contains information about a specific container
*/
private:
GSContainerInfo mContainerInfo;
//tmp attribute to get column info list
ColumnInfoList mColumnInfoList;
//tmp attribute support get expiration attribute
ExpirationInfo* mExpInfo;
public:
ContainerInfo(GSContainerInfo *containerInfo);
ContainerInfo(const GSChar* name, const GSColumnInfo* props,
int propsCount, GSContainerType type = GS_CONTAINER_COLLECTION,
bool row_key = true, ExpirationInfo* expiration = NULL);
~ContainerInfo();
void set_name(GSChar* containerName);
void set_type(GSContainerType containerType);
void set_row_key_assigned(bool rowKeyAssigned);
const GSChar* get_name();
GSContainerType get_type();
GSColumnInfo get_column_info(size_t column);
ColumnInfoList get_column_info_list();
void set_column_info_list(ColumnInfoList columnInfoList);
ExpirationInfo* get_expiration_info();
void set_expiration_info(ExpirationInfo* expirationInfo);
bool get_row_key_assigned();
GSContainerInfo* gs_info();
private:
void init(const GSChar* name, GSContainerType type, const GSColumnInfo* props,
int propsCount, bool rowKeyAssigned, ExpirationInfo* expiration);
};
} /* namespace griddb */
#endif /* Define _CONTAINERINFO_H_ */