1#ifndef ISPN_HOTROD_BASICMARSHALLER_H
2#define ISPN_HOTROD_BASICMARSHALLER_H
21 void marshall(
const T& s, std::vector<char>& b) {
22#if __GNUG__ && __GNUC__ < 5
23 static_assert(std::is_fundamental<T>::value,
"Type is not fundamental. A marshaller specialization is needed");
25 static_assert(std::is_trivially_copyable<T>::value,
"Type is not trivially_copyable. A marshaller specialization is needed");
28 std::memcpy(b.data(), &s,
sizeof(s));
31#if __GNUG__ && __GNUC__ < 5
32 static_assert(std::is_fundamental<T>::value,
"Type is not trivially_copyable. A marshaller specialization is needed");
34 static_assert(std::is_trivially_copyable<T>::value,
"Type is not trivially_copyable. A marshaller specialization is needed");
37 std::memcpy(s, b.data(),
sizeof(*s));
47 void marshall(
const std::string& s, std::vector<char>& b) {
48 b.assign(s.data(), s.data()+s.size());
50 std::string*
unmarshall(
const std::vector<char>& b) {
51 std::string* s =
new std::string(b.data(), b.size());
Definition: BasicMarshaller.h:19
T * unmarshall(const std::vector< char > &b)
Definition: BasicMarshaller.h:30
void marshall(const T &s, std::vector< char > &b)
Definition: BasicMarshaller.h:21
Definition: Marshaller.h:13
Definition: AuthenticationConfiguration.h:10