22 #include <boost/shared_ptr.hpp>
23 #include <boost/make_shared.hpp>
27 #pragma warning(disable: 4127 4244 4267)
29 #include <google/protobuf/stubs/common.h>
30 #include <google/protobuf/message.h>
35 #include "soss_client/typed_named_cache.h"
36 #include "soss_client/filter.h"
37 #include "soss_client/internal/protobuf_index_builder.h"
40 namespace pb = ::google::protobuf;
65 virtual boost::shared_ptr<T>
deserialize(
const std::vector<uint8_t> &bytes)
67 boost::shared_ptr<T> obj_p = boost::make_shared<T>();
68 obj_p->ParseFromArray(&bytes[0], static_cast<int>(bytes.size()));
72 virtual void serialize(T
const & message, std::vector<uint8_t> &bytes_out, std::vector<uint8_t> &prop_spec_out)
74 int message_size = message.ByteSize();
75 bytes_out.resize(message_size);
76 message.SerializeToArray(bytes_out.data(), message_size);
77 sosscli::internal::ProtobufIndexBuilder::generate_prop_spec(message, prop_spec_out);
80 virtual void serialize_filter(
const Filter &filter, std::vector<uint8_t> &bytes_out,
size_t bytes_to_reserve_for_header)
82 sosscli::internal::ProtobufIndexBuilder::generate_query_spec(T::default_instance(), filter, bytes_out, bytes_to_reserve_for_header);