|
IGLib 1.4
The IGLib base library for development of numerical, technical and business applications.
|
Base class for serialization helper classes. More...
Inheritance diagram for IG::Lib::SerializerBase:
Collaboration diagram for IG::Lib::SerializerBase:Classes | |
| interface | ISerializationTestArrayMember |
| Interface for members of arrays in classes for testing serialization. More... | |
| interface | ISerializationTestClass |
| Interface for classes for testing serialization. More... | |
| class | SerializationTestArrayMember |
| Member of arrays in test classes for testing serialization. More... | |
| class | SerializationTestClass |
| Test class for testing serialization. More... | |
| class | TestClass |
| Simple class using for testing serialization. More... | |
| class | TestClassDerived |
| Simple derived class using for testing serialization. More... | |
Public Member Functions | |
| SerializerBase () | |
| abstract void | Serialize< T > (T serializedObject, Stream serializationStream) |
| Serializes the specified object and outputs it to a stream. | |
| void | Serialize< T > (T serializedObject, string filePath) |
| Serializes the specified object and outputs it to a file. If the specified file exists then it is overwritten. | |
| void | Serialize< T > (T serializedObject, string filePath, bool append) |
| Serializes the specified object and outputs it to a file. | |
| string | Serialize< T > (T obj) |
| Serializes the specified object to a string and returns it. | |
| abstract T | Deserialize< T > (Stream deserializationStream) |
| Deserializes an object from the specified stream containing JSON representation of the object. Deserialized object is instantiated and returned. | |
| T | DeserializeString< T > (string strSerialized) |
| Deserializes an object from JSON - serialized string representation and returns it. | |
| T | DeserializeFile< T > (string filePath) |
| Deserializes an object from JSON - serialized file and returns it. | |
Static Public Member Functions | |
| static void | TestSerializationAll (string outputDirectory) |
| Tests different serialization methods with different data. | |
| static void | TestSerializationDto< TypeDto, Type > (ISerializer serializer, Type serializedObject, string filePath, bool firstStep, bool secondStep) |
| Test serialization performed by the specified serialization helper class. This test does not perform only serialization/deserialization, but also performs copying of an object to and from the corresponding DTO (Data Transfer Object). It is actually DTO that is serialized and deserialized. This function creates a test object, copies it to the corresponding DTO (Data Transfer object) of the specified type, serializes it and stores it to a file, then deserializes the DTO (instantiates a new object for the stored record), copies the contents of the DTO to a new object, creates a new object and copies data to it from the DTO, and serializes the DTO again and writes it into another file in the same directory, but with a modified name. Both files can then be compared in order to see if something was lost during conversions or serialization/deserialization. | |
| static void | TestSerializationDto< TypeDto, Type, BaseType > (ISerializer serializer, Type serializedObject, string filePath, bool firstStep, bool secondStep) |
| Test serialization performed by the specified serialization helper class. This test does not perform only serialization/deserialization, but also performs copying of an object to and from the corresponding DTO (Data Transfer Object). It is actually the DTO that is serialized and deserialized. This function creates a test object, copies it to the corresponding DTO (Data Transfer object) of the specified type, serializes it and stores it to a file, then deserializes the DTO (instantiates a new object for the stored record), copies the contents of the DTO to a new object, creates a new object and copies data to it from the DTO, and serializes the DTO again and writes it into another file in the same directory, with a modified name. Both files can then be compared in order to see if something was lost during conversions or serialization/deserialization. IMPORTANT REMARK: In most cases one will not need this function, but can use the variant with only two type parameters (BaseType omitted). | |
| static void | TestSerialization< SerializationTestClass > (ISerializer serializer, SerializationTestClass serObject, string filePath) |
| Test serialization performed by the specified serialization helper class. This function creates a test object, serializes it ans stores it to a file, then deserializes it (instantiates a new object for the stored record), and serializes that object and writes it into another file in the same directory, with a modified name. Both files can then be compared in order to see if something was lost. | |
| static void | TestSerialization< TypeSer > (ISerializer serializer, TypeSer serObject, string filePath, bool firstStep, bool secondStep) |
| Test serialization performed by the specified serialization helper class. This function creates a test object, serializes it ans stores it to a file, then deserializes it (instantiates a new object for the stored record), and serializes that object and writes it into another file in the same directory, with a modified name. Both files can then be compared in order to see if something was lost. | |
| static void | TestSerializationJSON (string filePath, object serObject) |
| Test serialization performed by the specified serialization helper class. This function creates a test object, serializes it ans stores it to a file, then deserializes it (instantiates a new object for the stored record), and serializes that object and writes it into another file in the same directory, with a modified name. Both files can then be compared in order to see if something was lost. | |
| static void | TestSerializationJSON (string filePath) |
| Test serialization performed by the JSon serializer. This function creates a test object, serializes it ans stores it to a file, then deserializes it (instantiates a new object for the stored record), and serializes that object and writes it into another file in the same directory, with a modified name. Both files can then be compared in order to see if something was lost. | |
| static void | TestType< T > (T obj) |
| Writes the type of the object passed as parameter in two ways: by using tpye parameter of the generic method and by using object's GetType() method. The object itself is not printed out. | |
| static void | TestType< T > (T obj, bool printObject) |
| Writes the type of the object passed as parameter in two ways: by using tpye parameter of the generic method and by using object's GetType() method. | |
| static void | ExampleTestType () |
| Testing the type of the object within a generic method. | |
Base class for serialization helper classes.
$A Igor May09;
| IG::Lib::SerializerBase::SerializerBase | ( | ) | [inline] |
| abstract void IG::Lib::SerializerBase::Serialize< T > | ( | T | serializedObject, |
| Stream | serializationStream | ||
| ) | [pure virtual] |
Serializes the specified object and outputs it to a stream.
| T | Type of the object to be serialized. |
| serializedObject | Object to be serialized. |
| serializationStream | Stream on which the serialized object is output. |
Implements IG::Lib::ISerializer.
Implemented in IG::Lib::SerializerJson, and IG::Lib::SerializerJsonBase.
| void IG::Lib::SerializerBase::Serialize< T > | ( | T | serializedObject, |
| string | filePath | ||
| ) | [inline] |
Serializes the specified object and outputs it to a file. If the specified file exists then it is overwritten.
| T | Type of the object to be serialized. |
| serializedObject | Object to be serialized. |
| filePath | Path to the file that serialized object is written to. |
Implements IG::Lib::ISerializer.
| void IG::Lib::SerializerBase::Serialize< T > | ( | T | serializedObject, |
| string | filePath, | ||
| bool | append | ||
| ) | [inline] |
Serializes the specified object and outputs it to a file.
| T | Type of the object to be serialized. |
| serializedObject | Object to be serialized. |
| filePath | Path to the file that serialized object is written to. |
| append | If true then the generated contents is appended to a file. |
Implements IG::Lib::ISerializer.
| string IG::Lib::SerializerBase::Serialize< T > | ( | T | obj | ) | [inline] |
Serializes the specified object to a string and returns it.
| T | Type of the object to be serialized. |
| obj | Objejct to be serialized. |
Implements IG::Lib::ISerializer.
| abstract T IG::Lib::SerializerBase::Deserialize< T > | ( | Stream | deserializationStream | ) | [pure virtual] |
Deserializes an object from the specified stream containing JSON representation of the object. Deserialized object is instantiated and returned.
| T | Type of the deserialized object. |
| deserializationStream | Stream from which object is deserialized. |
Implements IG::Lib::ISerializer.
Implemented in IG::Lib::SerializerJsonBase.
| T IG::Lib::SerializerBase::DeserializeString< T > | ( | string | strSerialized | ) | [inline] |
Deserializes an object from JSON - serialized string representation and returns it.
| T | Type of the deserialized object. |
| strSerialized | String containing the serialized object. |
Implements IG::Lib::ISerializer.
| T IG::Lib::SerializerBase::DeserializeFile< T > | ( | string | filePath | ) | [inline] |
Deserializes an object from JSON - serialized file and returns it.
| T | Type of the deserialized object. |
| filePath | Path to thefile. File must contain the appropriately serialized object of the correct type. |
Implements IG::Lib::ISerializer.
| static void IG::Lib::SerializerBase::TestSerializationAll | ( | string | outputDirectory | ) | [inline, static] |
Tests different serialization methods with different data.
| outputDirectory | Directory where test files are kept. |
| static void IG::Lib::SerializerBase::TestSerializationDto< TypeDto, Type > | ( | ISerializer | serializer, |
| Type | serializedObject, | ||
| string | filePath, | ||
| bool | firstStep, | ||
| bool | secondStep | ||
| ) | [inline, static] |
Test serialization performed by the specified serialization helper class. This test does not perform only serialization/deserialization, but also performs copying of an object to and from the corresponding DTO (Data Transfer Object). It is actually DTO that is serialized and deserialized. This function creates a test object, copies it to the corresponding DTO (Data Transfer object) of the specified type, serializes it and stores it to a file, then deserializes the DTO (instantiates a new object for the stored record), copies the contents of the DTO to a new object, creates a new object and copies data to it from the DTO, and serializes the DTO again and writes it into another file in the same directory, but with a modified name. Both files can then be compared in order to see if something was lost during conversions or serialization/deserialization.
| TypeDto | Declared type of the DTO to that is used for storing and serializing object contents (state). The type must implements implement a default constructor. |
| Type | Type of the object to be serialized/deserialized through corresponding DTO. |
| serializer | Serialization helper object that is used for serialization. |
| serializedObject | Object to be serialized. |
| filePath | Name of the file to which serialized object si written. Another file is created in the same directory for storing deserialized/serialized object. |
<paparam name="firstStep">If false then the first step is not performed (serialization to a file). This is useful if we already have a file with serialized object, and we would like to change it ans observe how changes are reflected in the second file where deserialized/serialized object is stored.</paparam>
| firstStep | If false then the second step is not (deserialization/serialization) performed. |
| Type | : | class | |
| TypeDto | : | SerializationDto<Type> | |
| TypeDto | : | new() |
| static void IG::Lib::SerializerBase::TestSerializationDto< TypeDto, Type, BaseType > | ( | ISerializer | serializer, |
| Type | serializedObject, | ||
| string | filePath, | ||
| bool | firstStep, | ||
| bool | secondStep | ||
| ) | [inline, static] |
Test serialization performed by the specified serialization helper class. This test does not perform only serialization/deserialization, but also performs copying of an object to and from the corresponding DTO (Data Transfer Object). It is actually the DTO that is serialized and deserialized. This function creates a test object, copies it to the corresponding DTO (Data Transfer object) of the specified type, serializes it and stores it to a file, then deserializes the DTO (instantiates a new object for the stored record), copies the contents of the DTO to a new object, creates a new object and copies data to it from the DTO, and serializes the DTO again and writes it into another file in the same directory, with a modified name. Both files can then be compared in order to see if something was lost during conversions or serialization/deserialization. IMPORTANT REMARK: In most cases one will not need this function, but can use the variant with only two type parameters (BaseType omitted).
| TypeDto | Type of the DTO to that is used for storing and serializing object contents (state). The type must implements implement a default constructor. |
| Type | Type of the object to be serialized/deserialized through corresponding DTO. |
| BaseType | Base type from which Type inherits. It can be the same as Type. Serializer is initialized throug Type and VaseType. |
| serializer | Serialization helper object that is used for serialization. |
| serializedObject | Object to be serialized. |
| filePath | Name of the file to which serialized object is written. Another file is created in the same directory for storing deserialized/serialized object. |
<paparam name="firstStep">If false then the first step is not performed (serialization to a file). This is useful if we already have a file with serialized object, and we would like to change it ans observe how changes are reflected in the second file where deserialized/serialized object is stored.</paparam>
| firstStep | If false then the second step is not (deserialization/serialization) performed. |
| BaseType | : | class | |
| Type | : | class | |
| Type | : | BaseType | |
| TypeDto | : | SerializationDtoBase | |
| TypeDto | : | Type | |
| TypeDto | : | BaseType | |
| TypeDto | : | new() |
| static void IG::Lib::SerializerBase::TestSerialization< SerializationTestClass > | ( | ISerializer | serializer, |
| SerializationTestClass | serObject, | ||
| string | filePath | ||
| ) | [inline, static] |
Test serialization performed by the specified serialization helper class. This function creates a test object, serializes it ans stores it to a file, then deserializes it (instantiates a new object for the stored record), and serializes that object and writes it into another file in the same directory, with a modified name. Both files can then be compared in order to see if something was lost.
| SerializationTestClass | Declared type of the object to be serialized. |
| serializer | Serialization helper object that is used for serialization. |
| serObject | Object to be serialized. |
| filePath | Name of the file to which serialized object si written. Another file is created in the same directory for storing deserialized/serialized object. |
| static void IG::Lib::SerializerBase::TestSerialization< TypeSer > | ( | ISerializer | serializer, |
| TypeSer | serObject, | ||
| string | filePath, | ||
| bool | firstStep, | ||
| bool | secondStep | ||
| ) | [inline, static] |
Test serialization performed by the specified serialization helper class. This function creates a test object, serializes it ans stores it to a file, then deserializes it (instantiates a new object for the stored record), and serializes that object and writes it into another file in the same directory, with a modified name. Both files can then be compared in order to see if something was lost.
| TypeSer | Declared type of the object to be serialized. Usually, TypeSer will be a type that implements ISerializer. |
| serializer | Serialization helper object that is used for serialization. |
| serObject | Object to be serialized. |
| filePath | Name of the file to which serialized object si written. Another file is created in the same directory for storing deserialized/serialized object. |
<paparam name="firstStep">If false then the first step is not performed (serialization to a file). This is useful if we already have a file with serialized object, and we would like to change it ans observe how changes are reflected in the second file where deserialized/serialized object is stored.</paparam>
| firstStep | If false then the second step is not (deserialization/serialization) performed. |
| static void IG::Lib::SerializerBase::TestSerializationJSON | ( | string | filePath, |
| object | serObject | ||
| ) | [inline, static] |
Test serialization performed by the specified serialization helper class. This function creates a test object, serializes it ans stores it to a file, then deserializes it (instantiates a new object for the stored record), and serializes that object and writes it into another file in the same directory, with a modified name. Both files can then be compared in order to see if something was lost.
| filePath | Name of the file to which serialized object si written. Another file is created in the same directory for storing deserialized/serialized object. |
| serObject | >Object to be serialized. |
| static void IG::Lib::SerializerBase::TestSerializationJSON | ( | string | filePath | ) | [inline, static] |
Test serialization performed by the JSon serializer. This function creates a test object, serializes it ans stores it to a file, then deserializes it (instantiates a new object for the stored record), and serializes that object and writes it into another file in the same directory, with a modified name. Both files can then be compared in order to see if something was lost.
| filePath | Path of te basic file used for saving a serialized object. |
| static void IG::Lib::SerializerBase::TestType< T > | ( | T | obj | ) | [inline, static] |
Writes the type of the object passed as parameter in two ways: by using tpye parameter of the generic method and by using object's GetType() method. The object itself is not printed out.
| T | Specified type of the object (as type parameter of the method). |
| obj | Object whose type printed. |
| static void IG::Lib::SerializerBase::TestType< T > | ( | T | obj, |
| bool | printObject | ||
| ) | [inline, static] |
Writes the type of the object passed as parameter in two ways: by using tpye parameter of the generic method and by using object's GetType() method.
| T | Specified type of the object (as type parameter of the method). |
| obj | Object whose type printed. |
| printObject | If true then the object itself is also printed out. |
| static void IG::Lib::SerializerBase::ExampleTestType | ( | ) | [inline, static] |
Testing the type of the object within a generic method.