Commit Graph

164 Commits

Author SHA1 Message Date
pythonology a9386abfeb serialization: Add trace logs for BinarySerializer::load when compiled using debug build type
These may be removed in the final release, however, for the time being
they are fairly useful. The compiler will optimize the full "line" out
when compiled using the release build type, so no performance is lost.
2019-07-05 00:07:17 -04:00
pythonology 6518148b50 pclass: Rename Type::is_byte_based -> Type::is_byte_aligned
Also introduced the Type::cast convenience method. This is primarily to
fix type casting over in kipy when deserializing XML values. This
was necessary since properties in kipy are not type-aware, and as such
couldn't determine if the value was actually a string, or meant to
be casted to something else.
2019-07-04 00:15:41 -04:00
pythonology 81376458ac serialization: Fix loading of empty vectors in the XML serializer 2019-06-29 23:38:34 -04:00
pythonology 5a0ec6f2d7 pclass: Introduce the PUBLIC property flag, along with the WRITE_PUBLIC_ONLY serializer flag
Also fixed issues with serializer tests.
2019-06-27 19:42:18 -04:00
pythonology 4d48485d4c util: Oops... fixed build error 2019-06-16 01:12:11 -04:00
pythonology 6a89e22a29 serialization: Fix incorrect byte alignment when...
...dynamic properties contain object pointers that end with bit-based
properties.
2019-06-15 23:12:04 -04:00
pythonology 40d088efe3 serialization: Fix inconsistencies in binary serialization
- Fixed incorrect byte alignment following bit-based types.
- Boolean types are now serialized as 1 bit.
- write_to/read_from methods now take an is_file argument.
  Types such as enums, and strings change their serialization format depending on if they're in file mode or not.
- Enums now serialize the element name in file mode, and element value otherwise.
2019-06-02 22:38:29 -04:00
Joshua Scott 8d1b9c21be cmake: Fix ZLIB_STATIC errors on Linux 2019-01-21 13:15:22 +00:00
Joshua Scott 0692adfb78 cmake: Implement static linking for ZLIB by setting ZLIB_STATIC 2019-01-21 12:57:51 +00:00
Joshua Scott 7aca9ceda5 serialization: Fix issue with empty arrays in JsonSerializer 2019-01-21 12:27:55 +00:00
pythonology 680d378002 pclass: EnumType::write_to should first attempt cast the value to `Enum` 2019-01-10 23:30:54 -05:00
Joshua Scott 69189e0fba serialization: Add FileSerializer and XmlSerializer 2019-01-07 22:49:12 +00:00
Joshua Scott 4833f7fb76 etc: Refactoring, documentation, and more tests 2019-01-01 20:54:57 +00:00
Joshua Scott bab80d20c7 pclass: Cleanup VectorProperty and fix build errors 2018-12-21 01:20:52 +00:00
Joshua Scott 2dad313885 pclass: Add value_caster specialization for json to bit integer 2018-12-20 15:45:52 +00:00
Joshua Scott b5559834ac etc: Combine IProperty with IDynamicProperty, and cleanup StaticProperty 2018-12-20 15:39:31 +00:00
Joshua Scott f3aa42578d serialization: Implement JsonSerializer loading functionality 2018-12-18 21:35:59 +00:00
Joshua Scott f9ab6560d9 pclass: Fix CI build errors + small change to value_caster 2018-12-15 22:03:08 +00:00
Joshua Scott c512185115 pclass: Second attempt to fix BitInteger casters on CI 2018-12-15 17:11:16 +00:00
Joshua Scott 8c70a249d8 pclass: Possible fix for BitInteger casters not building on CI 2018-12-15 17:07:33 +00:00
Joshua Scott 25355c22bc pclass: Fix issue with Value compiling on CI 2018-12-15 16:56:09 +00:00
Joshua Scott 1a3dfbea48 serialization: Implement saving via JsonSerializer 2018-12-15 16:52:36 +00:00
Joshua Scott def6549bcb pclass: Implement casters between primitives and json object 2018-12-15 16:51:45 +00:00
Joshua Scott 20f74ee004 serialization: Rename SerializerBinary to BinarySerializer 2018-12-14 15:27:06 +00:00
Joshua Scott 187de3feba util: Fix missing include build error on CI for std::unique_ptr<T> 2018-12-14 15:07:17 +00:00
Joshua Scott a2c577ce47 etc: Start using smart pointers 2018-12-13 22:12:04 +00:00
Joshua Scott 1955e72bb9 pclass: Fix a potential future problem 2018-12-13 00:57:56 +00:00
Joshua Scott 9e5ca2816f test: Add compression tests for SerializerBinary 2018-12-11 20:33:58 +00:00
Joshua Scott 7181c49bfb test: Add properties to slightly improve serialization coverage 2018-12-11 15:47:37 +00:00
Joshua Scott c7829e5235 etc: Fix build and test errors on CI 2018-12-11 01:19:30 +00:00
Joshua Scott 377136ef0d pclass: Attempt to fix macro issue on CI 2018-12-10 21:35:51 +00:00
Joshua Scott c61a723174 etc: Make Type::read_from return a Value instead of reading into one 2018-12-10 21:26:34 +00:00
Joshua Scott 28eee3699c pclass: Fix missing include compile error on CI 2018-12-09 23:31:55 +00:00
Joshua Scott 62fc1e13ef util: Fix missing noexcept compile error on CI 2018-12-09 23:28:40 +00:00
Joshua Scott 19324c06ba test: SerializerBinary tests 2018-12-09 23:21:51 +00:00
Joshua Scott 4872d1a2a4 pclass: Improve Value casting and implement basic enum types 2018-12-09 23:21:22 +00:00
Joshua Scott 595b6167c0 pclass: Fix CI build errors 2018-12-05 00:45:01 +00:00
Joshua Scott 38f69d722c pclass: Implement Value casting 2018-12-04 22:24:26 +00:00
Joshua Scott 24d3c0f146 util: Improve test coverage for BitBuffer/BitStream 2018-12-01 17:17:19 +00:00
Joshua Scott 6a213c18d4 etc: Change naming convention for base classes (prefix with "I") 2018-12-01 17:16:40 +00:00
Joshua Scott 34bc3d30bc etc: Move the responsibility of type checking to properties 2018-11-27 15:36:57 +00:00
Joshua Scott 3a22c992b5 etc: Implement deserialization and object copying
Also make BitStream tests use REQUIRE instead of SUCCESS and FAIL for better output.
2018-11-27 11:51:56 +00:00
Joshua Scott ad448befe6 Merge branch 'master' into feature/object-property 2018-11-18 17:19:58 +00:00
Joshua Scott cc788b12b3 etc: Add Doxygen 2018-11-18 17:19:18 +00:00
Joshua Scott 4e3b3de391 util: Implement a common interface for bit streams 2018-11-18 17:10:21 +00:00
Joshua Scott 050a63152b util: Attempt to fix error with FlagsEnum 2018-11-16 15:32:17 +00:00
Joshua Scott abbaf7ce58 pclass: Fix build errors on CI 2018-11-16 15:18:32 +00:00
Joshua Scott d6442068ed serialization: Start implementing SerializerBinary
This current implementation can fully save objects, but cannot currently load them.
2018-11-16 15:04:00 +00:00
Joshua Scott 48aba1f0df pclass: Implement string primitives and class types 2018-11-16 15:02:43 +00:00
Joshua Scott 25d371b49f util: Forgot to push header file for previous commit 2018-11-16 14:53:46 +00:00