| 1187 | } |
| 1188 | |
| 1189 | Status 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 | |
| 1232 | shared_ptr<ArraySchema> array_schema_deserialize( |
| 1233 | SerializationType serialize_type, |
no test coverage detected