Hazelcast C++ Client
Hazelcast C++ Client Library
Loading...
Searching...
No Matches
hazelcast::client::serialization::object_data_input Class Reference
Inheritance diagram for hazelcast::client::serialization::object_data_input:

Public Member Functions

 object_data_input (boost::endian::order byte_order, const std::vector< byte > &buffer, int offset, pimpl::PortableSerializer &portable_ser, pimpl::compact_stream_serializer &compact_ser, pimpl::DataSerializer &data_ser, std::shared_ptr< serialization::global_serializer > global_serializer)
 Internal API.
template<typename T>
std::enable_if<!(std::is_array< T >::value &&std::is_same< typenamestd::remove_all_extents< T >::type, char >::value), boost::optional< T > >::type read_object ()
template<typename T>
std::enable_if< std::is_array< T >::value &&std::is_same< typenamestd::remove_all_extents< T >::type, char >::value, boost::optional< std::string > >::type read_object ()
template<typename T>
std::enable_if< std::is_base_of< identified_data_serializer, hz_serializer< T > >::value, boost::optional< T > >::type read_object (int32_t type_id)
template<typename T>
std::enable_if< std::is_base_of< portable_serializer, hz_serializer< T > >::value, boost::optional< T > >::type read_object (int32_t type_id)
template<typename T>
std::enable_if< std::is_base_of< compact::compact_serializer, hz_serializer< T > >::value, boost::optional< T > >::type read_object (int32_t type_id)
template<typename T>
std::enable_if< std::is_base_of< builtin_serializer, hz_serializer< T > >::value, boost::optional< T > >::type read_object (int32_t type_id)
template<typename T>
std::enable_if< std::is_base_of< custom_serializer, hz_serializer< T > >::value, boost::optional< T > >::type read_object (int32_t type_id)
template<typename T>
std::enable_if< std::is_same< generic_record::generic_record, T >::value, boost::optional< T > >::type read_object (int32_t type_id)
template<typename T>
std::enable_if<!(std::is_base_of< identified_data_serializer, hz_serializer< T > >::value||std::is_base_of< portable_serializer, hz_serializer< T > >::value||std::is_base_of< compact::compact_serializer, hz_serializer< T > >::value||std::is_base_of< builtin_serializer, hz_serializer< T > >::value||std::is_base_of< custom_serializer, hz_serializer< T > >::value||std::is_same< generic_record::generic_record, T >::value), boost::optional< T > >::type read_object (int32_t type_id)
 Global serialization.

Friends

class compact::compact_reader
class portable_reader
template<typename OFFSET_TYPE>
int32_t pimpl::offset_reader::get_offset (object_data_input &in, uint32_t variable_offsets_pos, uint32_t index)

Detailed Description

Definition at line 756 of file serialization.h.

Constructor & Destructor Documentation

◆ object_data_input()

hazelcast::client::serialization::object_data_input::object_data_input ( boost::endian::order byte_order,
const std::vector< byte > & buffer,
int offset,
pimpl::PortableSerializer & portable_ser,
pimpl::compact_stream_serializer & compact_ser,
pimpl::DataSerializer & data_ser,
std::shared_ptr< serialization::global_serializer > global_serializer )

Internal API.

Constructor

Definition at line 367 of file serialization.cpp.

375 : pimpl::data_input<std::vector<byte>>(byte_order, buffer, offset)
376 , portable_serializer_(portable_ser)
377 , compact_serializer_(compact_ser)
378 , data_serializer_(data_ser)
379 , global_serializer_(std::move(global_serializer))
380{}

Member Function Documentation

◆ read_object() [1/3]

template<typename T>
std::enable_if< std::is_array< T >::value &&std::is_same< typenamestd::remove_all_extents< T >::type, char >::value, boost::optional< std::string > >::type hazelcast::client::serialization::object_data_input::read_object ( )
inline
Returns
the object read
Exceptions
ioif it reaches end of file before finish reading

Definition at line 2431 of file serialization.h.

2432{
2433 int32_t typeId = read(boost::endian::order::big);
2434 if (static_cast<int32_t>(
2435 pimpl::serialization_constants::CONSTANT_TYPE_NULL) == typeId) {
2436 return boost::none;
2437 }
2438 return read_object<T>(typeId);
2439}
std::enable_if<!(std::is_array< T >::value &&std::is_same< typenamestd::remove_all_extents< T >::type, char >::value), boost::optional< T > >::type read_object()

◆ read_object() [2/3]

template<typename T>
std::enable_if<!(std::is_base_of< identified_data_serializer, hz_serializer< T > >::value||std::is_base_of< portable_serializer, hz_serializer< T > >::value||std::is_base_of< compact::compact_serializer, hz_serializer< T > >::value||std::is_base_of< builtin_serializer, hz_serializer< T > >::value||std::is_base_of< custom_serializer, hz_serializer< T > >::value||std::is_same< generic_record::generic_record, T >::value), boost::optional< T > >::type hazelcast::client::serialization::object_data_input::read_object ( int32_t type_id)
inline

Definition at line 2453 of file serialization.h.

2455{
2456 if (type_id != static_cast<int32_t>(
2457 pimpl::serialization_constants::CONSTANT_TYPE_DATA)) {
2458 BOOST_THROW_EXCEPTION(exception::hazelcast_serialization(
2459 "object_data_input::read_object<identified_data_serializer>",
2460 (boost::format("The associated serializer Serializer<T> is "
2461 "identified_data_serializer "
2462 "but received data type id is %1%") %
2463 type_id)
2464 .str()));
2465 }
2466
2467 return data_serializer_.read_object<T>(*this);
2468}

◆ read_object() [3/3]

template<typename T>
std::enable_if<!(std::is_base_of< identified_data_serializer, hz_serializer< T > >::value||std::is_base_of< portable_serializer, hz_serializer< T > >::value||std::is_base_of< compact::compact_serializer, hz_serializer< T > >::value||std::is_base_of< builtin_serializer, hz_serializer< T > >::value||std::is_base_of< custom_serializer, hz_serializer< T > >::value||std::is_same< generic_record::generic_record, T >::value), boost::optional< T > >::type hazelcast::client::serialization::object_data_input::read_object ( int32_t type_id)
inline

Global serialization.

Template Parameters
TThe type to be deserialized to
Parameters
typeIdthe type id of the serilizer
Returns
the deserialized object

◆ compact::compact_reader

friend class compact::compact_reader
friend

Definition at line 765 of file serialization.h.

◆ portable_reader

friend class portable_reader
friend

Definition at line 766 of file serialization.h.


The documentation for this class was generated from the following files: