1 /**
2  * @file   tiledb_struct_def.h
3  *
4  * @section LICENSE
5  *
6  * The MIT License
7  *
8  * @copyright Copyright (c) 2017-2021 TileDB, Inc.
9  * @copyright Copyright (c) 2016 MIT and Intel Corporation
10  *
11  * Permission is hereby granted, free of charge, to any person obtaining a copy
12  * of this software and associated documentation files (the "Software"), to deal
13  * in the Software without restriction, including without limitation the rights
14  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
15  * copies of the Software, and to permit persons to whom the Software is
16  * furnished to do so, subject to the following conditions:
17  *
18  * The above copyright notice and this permission notice shall be included in
19  * all copies or substantial portions of the Software.
20  *
21  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
22  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
23  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
24  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
25  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
26  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
27  * THE SOFTWARE.
28  *
29  * @section DESCRIPTION
30  *
31  * This file contains the TileDB C API struct object definitions.
32  */
33 
34 #ifndef TILEDB_C_API_STRUCT_DEF_H
35 #define TILEDB_C_API_STRUCT_DEF_H
36 
37 #include "tiledb/sm/array/array.h"
38 #include "tiledb/sm/array_schema/array_schema.h"
39 #include "tiledb/sm/array_schema/array_schema_evolution.h"
40 #include "tiledb/sm/buffer/buffer_list.h"
41 #include "tiledb/sm/config/config.h"
42 #include "tiledb/sm/config/config_iter.h"
43 #include "tiledb/sm/filesystem/vfs_file_handle.h"
44 #include "tiledb/sm/filter/compression_filter.h"
45 #include "tiledb/sm/filter/filter_pipeline.h"
46 #include "tiledb/sm/fragment/fragment_info.h"
47 #include "tiledb/sm/query/query.h"
48 #include "tiledb/sm/query/query_condition.h"
49 #include "tiledb/sm/storage_manager/context.h"
50 #include "tiledb/sm/subarray/subarray.h"
51 #include "tiledb/sm/subarray/subarray_partitioner.h"
52 
53 struct tiledb_array_t {
54   tiledb::sm::Array* array_ = nullptr;
55 };
56 
57 struct tiledb_buffer_t {
58   tiledb::sm::Datatype datatype_ = tiledb::sm::Datatype::UINT8;
59   tiledb::sm::Buffer* buffer_ = nullptr;
60 };
61 
62 struct tiledb_buffer_list_t {
63   tiledb::sm::BufferList* buffer_list_ = nullptr;
64 };
65 
66 struct tiledb_config_t {
67   tiledb::sm::Config* config_ = nullptr;
68 };
69 
70 struct tiledb_config_iter_t {
71   tiledb::sm::ConfigIter* config_iter_ = nullptr;
72 };
73 
74 struct tiledb_ctx_t {
75   tiledb::sm::Context* ctx_ = nullptr;
76 };
77 
78 struct tiledb_error_t {
79   std::string errmsg_;
80 };
81 
82 struct tiledb_attribute_t {
83   tiledb::sm::Attribute* attr_ = nullptr;
84 };
85 
86 struct tiledb_array_schema_t {
87   tiledb::sm::ArraySchema* array_schema_ = nullptr;
88 };
89 
90 struct tiledb_array_schema_evolution_t {
91   tiledb::sm::ArraySchemaEvolution* array_schema_evolution_ = nullptr;
92 };
93 
94 struct tiledb_dimension_t {
95   tiledb::sm::Dimension* dim_ = nullptr;
96 };
97 
98 struct tiledb_domain_t {
99   tiledb::sm::Domain* domain_ = nullptr;
100 };
101 
102 struct tiledb_filter_t {
103   tiledb::sm::Filter* filter_ = nullptr;
104 };
105 
106 struct tiledb_filter_list_t {
107   tiledb::sm::FilterPipeline* pipeline_ = nullptr;
108 };
109 
110 struct tiledb_query_t {
111   tiledb::sm::Query* query_ = nullptr;
112 };
113 
114 struct tiledb_query_condition_t {
115   tiledb::sm::QueryCondition* query_condition_ = nullptr;
116 };
117 
118 struct tiledb_vfs_t {
119   tiledb::sm::VFS* vfs_ = nullptr;
120 };
121 
122 struct tiledb_vfs_fh_t {
123   tiledb::sm::VFSFileHandle* vfs_fh_ = nullptr;
124 };
125 
126 struct tiledb_fragment_info_t {
127   tiledb::sm::FragmentInfo* fragment_info_ = nullptr;
128 };
129 
130 #endif
131