@@ -47,8 +47,6 @@ namespace Simulator
4747
4848#ifndef MODAPI_DLL_EXPORT
4949
50- ICOMSerializer::~ICOMSerializer () = default ;
51-
5250 COMSerializer::COMSerializer (ISerializerDatabase* pDatabase)
5351 : mbBusyWritingClassObjects(false )
5452 , mClassIDMapForWriting()
@@ -63,8 +61,6 @@ namespace Simulator
6361 mpDatabase = pDatabase;
6462 }
6563
66- COMSerializer::~COMSerializer () = default ;
67-
6864 int COMSerializer::AddRef ()
6965 {
7066 return DefaultRefCounted::AddRef ();
@@ -78,12 +74,13 @@ namespace Simulator
7874 void * COMSerializer::Cast (uint32_t type) const
7975 {
8076 CLASS_CAST (ICOMSerializer);
77+ CLASS_CAST (Object);
8178 return nullptr ;
8279 }
8380
8481 auto_METHOD_VIRTUAL (COMSerializer, ICOMSerializer, bool , Open,
85- Args (ISerializerDatabase* pDatabase),
86- Args(pDatabase));
82+ Args (ISerializerDatabase* pDatabase, int mode_DEPRECATED ),
83+ Args(pDatabase, mode_DEPRECATED ));
8784 auto_METHOD_VIRTUAL_ (COMSerializer, ICOMSerializer, bool , Close);
8885 auto_METHOD_VIRTUAL (COMSerializer, ICOMSerializer, bool , LoadClassObjects,
8986 Args (uint32_t clientVersion),
@@ -118,8 +115,6 @@ namespace Simulator
118115
119116 }
120117
121- SerializerDatabase::~SerializerDatabase () = default ;
122-
123118 int SerializerDatabase::AddRef ()
124119 {
125120 return Database::AddRef ();
@@ -133,7 +128,9 @@ namespace Simulator
133128 void * SerializerDatabase::Cast (uint32_t type) const
134129 {
135130 CLASS_CAST (ISerializerDatabase);
136- return nullptr ;
131+ return (type == Object::TYPE )
132+ ? (void *)this
133+ : nullptr ;
137134 }
138135
139136 auto_METHOD_VIRTUAL_ (SerializerDatabase, ISerializerDatabase, Resource::Database*, AsDatabase);
@@ -203,6 +200,175 @@ namespace Simulator
203200 Args (bool bOpenForReading, bool bOpenForWriting),
204201 Args(bOpenForReading, bOpenForWriting));
205202
203+ SerializerReadStream::SerializerReadStream ()
204+ : mbOK(true )
205+ , mVersion(0 )
206+ , mpRecord(nullptr )
207+ , mpDatabase(nullptr )
208+ {
209+
210+ }
211+
212+ void * SerializerReadStream::Cast (uint32_t type) const
213+ {
214+ CLASS_CAST (ISerializerReadStream);
215+ CLASS_CAST (Object);
216+ return nullptr ;
217+ }
218+
219+ auto_METHOD_VIRTUAL (SerializerReadStream, ISerializerReadStream, bool , Open,
220+ Args (ISerializerDatabase* pDatabase, const ResourceKey& key),
221+ Args(pDatabase, key));
222+ auto_METHOD_VIRTUAL_ (SerializerReadStream, ISerializerReadStream, bool , Close);
223+ auto_METHOD_VIRTUAL_const_ (SerializerReadStream, ISerializerReadStream, bool , IsOpen);
224+ auto_METHOD_VIRTUAL_const_ (SerializerReadStream, ISerializerReadStream, bool , IsGood);
225+ auto_METHOD_VIRTUAL_const_ (SerializerReadStream, ISerializerReadStream, Resource::IRecord*, GetRecord);
226+ auto_METHOD_VIRTUAL_const_ (SerializerReadStream, ISerializerReadStream, ISerializerDatabase*, GetDatabase);
227+ auto_METHOD_VIRTUAL (SerializerReadStream, ISerializerReadStream, bool , ReadObjectPointer,
228+ Args (uint32_t castTypeID, ObjectPtr& dst, bool bLoadImmediately),
229+ Args(castTypeID, dst, bLoadImmediately));
230+ auto_METHOD_VIRTUAL (SerializerReadStream, ISerializerReadStream, bool , ReadPointer,
231+ Args (ISimulatorSerializable* pointer, bool bLoadImmediately),
232+ Args(pointer, bLoadImmediately));
233+ auto_METHOD_VIRTUAL (SerializerReadStream, ISerializerReadStream, bool , ReadProperty,
234+ Args (App::Property& dst),
235+ Args(dst));
236+ auto_METHOD_VIRTUAL (SerializerReadStream, ISerializerReadStream, bool , ReadRawData,
237+ Args (void * pBuffer, size_t size),
238+ Args(pBuffer, size));
239+ auto_METHOD_VIRTUAL (SerializerReadStream, ISerializerReadStream, bool , ReadPropertyByID,
240+ Args (uint32_t propertyID, App::Property& dst),
241+ Args(propertyID, dst));
242+ auto_METHOD_VIRTUAL_const_ (SerializerReadStream, ISerializerReadStream, uint32_t , GetSerializationVersion);
243+ auto_METHOD_VIRTUAL_VOID (SerializerReadStream, ISerializerReadStream, SetSerializationVersion,
244+ Args (uint32_t version),
245+ Args(version));
246+
247+ auto_METHOD_VIRTUAL (SerializerReadStream, ISerializerReadStream, bool , Skip,
248+ Args (const uint32_t skipCount),
249+ Args(skipCount));
250+
251+ SerializerWriteStream::SerializerWriteStream ()
252+ : mpRecord(nullptr )
253+ , mpDatabase(nullptr )
254+ , mbOK(true )
255+ {
256+
257+ }
258+
259+ void * SerializerWriteStream::Cast (uint32_t type) const
260+ {
261+ CLASS_CAST (SerializerWriteStream);
262+ CLASS_CAST (Object);
263+ return nullptr ;
264+ }
265+
266+ auto_METHOD_VIRTUAL (SerializerWriteStream, ISerializerWriteStream, bool , Open,
267+ Args (ISerializerDatabase* pDatabase, const ResourceKey& key, bool bTruncate),
268+ Args(pDatabase, key, bTruncate));
269+ auto_METHOD_VIRTUAL_ (SerializerWriteStream, ISerializerWriteStream, bool , Close);
270+ auto_METHOD_VIRTUAL_const_ (SerializerWriteStream, ISerializerWriteStream, bool , IsOpen);
271+ auto_METHOD_VIRTUAL_const_ (SerializerWriteStream, ISerializerWriteStream, bool , IsGood);
272+ auto_METHOD_VIRTUAL_const_ (SerializerWriteStream, ISerializerWriteStream, Resource::IRecord*, GetRecord);
273+ auto_METHOD_VIRTUAL_const_ (SerializerWriteStream, ISerializerWriteStream, ISerializerDatabase*, GetDatabase);
274+ auto_METHOD_VIRTUAL (SerializerWriteStream, ISerializerWriteStream, bool , WriteObjectPointer,
275+ Args (Object* pObject),
276+ Args(pObject));
277+ auto_METHOD_VIRTUAL (SerializerWriteStream, ISerializerWriteStream, bool , WritePointer,
278+ Args (ISimulatorSerializable* pointer),
279+ Args(pointer));
280+ auto_METHOD_VIRTUAL (SerializerWriteStream, ISerializerWriteStream, bool , WriteProperty,
281+ Args (App::Property& src),
282+ Args(src));
283+ auto_METHOD_VIRTUAL (SerializerWriteStream, ISerializerWriteStream, bool , WriteRawData,
284+ Args (void * pData, size_t size),
285+ Args(pData, size));
286+ auto_METHOD_VIRTUAL (SerializerWriteStream, ISerializerWriteStream, bool , WritePropertyWithID,
287+ Args (uint32_t propertyID, App::Property& src),
288+ Args(propertyID, src));
289+
290+ SerializerReadStreamPrivate::SerializerReadStreamPrivate (ISerializerDatabase* pDatabase, uint32_t nResourceType, uint32_t nInstance, uint32_t nGroupID)
291+ : mpDatabase(nullptr )
292+ , mpReadStream(nullptr )
293+ {
294+ openStream (pDatabase, nResourceType, nInstance, nGroupID);
295+ }
296+
297+ SerializerReadStreamPrivate::SerializerReadStreamPrivate (ISerializerReadStream& readStream, uint32_t nResourceType, uint32_t nInstance, uint32_t nGroupID)
298+ : SerializerReadStreamPrivate(readStream.GetDatabase(), nResourceType, nInstance, nGroupID)
299+ {
300+
301+ }
302+
303+ SerializerReadStreamPrivate::SerializerReadStreamPrivate (ISerializerDatabase* pDatabase, const ResourceKey& key)
304+ : SerializerReadStreamPrivate(pDatabase, key.typeID, key.instanceID, key.groupID)
305+ {
306+
307+ }
308+
309+ SerializerReadStreamPrivate::SerializerReadStreamPrivate (ISerializerReadStream& readStream, const ResourceKey& key)
310+ : SerializerReadStreamPrivate(readStream, key.typeID, key.instanceID, key.groupID)
311+ {
312+
313+ }
314+
315+ SerializerReadStreamPrivate::~SerializerReadStreamPrivate ()
316+ {
317+ if (mpReadStream && mpReadStream->IsOpen ())
318+ {
319+ mpReadStream->Close ();
320+ }
321+ }
322+
323+ auto_METHOD_ (SerializerReadStreamPrivate, bool , IsOpen);
324+ auto_METHOD_VOID (SerializerReadStreamPrivate, SetSerializationVersion,
325+ Args (uint32_t version),
326+ Args(version));
327+ auto_METHOD_const_ (SerializerReadStreamPrivate, uint32_t , GetSerializationVersion);
328+
329+ auto_METHOD (SerializerReadStreamPrivate, bool , openStream,
330+ Args (ISerializerDatabase* pDatabase, uint32_t nResourceType, uint32_t nInstance, uint32_t nGroupID),
331+ Args(pDatabase, nResourceType, nInstance, nGroupID));
332+
333+ SerializerWriteStreamPrivate::SerializerWriteStreamPrivate (ISerializerDatabase* pDatabase, uint32_t nResourceType, uint32_t nInstance, uint32_t nGroupID)
334+ : mpDatabase(nullptr )
335+ , mpWriteStream(nullptr )
336+ {
337+ openStream (pDatabase, nResourceType, nInstance, nGroupID);
338+ }
339+
340+ SerializerWriteStreamPrivate::SerializerWriteStreamPrivate (ISerializerWriteStream& writeStream, uint32_t nResourceType, uint32_t nInstance, uint32_t nGroupID)
341+ : SerializerWriteStreamPrivate(writeStream.GetDatabase(), nResourceType, nInstance, nGroupID)
342+ {
343+
344+ }
345+
346+ SerializerWriteStreamPrivate::SerializerWriteStreamPrivate (ISerializerDatabase* pDatabase, const ResourceKey& key)
347+ : SerializerWriteStreamPrivate(pDatabase, key.typeID, key.instanceID, key.groupID)
348+ {
349+
350+ }
351+
352+ SerializerWriteStreamPrivate::SerializerWriteStreamPrivate (ISerializerWriteStream& writeStream, const ResourceKey& key)
353+ : SerializerWriteStreamPrivate(writeStream, key.typeID, key.instanceID, key.groupID)
354+ {
355+
356+ }
357+
358+ SerializerWriteStreamPrivate::~SerializerWriteStreamPrivate ()
359+ {
360+ if (mpWriteStream && mpWriteStream->IsOpen ())
361+ {
362+ mpWriteStream->Close ();
363+ }
364+ }
365+
366+ auto_METHOD_ (SerializerWriteStreamPrivate, bool , IsOpen);
367+
368+ auto_METHOD (SerializerWriteStreamPrivate, bool , openStream,
369+ Args (ISerializerDatabase* pDatabase, uint32_t nResourceType, uint32_t nInstance, uint32_t nGroupID),
370+ Args(pDatabase, nResourceType, nInstance, nGroupID));
371+
206372#endif
207373
208374}
0 commit comments