MCPcopy Create free account
hub / github.com/TileDB-Inc/TileDB / metadata_serialize

Function metadata_serialize

tiledb/sm/serialization/array.cc:390–436  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

388}
389
390Status metadata_serialize(
391 Metadata* metadata,
392 SerializationType serialize_type,
393 SerializationBuffer& serialized_buffer) {
394 if (metadata == nullptr)
395 return LOG_STATUS(Status_SerializationError(
396 "Error serializing array metadata; array instance is null"));
397
398 try {
399 // Serialize
400 ::capnp::MallocMessageBuilder message;
401 auto builder = message.initRoot<capnp::ArrayMetadata>();
402
403 RETURN_NOT_OK(metadata_to_capnp(metadata, &builder));
404
405 // Copy to buffer
406 switch (serialize_type) {
407 case SerializationType::JSON: {
408 ::capnp::JsonCodec json;
409 kj::String capnp_json = json.encode(builder);
410 serialized_buffer.assign(capnp_json);
411 break;
412 }
413 case SerializationType::CAPNP: {
414 kj::Array<::capnp::word> protomessage = messageToFlatArray(message);
415 serialized_buffer.assign(protomessage.asChars());
416 break;
417 }
418 default: {
419 return LOG_STATUS(Status_SerializationError(
420 "Error serializing array metadata; Unknown serialization type "
421 "passed"));
422 }
423 }
424
425 } catch (kj::Exception& e) {
426 return LOG_STATUS(Status_SerializationError(
427 "Error serializing array metadata; kj::Exception: " +
428 std::string(e.getDescription().cStr())));
429 } catch (std::exception& e) {
430 return LOG_STATUS(Status_SerializationError(
431 "Error serializing array metadata; exception " +
432 std::string(e.what())));
433 }
434
435 return Status::Ok();
436}
437
438Status metadata_deserialize(
439 Metadata* metadata,

Calls 6

LOG_STATUSFunction · 0.85
metadata_to_capnpFunction · 0.85
assignMethod · 0.45
whatMethod · 0.45

Tested by

no test coverage detected