akwizgran
5be9d953ee
Use fail() instead of assertTrue(false).
2011-08-03 21:19:04 +01:00
akwizgran
c90a18278b
Allow a maximum length to be specified when reading strings or byte
...
arrays, check it before allocating the buffer, and always specify the
maximum length when reading untrusted data - otherwise
CountingConsumer will reject the packet, but not before we've tried to
allocate a buffer of the specified size (up to 2 GB).
2011-08-03 19:29:30 +01:00
akwizgran
c98c968b87
Removed unnecessary Raw interface.
2011-07-24 17:47:17 +01:00
akwizgran
a573e87c04
ReaderImpl now maintains either one or two bytes of lookahead,
...
depending on the value of the first byte, so that an object's initial
tag is included in the data seen by the ObjectReader. Digests and
signatures can therefore be calculated over objects by their readers
without any risk of ambiguity.
2011-07-22 17:39:59 +01:00
akwizgran
45b4bef348
Catch ClassCastException when the encountered type doesn't match the
...
expected type, and re-throw as FormatException.
2011-07-20 15:07:17 +01:00
akwizgran
6b61cfa1bc
Factored out header reading and batch reading into separate classes
...
for easier testing.
2011-07-19 19:13:27 +01:00
akwizgran
fb528a85ad
Nested user-defined objects (and collections of them) can now be read
...
by registering ObjectReaders with the Reader.
2011-07-19 17:17:45 +01:00
akwizgran
30fc6c1a92
Defined some user-defined tags for protocol elements. Currently they're just adding redundancy, but in future they'll be used for parsing nested elements.
2011-07-18 17:44:18 +01:00
akwizgran
427142ae51
Read and write user-defined tags.
2011-07-18 16:46:03 +01:00
akwizgran
7a4171f3ba
A more efficient encoding for short strings, raws, lists and maps. Now we can encode a list of three small integers in 4 bytes like MessagePack does, should that ever turn out to be useful.
2011-07-18 16:06:09 +01:00
akwizgran
0bc8a31749
Cleaned up serial and protocol packages in preparation for user-defined types.
2011-07-18 14:33:41 +01:00
akwizgran
836d30f6df
Retrieve messages from the database in raw form to avoid creating unnecessary short-lived objects. Added timestamps to headers.
2011-07-14 12:01:35 +01:00
akwizgran
c3643a037b
Added accessors for the amount of raw data read and written by readers and writers - this fixes a fixme in MessageParserImpl.
2011-07-12 20:27:37 +01:00
akwizgran
4977695a79
Refactored readers and writers.
2011-07-12 11:28:26 +01:00
akwizgran
51e371f7ca
Added start/end methods for writing indefinite lists and maps.
2011-07-11 10:07:01 +01:00
akwizgran
0f4ffe9fbc
Added type-safe accessors and iterator accessors for lists and maps.
2011-07-10 18:31:18 +01:00
akwizgran
1f5e52c31b
Modifying Protocol Buffers (or Thrift, or MessagePack, or any of the free ASN.1 implementations I could find) to support length constraints was more work than writing a custom serialisation format, so I wrote a custom format.
2011-07-10 14:44:15 +01:00