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

Function array_schema_serialize

tiledb/sm/serialization/array_schema.cc:1189–1230  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1187}
1188
1189Status array_schema_serialize(
1190 const ArraySchema& array_schema,
1191 SerializationType serialize_type,
1192 SerializationBuffer& serialized_buffer,
1193 const bool client_side) {
1194 try {
1195 ::capnp::MallocMessageBuilder message;
1196 capnp::ArraySchema::Builder arraySchemaBuilder =
1197 message.initRoot<capnp::ArraySchema>();
1198 RETURN_NOT_OK(
1199 array_schema_to_capnp(array_schema, &arraySchemaBuilder, client_side));
1200
1201 switch (serialize_type) {
1202 case SerializationType::JSON: {
1203 ::capnp::JsonCodec json;
1204 kj::String capnp_json = json.encode(arraySchemaBuilder);
1205 serialized_buffer.assign(capnp_json);
1206 break;
1207 }
1208 case SerializationType::CAPNP: {
1209 kj::Array<::capnp::word> protomessage = messageToFlatArray(message);
1210 serialized_buffer.assign(protomessage.asChars());
1211 break;
1212 }
1213 default: {
1214 return LOG_STATUS(Status_SerializationError(
1215 "Error serializing array schema; Unknown serialization type "
1216 "passed"));
1217 }
1218 }
1219
1220 } catch (kj::Exception& e) {
1221 return LOG_STATUS(Status_SerializationError(
1222 "Error serializing array schema; kj::Exception: " +
1223 std::string(e.getDescription().cStr())));
1224 } catch (std::exception& e) {
1225 return LOG_STATUS(Status_SerializationError(
1226 "Error serializing array schema; exception " + std::string(e.what())));
1227 }
1228
1229 return Status::Ok();
1230}
1231
1232shared_ptr<ArraySchema> array_schema_deserialize(
1233 SerializationType serialize_type,

Callers 3

ser_des_array_schemaMethod · 0.85

Calls 5

array_schema_to_capnpFunction · 0.85
LOG_STATUSFunction · 0.85
assignMethod · 0.45
whatMethod · 0.45

Tested by

no test coverage detected