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

Public Member Functions

 object_data_output (boost::endian::order byte_order, bool dont_write=false, pimpl::PortableSerializer *portable_ser=nullptr, pimpl::compact_stream_serializer *compact_ser=nullptr, std::shared_ptr< serialization::global_serializer > global_serializer=nullptr)
 Internal API Constructor.
template<typename T>
void write_object (const T *object)
template<typename T>
std::enable_if<!(std::is_array< T >::value &&std::is_same< typenamestd::remove_all_extents< T >::type, char >::value), void >::type write_object (const boost::optional< T > &object)
template<typename T>
std::enable_if< std::is_array< T >::value &&std::is_same< typenamestd::remove_all_extents< T >::type, char >::value, void >::type write_object (const T &object)
template<typename T>
std::enable_if< std::is_base_of< builtin_serializer, hz_serializer< T > >::value, void >::type write_object (const T &object)
template<typename T>
std::enable_if< std::is_base_of< identified_data_serializer, hz_serializer< T > >::value, void >::type write_object (const T &object)
template<typename T>
std::enable_if< std::is_base_of< portable_serializer, hz_serializer< T > >::value, void >::type write_object (const T &object)
template<typename T>
std::enable_if< std::is_same< generic_record::generic_record, T >::value >::type write_object (const T &object)
template<typename T>
std::enable_if< std::is_base_of< compact::compact_serializer, hz_serializer< T > >::value, void >::type write_object (const T &object)
template<typename T>
std::enable_if< std::is_base_of< custom_serializer, hz_serializer< T > >::value, void >::type write_object (const T &object)
template<typename T>
std::enable_if<!(std::is_base_of< builtin_serializer, hz_serializer< T > >::value||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< custom_serializer, hz_serializer< T > >::value||std::is_same< generic_record::generic_record, T >::value||(std::is_array< T >::value &&std::is_same< typenamestd::remove_all_extents< T >::type, char >::value)), void >::type write_object (const T object)
 Global serialization if configured.
void write_objects ()
template<typename FirstObjectType, typename... OtherObjects>
void write_objects (const FirstObjectType &object, const OtherObjects &... objects)
template<typename T>
void write_bytes (const T &s)
template<>
void HAZELCAST_API write_object (const char *object)
template<>
void write_object (const char *object)

Friends

class pimpl::compact_stream_serializer
class pimpl::SerializationService

Detailed Description

Definition at line 851 of file serialization.h.

Constructor & Destructor Documentation

◆ object_data_output()

hazelcast::client::serialization::object_data_output::object_data_output ( boost::endian::order byte_order,
bool dont_write = false,
pimpl::PortableSerializer * portable_ser = nullptr,
pimpl::compact_stream_serializer * compact_ser = nullptr,
std::shared_ptr< serialization::global_serializer > global_serializer = nullptr )
explicit

Internal API Constructor.

Definition at line 382 of file serialization.cpp.

388 : data_output(byte_order, dont_write)
389 , portable_serializer_(portable_ser)
390 , compact_serializer_(compact_ser)
391 , global_serializer_(std::move(global_serializer))
392{}

Member Function Documentation

◆ write_bytes()

template<typename T>
void hazelcast::client::serialization::object_data_output::write_bytes ( const T & s)
inline

Definition at line 939 of file serialization.h.

940 {
941 for (auto c : s) {
942 output_stream_.push_back(c);
943 }
944 }

◆ write_object() [1/5]

template<typename T>
std::enable_if<!(std::is_array< T >::value &&std::is_same< typenamestd::remove_all_extents< T >::type, char >::value), void >::type hazelcast::client::serialization::object_data_output::write_object ( const boost::optional< T > & object)

Definition at line 2283 of file serialization.h.

2284{
2285 if (is_no_write_) {
2286 return;
2287 }
2288 if (!object) {
2289 write(static_cast<int32_t>(
2290 pimpl::serialization_constants::CONSTANT_TYPE_NULL),
2291 boost::endian::order::big);
2292 return;
2293 }
2294
2295 write_object<T>(object.value());
2296}

◆ write_object() [2/5]

template<>
void hazelcast::client::serialization::object_data_output::write_object ( const char * object)

Definition at line 419 of file serialization.cpp.

420{
421 if (!object) {
422 write<int32_t>(static_cast<int32_t>(
423 pimpl::serialization_constants::CONSTANT_TYPE_NULL));
424 return;
425 }
426 write_object<std::string>(std::string(object));
427}

◆ write_object() [3/5]

template<typename T>
std::enable_if< std::is_same< generic_record::generic_record, T >::value >::type hazelcast::client::serialization::object_data_output::write_object ( const T & object)
inline

Definition at line 2301 of file serialization.h.

2302{
2303 if (is_no_write_) {
2304 return;
2305 }
2306 write(
2307 static_cast<int32_t>(pimpl::serialization_constants::CONSTANT_TYPE_DATA),
2308 boost::endian::order::big);
2309 pimpl::DataSerializer::write<T>(object, *this);
2310}

◆ write_object() [4/5]

template<typename T>
void hazelcast::client::serialization::object_data_output::write_object ( const T * object)

Definition at line 2263 of file serialization.h.

2264{
2265 if (is_no_write_) {
2266 return;
2267 }
2268 if (!object) {
2269 write(static_cast<int32_t>(
2270 pimpl::serialization_constants::CONSTANT_TYPE_NULL),
2271 boost::endian::order::big);
2272 return;
2273 }
2274
2275 write_object<T>(*object);
2276}

◆ write_object() [5/5]

template<typename T>
std::enable_if<!(std::is_base_of< builtin_serializer, hz_serializer< T > >::value||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< custom_serializer, hz_serializer< T > >::value||std::is_same< generic_record::generic_record, T >::value||(std::is_array< T >::value &&std::is_same< typenamestd::remove_all_extents< T >::type, char >::value)), void >::type hazelcast::client::serialization::object_data_output::write_object ( const T object)
inline

Global serialization if configured.

Template Parameters
T
Parameters
object
Returns

Definition at line 2410 of file serialization.h.

2411{
2412 if (!global_serializer_) {
2413 throw exception::hazelcast_serialization(
2414 "object_data_output::write_object",
2415 (boost::format("No serializer found for type(%1%).") %
2416 typeid(T).name())
2417 .str());
2418 }
2419 if (is_no_write_) {
2420 return;
2421 }
2422 write(static_cast<int32_t>(global_serializer::get_type_id()),
2423 boost::endian::order::big);
2424 global_serializer_->write(boost::any(std::move(object)), *this);
2425}

◆ write_objects() [1/2]

void hazelcast::client::serialization::object_data_output::write_objects ( )
inline

Definition at line 928 of file serialization.h.

928{}

◆ write_objects() [2/2]

template<typename FirstObjectType, typename... OtherObjects>
void hazelcast::client::serialization::object_data_output::write_objects ( const FirstObjectType & object,
const OtherObjects &... objects )
inline

Definition at line 931 of file serialization.h.

933 {
934 write_object(object);
935 write_objects(objects...);
936 }

◆ pimpl::compact_stream_serializer

friend class pimpl::compact_stream_serializer
friend

Definition at line 949 of file serialization.h.

◆ pimpl::SerializationService

friend class pimpl::SerializationService
friend

Definition at line 950 of file serialization.h.


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