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