Commit Graph

93 Commits

Author SHA1 Message Date
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
Joshua Scott a00f9b5003 net: Pass a pointer rather than a reference in DMLSession::on_message 2018-04-20 18:57:05 +01:00