Commit Graph

94 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 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 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 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 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 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 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 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
Joshua Scott fd84614450 pclass: Implement floating point primitives 2018-10-26 18:40:11 +01:00
Joshua Scott 1fbfaee8cb pclass: Define bit integers as primitive types on TypeSystem 2018-10-26 15:03:18 +01:00
Joshua Scott a6e7ba11df pclass: Fix build errors on CI 2018-10-26 14:53:40 +01:00
Joshua Scott 8f5d31d071 pclass: Implement BitInteger and other bit utilities 2018-10-26 14:42:00 +01:00
Joshua Scott 73608ce23c pclass: Implement primitive types 2018-10-26 01:00:13 +01:00
Joshua Scott 8fbb9ba906 pclass: Start implementing TypeSystem 2018-10-25 11:39:16 +01:00
Joshua Scott c9f99e1f1a util: Add a postfix increment operator to BitStream::stream_pos 2018-10-20 20:08:17 +01:00
Joshua Scott 3f5450c64e util: Fix buffer expansion and reformat unit tests 2018-10-20 18:17:35 +01:00
Joshua Scott 44cb15d4d2 etc: Fix build problems on CI 2018-10-20 01:21:06 +01:00
Joshua Scott 6249d6ee32 util: Add BitStream class + tests 2018-10-20 00:09:50 +01:00
Joshua Scott 9c6a756f68 Merge branch 'master' into messaging 2018-04-22 17:25:22 +01:00
Joshua Scott 6d02bfe06a protocol: Give exceptions their own error codes 2018-04-22 17:11:12 +01:00