Skip to content

Commit 7739d94

Browse files
Use DataProtocol exposed by core
1 parent 154433a commit 7739d94

6 files changed

Lines changed: 7 additions & 59 deletions

File tree

libtiledbvcf/src/dataset/tiledbvcfdataset.cc

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -317,13 +317,10 @@ void TileDBVCFDataset::create_empty_metadata(
317317
const std::string& root_uri,
318318
const Metadata& metadata,
319319
const tiledb_filter_type_t& checksum) {
320-
utils::TileDBDataProtocol protocol =
321-
utils::detect_tiledb_data_protocol(root_uri, ctx);
322-
323320
create_group(ctx, metadata_group_uri(root_uri));
324321
create_sample_header_array(ctx, root_uri, checksum);
325322

326-
if (protocol == utils::TileDBDataProtocol::TILEDBV2) {
323+
if (ctx.data_protocol(root_uri) == tiledb::Context::DataProtocol::v2) {
327324
// Group assets use full paths for tiledb cloud, relative paths otherwise
328325
bool relative = !cloud_dataset(root_uri);
329326

@@ -364,9 +361,6 @@ void TileDBVCFDataset::create_empty_data_array(
364361
const bool allow_duplicates,
365362
const bool compress_sample_dim,
366363
const int compression_level) {
367-
utils::TileDBDataProtocol protocol =
368-
utils::detect_tiledb_data_protocol(root_uri, ctx);
369-
370364
ArraySchema schema(ctx, TILEDB_SPARSE);
371365
schema.set_capacity(metadata.tile_capacity);
372366
schema.set_order({{TILEDB_ROW_MAJOR, TILEDB_ROW_MAJOR}});
@@ -475,7 +469,7 @@ void TileDBVCFDataset::create_empty_data_array(
475469

476470
Array::create(data_array_uri(root_uri), schema);
477471

478-
if (protocol == utils::TileDBDataProtocol::TILEDBV2) {
472+
if (ctx.data_protocol(root_uri) == tiledb::Context::DataProtocol::v2) {
479473
// Add the array to the root group
480474
// Group assests use full paths for tiledb cloud, relative paths otherwise
481475
bool relative = !cloud_dataset(root_uri);
@@ -1110,8 +1104,7 @@ std::unique_ptr<tiledb::Array> TileDBVCFDataset::open_vcf_array(
11101104
// We are opening a legacy dataset where the `vcf_headers` array is
11111105
// registered under the root group
11121106
if (utils::has_member(*root_group, VCF_HEADER_ARRAY)) {
1113-
if (utils::detect_tiledb_data_protocol(root_uri_, *ctx_) ==
1114-
utils::TileDBDataProtocol::TILEDBV3) {
1107+
if (ctx_->data_protocol(root_uri_) == tiledb::Context::DataProtocol::v3) {
11151108
// This is an legacy dataset registered under TileDB Carrara
11161109
throw std::runtime_error(
11171110
"Cannot open TileDB-VCF dataset; dataset '" + root_uri_ +

libtiledbvcf/src/stats/allele_count.cc

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,6 @@ void AlleleCount::create(
3939
Context& ctx, const std::string& root_uri, tiledb_filter_type_t checksum) {
4040
LOG_DEBUG("[AlleleCount] Create array");
4141

42-
utils::TileDBDataProtocol protocol =
43-
utils::detect_tiledb_data_protocol(root_uri, ctx);
44-
4542
// Create filter lists
4643
FilterList rle_coord_filters(ctx);
4744
FilterList int_coord_filters(ctx);
@@ -109,7 +106,7 @@ void AlleleCount::create(
109106
Array array(ctx, uri, TILEDB_WRITE);
110107
array.put_metadata("version", TILEDB_UINT32, 1, &ALLELE_COUNT_VERSION);
111108

112-
if (protocol == utils::TileDBDataProtocol::TILEDBV2) {
109+
if (ctx.data_protocol(root_uri) == tiledb::Context::DataProtocol::v2) {
113110
// Add array to root group
114111
// Group assets use full paths for tiledb cloud, relative paths otherwise
115112
auto relative = !utils::starts_with(root_uri, "tiledb://");

libtiledbvcf/src/stats/sample_stats.cc

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,6 @@ SampleStats::~SampleStats() {
4949

5050
void SampleStats::create(
5151
Context& ctx, const std::string& root_uri, int compression_level) {
52-
utils::TileDBDataProtocol protocol =
53-
utils::detect_tiledb_data_protocol(root_uri, ctx);
54-
5552
// Create filter lists
5653
FilterList int_fl(ctx);
5754
FilterList float_fl(ctx);
@@ -143,7 +140,7 @@ void SampleStats::create(
143140
Array array(ctx, uri, TILEDB_WRITE);
144141
array.put_metadata("version", TILEDB_INT32, 1, &SAMPLE_STATS_VERSION);
145142

146-
if (protocol == utils::TileDBDataProtocol::TILEDBV2) {
143+
if (ctx.data_protocol(root_uri) == tiledb::Context::DataProtocol::v2) {
147144
// Add array to root group
148145
// Group assets use full paths for tiledb cloud, relative paths otherwise
149146
auto relative = !utils::starts_with(root_uri, "tiledb://");

libtiledbvcf/src/stats/variant_stats.cc

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -57,9 +57,6 @@ void VariantStats::create(
5757
Context& ctx, const std::string& root_uri, tiledb_filter_type_t checksum) {
5858
LOG_DEBUG("[VariantStats] Create array");
5959

60-
utils::TileDBDataProtocol protocol =
61-
utils::detect_tiledb_data_protocol(root_uri, ctx);
62-
6360
// Create filter lists
6461
FilterList rle_coord_filters(ctx);
6562
FilterList int_coord_filters(ctx);
@@ -160,7 +157,7 @@ void VariantStats::create(
160157
Array array(ctx, uri, TILEDB_WRITE);
161158
array.put_metadata("version", TILEDB_UINT32, 1, &array_version_);
162159

163-
if (protocol == utils::TileDBDataProtocol::TILEDBV2) {
160+
if (ctx.data_protocol(root_uri) == tiledb::Context::DataProtocol::v2) {
164161
// Add array to root group
165162
// Group assests use full paths for tiledb cloud, relative paths otherwise
166163
auto relative = !utils::starts_with(root_uri, "tiledb://");

libtiledbvcf/src/utils/uri.cc

Lines changed: 1 addition & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -91,29 +91,8 @@ std::string root_uri(
9191
return utils::uri_join(root, array);
9292
}
9393

94-
TileDBDataProtocol detect_tiledb_data_protocol(
95-
std::string_view uri, const Context& ctx) {
96-
if (!uri.starts_with("tiledb")) {
97-
return TileDBDataProtocol::TILEDBV2;
98-
}
99-
100-
if (ctx.config().contains("rest.server_address")) {
101-
auto rest_server = ctx.config().get("rest.server_address");
102-
103-
if (rest_server == "https://api.tiledb.com" ||
104-
rest_server == "https://api.dev.tiledb.io") {
105-
return TileDBDataProtocol::TILEDBV2;
106-
}
107-
108-
return TileDBDataProtocol::TILEDBV3;
109-
}
110-
111-
throw std::runtime_error(
112-
"Unknown TileDB Data Protocol. Missing rest server address.");
113-
}
114-
11594
void validate_uri(std::string_view uri, const Context& ctx) {
116-
if (detect_tiledb_data_protocol(uri, ctx) == TileDBDataProtocol::TILEDBV2) {
95+
if (ctx.data_protocol(uri.data()) == tiledb::Context::DataProtocol::v2) {
11796
return;
11897
}
11998

libtiledbvcf/src/utils/uri.h

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,6 @@ namespace vcf {
3636

3737
namespace utils {
3838

39-
enum class TileDBDataProtocol { TILEDBV2, TILEDBV3 };
40-
4139
/** Ensure URI ends in / if a dir */
4240
void normalize_uri(std::string& uri, bool is_dir);
4341

@@ -84,19 +82,6 @@ std::string group_uri(const Group& group, std::string_view array);
8482
std::string root_uri(
8583
std::string_view root_uri, std::string_view array, bool relative = false);
8684

87-
/**
88-
* Detect the TileDB DataProtocol (legacy or TileDB 3.0+) based on the rest
89-
* server parameter in the TileDB config
90-
*
91-
* @param uri URI to to check
92-
* @param ctx TileDB context
93-
* @return The DataProtocol to be be used
94-
*
95-
* @remark This is a temprorary solution until a new API is available in 2.30
96-
*/
97-
TileDBDataProtocol detect_tiledb_data_protocol(
98-
std::string_view uri, const Context& ctx);
99-
10085
/**
10186
* Checks whether or not the passed in URI contains illegal characters based on
10287
* the selected DataProtocol

0 commit comments

Comments
 (0)