40 bool useMongoObjectIds ) :
41 useMongoIds(useMongoObjectIds)
52 DBStorableData result;
55 obj->serialize(serializer);
58 serializeMongoId(serializer);
60 result.JSON = serializer->toString();
66 const armarx::SerializablePtr& obj,
67 const ::Ice::Current&
c)
71 deserializer->reset();
72 deserializer->fromString(objData.JSON);
75 deserializeMongoId(deserializer);
79 obj->deserialize(deserializer);
86 DBStorableData result;
89 serializer->serializeIceObject(obj);
92 serializeMongoId(serializer);
94 result.JSON = serializer->toString();
98armarx::SerializablePtr
101 if (objData.JSON.empty())
103 return armarx::SerializablePtr();
107 deserializer->reset();
108 deserializer->fromString(objData.JSON);
111 deserializeMongoId(deserializer);
113 return deserializer->deserializeIceObject();
119 if (useMongoIds && serializer->hasElement(serializer->getIdField()))
122 idElem->setString(
"$oid", serializer->getStringId());
const std::string NATURAL_ID_FIELD_NAME
const std::string MONGO_OBJECTID_FIELD_NAME
The JSONObject class is used to represent and (de)serialize JSON objects.
void deserialize(const DBStorableData &objData, const armarx::SerializablePtr &obj, const ::Ice::Current &=Ice::emptyCurrent) override
Uses the JSON content of DBStorableDate objData and deserializes it into the obj pointer.
MongoSerializer(const Ice::CommunicatorPtr ic=Ice::CommunicatorPtr(), bool useMongoObjectIds=false)
DBStorableData serialize(const armarx::SerializablePtr &obj, const ::Ice::Current &=Ice::emptyCurrent) override
Takes a SerializablePtr and transforms it into a JSON object using the JSONObject serialization mecha...
DBStorableData serializeIceObject(const armarx::SerializablePtr &obj, const ::Ice::Current &=Ice::emptyCurrent)
Serialize an Ice object passed in the obj parameter.
~MongoSerializer() override
armarx::SerializablePtr deserializeIceObject(const DBStorableData &objData, const ::Ice::Current &=Ice::emptyCurrent)
Deserializes the objData DBStorableData object into an instance of Serializable and returns it.
::IceInternal::Handle<::Ice::Communicator > CommunicatorPtr
IceInternal::Handle< AbstractObjectSerializer > AbstractObjectSerializerPtr
IceInternal::Handle< JSONObject > JSONObjectPtr