| 593 | } |
| 594 | |
| 595 | Status array_open_serialize( |
| 596 | const Array& array, |
| 597 | SerializationType serialize_type, |
| 598 | SerializationBuffer& serialized_buffer) { |
| 599 | try { |
| 600 | ::capnp::MallocMessageBuilder message; |
| 601 | capnp::ArrayOpen::Builder arrayOpenBuilder = |
| 602 | message.initRoot<capnp::ArrayOpen>(); |
| 603 | RETURN_NOT_OK(array_open_to_capnp(array, &arrayOpenBuilder)); |
| 604 | |
| 605 | switch (serialize_type) { |
| 606 | case SerializationType::JSON: { |
| 607 | ::capnp::JsonCodec json; |
| 608 | kj::String capnp_json = json.encode(arrayOpenBuilder); |
| 609 | serialized_buffer.assign(capnp_json); |
| 610 | break; |
| 611 | } |
| 612 | case SerializationType::CAPNP: { |
| 613 | kj::Array<::capnp::word> protomessage = messageToFlatArray(message); |
| 614 | serialized_buffer.assign(protomessage.asChars()); |
| 615 | break; |
| 616 | } |
| 617 | default: { |
| 618 | return LOG_STATUS(Status_SerializationError( |
| 619 | "Error serializing array open; Unknown serialization type " |
| 620 | "passed: " + |
| 621 | std::to_string(static_cast<uint8_t>(serialize_type)))); |
| 622 | } |
| 623 | } |
| 624 | |
| 625 | } catch (kj::Exception& e) { |
| 626 | return LOG_STATUS(Status_SerializationError( |
| 627 | "Error serializing array open; kj::Exception: " + |
| 628 | std::string(e.getDescription().cStr()))); |
| 629 | } catch (std::exception& e) { |
| 630 | return LOG_STATUS(Status_SerializationError( |
| 631 | "Error serializing array open; exception " + std::string(e.what()))); |
| 632 | } |
| 633 | |
| 634 | return Status::Ok(); |
| 635 | } |
| 636 | |
| 637 | Status array_open_deserialize( |
| 638 | Array* array, |
no test coverage detected