Commit Graph

80 Commits

Author SHA1 Message Date
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 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 c7829e5235 etc: Fix build and test errors on CI 2018-12-11 01:19:30 +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 4872d1a2a4 pclass: Improve Value casting and implement basic enum types 2018-12-09 23:21:22 +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 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 b9455e243f util: Add write_copy and read_copy to BitStream 2018-11-16 14:52:49 +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 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 5183131b69 util: Base BitStream buffer expansion on the current position rather than the buffer size 2018-10-20 12:59:39 +01:00
Joshua Scott 8706384803 etc: Fix another build problem on CI 2018-10-20 01:30:20 +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 1c013677ea dml: Fix bug when binary data was presented inside a STR field 2018-05-05 14:48:53 +01:00
Joshua Scott 05e48a2cbb net: Fix is_alive returning false by giving some leniency 2018-04-24 20:06:53 +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
Joshua Scott 993191ec51 net: Add error codes to Session::close 2018-04-20 18:53:23 +01:00
Joshua Scott 7932ee2831 net: Add error codes to DMLSession::invalid_message
I'm going to rethink this though because I'd like to have more detailed error codes.
2018-04-20 17:22:51 +01:00
Joshua Scott e26a20d650 net: Add a method to get the MessageManager instance from a DMLSession 2018-04-20 17:12:31 +01:00
Joshua Scott 802dfeba29 dml: Fix some const-correctness problems 2018-04-20 01:41:33 +01:00
Joshua Scott 1927426034 net: Fix some observed problems
It seems the client sends application messages before the session has been established.
2018-04-20 01:35:43 +01:00
Joshua Scott d1118a937b protocol: Messages must now be created from a MessageTemplate
It shouldn't have been possible to create a Message manually.
2018-04-20 01:35:05 +01:00
Joshua Scott 0eb81803c7 net: Fix memcpy build error on Linux
I swear I already did this...
2018-04-15 22:58:50 +01:00
Joshua Scott a58341b279 net: Forgot to push Session 2018-04-15 22:52:41 +01:00
Joshua Scott bdededbb84 protocol: Combine Participant and Session
Also removes ParticipantType
2018-04-15 22:52:13 +01:00
Joshua Scott 38e0547e84 protocol: Rename control messages to SESSION_OFFER and SESSION_ACCEPT
I like these names better
2018-04-13 03:43:03 +01:00
Joshua Scott 00b404f132 net: Fix usages of send_packet 2018-04-11 02:55:01 +01:00
Joshua Scott 59aa21b4b6 net: Implement send_message on DMLSession 2018-04-11 01:18:31 +01:00
Joshua Scott 1d6855581a net: Fix namespace typo in DMLSession
Forgot to change these to net after moving them from dml
2018-04-11 01:16:21 +01:00
Joshua Scott 2acb22214c net: Rename dml::Session to net::DMLSession 2018-04-11 01:13:37 +01:00
Joshua Scott c4630ae970 net: Session::send_packet was unnecessarily templated 2018-04-11 01:12:53 +01:00
Joshua Scott 599afed56f control: Catch DML errors when parsing control messages 2018-04-11 00:50:10 +01:00
Joshua Scott 88f98fd84c net: Fix small bug in PacketHeader
This prevented on_invalid_packet from being called
2018-04-11 00:38:33 +01:00
Joshua Scott e62f3e7647 protocol: Implement a DML-based Session 2018-04-11 00:35:16 +01:00
Joshua Scott e89cdd2ae4 protocol: Don't handle application messages before CLIENT_HELLO 2018-04-09 22:09:49 +01:00