Commit graph

406 commits

Author SHA1 Message Date
Vaci Koblizek
66fc361386 stub out two-party test suite for now 2020-11-07 15:58:39 +00:00
Vaci Koblizek
0ce52fe135 add resolve test and fix handleResolve bugs 2020-11-06 15:32:20 +00:00
Vaci Koblizek
850a603877 oops, correct assertion of missing question 2020-11-06 13:58:36 +00:00
Vaci Koblizek
e8a118f364 add overload for messageSizeHint 2020-11-06 13:58:36 +00:00
Vaci Koblizek
7d2e541603 fix getNetwork bug, remove unnecessary TwoPartVatNetwork specialisation 2020-11-06 13:58:36 +00:00
Vaci Koblizek
1f004779d4 rpc tests 2020-11-05 21:38:43 +00:00
Vaci Koblizek
054213a0ac add rpc bootstrap factory 2020-11-05 21:38:43 +00:00
Vaci Koblizek
9d023f0449 fix generic pipeline params. add (non-generic, for now) capability list 2020-11-05 21:38:43 +00:00
Vaci Koblizek
518769247b remove generated schema.schema 2020-11-05 17:59:05 +00:00
Vaci Koblizek
02789acf29 add TestInterface.baz. Stub out broken TestGenerics 2020-11-05 17:59:05 +00:00
Vaci Koblizek
630d71d4e5 implement more capability tests 2020-11-05 17:59:05 +00:00
Vaci Koblizek
33d16c4fb6 add READY_NOW 2020-11-05 17:59:05 +00:00
Vaci Koblizek
8565c40c14 capability test suite 2020-11-05 17:59:05 +00:00
Vaci Koblizek
a10e48d140 test schemas 2020-11-05 17:59:05 +00:00
Vaci Koblizek
d515500996 get rid of PipelineBase and PipelineImpl again 2020-11-05 17:59:05 +00:00
Vaci Koblizek
8eacc8cada major refactor of RemotePromise and Pipeline 2020-11-05 17:59:05 +00:00
Vaci Koblizek
2d8fe31a59 generic interface generation (WIP 2020-11-05 17:59:05 +00:00
Vaci Koblizek
86ccdd5a55 move cleanup to end of message loop 2020-11-05 17:59:05 +00:00
Vaci Koblizek
94ca2a04e6 remove sync modifier from getConnectionState and tidy 2020-11-05 17:59:05 +00:00
Vaci Koblizek
f2b2fc769f go back to using CompletableFuture (sigh) 2020-11-05 17:59:05 +00:00
Vaci Koblizek
c903cbf193 return this network via asConnection() 2020-11-05 17:59:05 +00:00
Vaci Koblizek
4f8c5faef4 tidy up access to hooks 2020-11-05 17:59:05 +00:00
Vaci Koblizek
dc4f8d07b4 dump more message types 2020-11-05 17:59:05 +00:00
Vaci Koblizek
1bf4bfc8a6 add ServerSets 2020-11-05 17:59:05 +00:00
Vaci Koblizek
4bb8f6a51f remove synchronised modifier from handleMessage 2020-11-05 17:59:05 +00:00
Vaci Koblizek
d6a163990e fix RpcState tests 2020-11-05 17:59:05 +00:00
Vaci Koblizek
88a8140d70 use Java 14 to compile all modules 2020-11-05 17:59:05 +00:00
Vaci Koblizek
13156f9255 remove extraneous writeTarget method 2020-11-05 17:59:05 +00:00
Vaci Koblizek
cd1fc4c460 make embargo.diembargo final 2020-11-05 17:59:05 +00:00
Vaci Koblizek
e19faf0b81 tidy up cap table in BuilderArena 2020-10-22 15:55:11 +01:00
Vaci Koblizek
caa4441a65 fix local resolver, null caps, and add some doc comments 2020-10-22 15:55:11 +01:00
Vaci Koblizek
8ccfdc1bf6 remove redundent final modifier 2020-10-22 15:55:11 +01:00
Vaci Koblizek
9315c8aaba null cap test 2020-10-22 15:55:11 +01:00
Vaci Koblizek
011137b23f remove unused TwoPartyClient.runOnce 2020-10-22 15:55:11 +01:00
Vaci Koblizek
3161e246ae tidy up TwoPartyVatNetwork 2020-10-22 15:55:11 +01:00
Vaci Koblizek
e21ba577b5 accept default outgoing message size 2020-10-22 15:55:11 +01:00
Vaci Koblizek
633d3ff8cc remove redundent AnyPointer.getAsCap 2020-10-22 15:55:11 +01:00
Vaci Koblizek
f28b7de494 more message building size hints 2020-10-22 15:55:11 +01:00
Vaci Koblizek
83a4d4dc9e only tap incoming 2020-10-22 15:55:11 +01:00
Vaci Koblizek
05dc84b675 move more CompFutures to void 2020-10-22 15:55:11 +01:00
Vaci Koblizek
6d082a71b5 use getHook() accessor 2020-10-22 15:55:11 +01:00
Vaci Koblizek
c01228c31c add tap for dumping rpc messages 2020-10-22 15:55:11 +01:00
Vaci Koblizek
7b939d7c0b add moar size hints 2020-10-22 15:55:11 +01:00
Vaci Koblizek
215f485883 add network accessor 2020-10-22 15:55:11 +01:00
Vaci Koblizek
85a3565dc3 add fds accessor 2020-10-22 15:55:11 +01:00
Vaci Koblizek
730ca1abf5 question cleanup 2020-10-22 15:55:11 +01:00
Vaci Koblizek
7134461e7d use weak refs to cleanup import table 2020-10-22 15:55:11 +01:00
Vaci Koblizek
caec63d68c fix rpcsystem generic params, and hide various fields 2020-10-22 15:55:11 +01:00
Vaci Koblizek
c49221c2e9 add cleanup to questions and imports 2020-10-22 15:55:11 +01:00
Vaci Koblizek
89451874c3 simplify server runOnce 2020-10-22 15:55:11 +01:00
Vaci Koblizek
61c98ac266 avoid duplicating conditions in asserts 2020-10-22 15:55:11 +01:00
Vaci Koblizek
dea4d2d3c0 implement bulk of pipelining logic 2020-10-22 15:55:11 +01:00
Vaci Koblizek
c2f64ba317 Add local cap table to message builder. 2020-10-22 15:55:11 +01:00
Vaci Koblizek
606dd26d48 generate pipelines, add AnyPointer.Pipeline 2020-10-22 15:55:11 +01:00
Vaci Koblizek
1abc975b8b defer disembargo 2020-10-22 15:55:11 +01:00
Vaci Koblizek
2ffdecbe41 Make Response typed 2020-10-22 15:55:11 +01:00
Vaci Koblizek
59977b53fe generate client methods and add streaming 2020-10-22 15:55:11 +01:00
Vaci Koblizek
218529deae add client factory for AnyPointer accessor 2020-10-22 15:55:11 +01:00
Vaci Koblizek
b94f2d6c8c prep for generated code 2020-10-22 15:55:11 +01:00
Vaci Koblizek
be64ced181 demo schema with interfaces 2020-10-22 15:55:11 +01:00
Vaci Koblizek
81b151deb5 oops, correct FromPointerBuilder default call 2020-10-22 15:55:11 +01:00
Vaci Koblizek
07dbf228f0 avoid repetition of getResultsBuilder call 2020-10-22 15:55:11 +01:00
Vaci Koblizek
734af71659 handleFinish 2020-10-22 15:55:11 +01:00
Vaci Koblizek
6bd1411c26 handleDisembargo. NB future evaluation order needs work 2020-10-22 15:55:11 +01:00
Vaci Koblizek
c938938808 CapTables everywhere!
Imbue readers and writers with capTables.
Ensure caps are removed when pointers are zeroed out.
2020-10-22 15:55:11 +01:00
Vaci Koblizek
1913b6d5ea minor scope changes to cap client and server 2020-10-22 15:55:11 +01:00
Vaci Koblizek
7ae49a8f6a RpcState bug fixes
correctly brand RpcClient
don't run message loop inside promise
imbue payload
2020-10-22 15:55:11 +01:00
Vaci Koblizek
194c0ada2a correct setter of capability pointer 2020-10-22 15:55:11 +01:00
Vaci Koblizek
7d3e79091b add runOnce to Client 2020-10-22 15:55:11 +01:00
Vaci Koblizek
9c5e080f90 regenerated rpc schemas 2020-10-22 15:55:11 +01:00
Vaci Koblizek
4dada05373 make CallContext constructor public 2020-10-22 15:55:11 +01:00
Vaci Koblizek
a505c03574 extend fromPointerReader to accept capTable 2020-10-22 15:55:11 +01:00
Vaci Koblizek
3959732765 handle resolve 2020-10-22 15:55:11 +01:00
Vaci Koblizek
4a77f67819 twoparty rpc 2020-10-22 15:55:10 +01:00
Vaci Koblizek
f5e4630aef implement capability client and server 2020-10-22 15:55:10 +01:00
Vaci Koblizek
37c93cc5d2 implement request send 2020-10-22 15:55:10 +01:00
Vaci Koblizek
15b83a9c05 implement local, queued and promised hooks 2020-10-22 15:55:10 +01:00
Vaci Koblizek
37fe39bcde implement unimplemented 2020-10-22 15:55:10 +01:00
Vaci Koblizek
b3c5b030c5 handle bootstrapping request 2020-10-22 15:55:10 +01:00
Vaci Koblizek
66ae27e805 mock rpc connection 2020-10-22 15:55:10 +01:00
Vaci Koblizek
7ee0a60b5e stub handlers and test cases for incoming rpc messages 2020-10-22 15:55:10 +01:00
Vaci Koblizek
10f8f5e7d5 implement import and export tables 2020-10-22 15:55:10 +01:00
Vaci Koblizek
76c81a76a2 start to flesh out RPC connection state 2020-10-22 15:55:10 +01:00
Vaci Koblizek
e1548e88e8 RPC exception serialization 2020-10-22 15:55:10 +01:00
Vaci Koblizek
385746dc4f add two-party RPC protocol 2020-10-22 15:55:10 +01:00
Vaci Koblizek
7713316683 incoming and outgoing rpc messages 2020-10-22 15:55:10 +01:00
Vaci Koblizek
59c2859881 implement cap table builder and reader 2020-10-22 15:55:10 +01:00
Vaci Koblizek
0d03705cfc conversions between PipelineOps and RPC schema 2020-10-22 15:55:10 +01:00
Vaci Koblizek
f999265165 Generate Capnproto RPC protocol from schema 2020-10-22 15:55:10 +01:00
Vaci Koblizek
cf5c4f1119 hook interfaces and broken implementations 2020-10-22 15:55:10 +01:00
Vaci Koblizek
57bacc9dd8 extract capabilities from wire pointers 2020-10-22 15:55:10 +01:00
Vaci Koblizek
6c35c0f1d5 Allow builders and readers to be imbued with a capability table 2020-10-22 15:55:10 +01:00
Vaci Koblizek
86dfbd123d Serialization to and from AsynchronousByteChannel 2020-10-22 15:55:10 +01:00
Vaci Koblizek
73bc7a6569 use Java version 10 2020-10-22 15:55:10 +01:00
dependabot[bot]
9d06495851 Bump junit from 4.12 to 4.13.1 in /runtime
Bumps [junit](https://github.com/junit-team/junit4) from 4.12 to 4.13.1.
- [Release notes](https://github.com/junit-team/junit4/releases)
- [Changelog](https://github.com/junit-team/junit4/blob/main/doc/ReleaseNotes4.12.md)
- [Commits](https://github.com/junit-team/junit4/compare/r4.12...r4.13.1)

Signed-off-by: dependabot[bot] <support@github.com>
2020-10-13 18:20:37 -04:00
David Renshaw
880adcfe5e set sourceEncoding to UTF-8 2020-05-13 17:56:01 -04:00
David Renshaw
4cc34896b4 add StructList.newFactory method, allowing type parameters to be inferred 2020-05-12 23:29:16 -04:00
David Renshaw
f98f187538 bump version numbers 2020-05-12 23:03:41 -04:00
David Renshaw
74b645217f configure publishing to the Central Repository, and publish version 0.1.5 2020-05-12 22:41:15 -04:00
David Renshaw
94d15d7720 fix problems found by -Xlink:unchecked 2020-05-12 20:41:36 -04:00
David Renshaw
79ffb37b4c sbt -> maven, scalatest -> junit 2020-05-12 20:17:47 -04:00
David Renshaw
0e99996372 Throw exception on 0-byte read. 2020-05-08 09:09:18 -04:00
Yann Massard
a16a8b517c #78 improve exception handling 2020-04-29 07:42:51 -04:00
David Renshaw
09eec64941 make Allocator public 2019-05-20 18:12:19 -04:00
David Renshaw
1d51317074 update benchmark to use scratch space if requested 2019-05-04 11:09:07 -04:00
David Renshaw
f00f02de77 make DefaultAllocator public and add a default constructor 2019-05-04 10:43:51 -04:00
David Renshaw
755114c1a3 implement scratch space reuse 2019-05-04 10:33:55 -04:00
David Renshaw
3c60400dae make SUGGESTED_FIRST_SEGMENT_WORDS the default 2019-05-04 09:33:09 -04:00
David Renshaw
0ff0cfa338 support custom allocators for builder segments 2019-05-04 09:33:09 -04:00
David Renshaw
c6762ff0f7 implement StructList.Builder.setWithCaveats() 2019-03-23 10:32:01 -04:00
David Renshaw
45fd638c7c add some @Override annotations 2019-03-16 08:49:10 -04:00
David Renshaw
6dcfa30e10 ArrayInputStream: return -1 on end-of-stream 2018-06-10 13:25:40 -04:00
David Renshaw
edcbf1f61c fix bug in ArrayInputStream.read() 2018-06-10 09:32:38 -04:00
David Renshaw
f4411ba2c7 implement asReader() for list types 2018-02-03 14:17:42 -05:00
Amer Banet
906bab78f9 Added pointer index check to StructReader._pointerFieldIsNull and StructBuilder._pointerFieldIsNull
This fixes an IndexOutOfBoundsException when checking for existence of later added fields which are only known on the receiver side (working with different schema versions)
2017-12-13 21:43:46 +01:00
David Renshaw
349d2bfde7 update method name is error string 2017-04-24 19:35:12 -04:00
David Renshaw
14237610fb Fix bug in double-far creation and add StructListUpgradeDoubleFar test. 2017-02-27 18:42:38 -05:00
David Renshaw
1fa0e7a806 DecodeException for unexpected FAR pointer in copyPointer() 2017-02-27 12:10:36 -05:00
David Renshaw
a344568fe8 Adjust error message for the case when copyPointer() hits a far pointer.
Malformed input can trigger this case and it does not indicate a bug
in the library.
2017-02-26 16:26:38 -05:00
David Renshaw
b27c5d685d Fix problem in transferPointer() that would have become a bug once orphans are implemented. See 4d4f831a3d 2016-01-12 22:25:35 -05:00
David Renshaw
0fecc0e9b4 Handle zero-sized struct in transferPointer(). 2015-12-16 21:55:03 -05:00
David Renshaw
98500483c9 bugfix: packed input reading was broken for runs longer than 128 words. 2015-09-19 16:11:16 -04:00
David Renshaw
252acd2b32 typo 2015-08-17 22:14:50 -04:00
David Renshaw
2127084a53 Update ByteBuffer.position() one last time before returning from Serialize.read(). 2015-08-17 22:13:06 -04:00
David Renshaw
7f13ed114a Some minor nitpicks. 2015-06-13 15:03:20 -07:00
Mark Raynsford
63c56646de
Implement computeSerializedSizeInWords for non-packed messages. Addresses #33. 2015-06-13 15:01:36 +00:00
David Renshaw
49a5c6ba64 Implementent MessageBuilder.getRoot() and MessageBuilder.setRoot(). 2015-06-11 22:40:30 -04:00
Ben Challenor
d2634a21d0 Support reading all segments from a single ByteBuffer, with tests
Sometimes it is desirable to read all segments from a single ByteBuffer,
e.g. if reading messages from a memory-mapped file.

Here we add such support, and add a test to check that the ByteBuffer
read behaves the same as the ReadableByteChannel read.
2015-05-03 19:04:07 +01:00
Ben Challenor
28fac634bc Idiomatic scala - remove explicit return 2015-05-03 15:43:09 +01:00
Ben Challenor
c601c6805f Idiomatic scala - override method with val 2015-05-03 15:42:26 +01:00
Ben Challenor
50f4fe9d51 Idiomatic Scala - remove semicolons
Note this means that a few newlines have to be added to eliminate
ambiguity.
2015-05-03 15:35:07 +01:00
Ben Challenor
2ec3b6b125 Rename Scala files to match class names 2015-05-03 15:05:41 +01:00
David Renshaw
717d977233 Fix integer overflow issues. 2015-04-20 21:10:52 -04:00
David Renshaw
0e8fe55593 Fix integer overflow bugs. 2015-03-08 20:39:44 -04:00
David Renshaw
2b1d5c201e Fix integer underflow bug. 2015-03-08 20:09:56 -04:00
David Renshaw
6cd61ff149 Prevent CPU amplification attack. 2015-03-03 10:46:42 -05:00
David Renshaw
a127b08191 add missing return statement 2015-03-03 09:44:04 -05:00
David Renshaw
8a06a595f6 stub package documentation 2015-01-29 10:33:45 -05:00
David Renshaw
855f635e50 finish implementation of followBuilderFars() 2014-11-18 08:49:02 -05:00
David Renshaw
9ba6f3970c finish implementation of transferPointer 2014-11-17 18:42:44 -05:00
David Renshaw
57f8a5cdfc struct field upgrades 2014-11-17 17:39:16 -05:00
David Renshaw
a5f234136f more support for struct list upgrades 2014-11-16 21:17:56 -05:00
David Renshaw
6174de6744 builder upgrade from List(Primitive) to List(Struct) 2014-11-16 19:06:35 -05:00
David Renshaw
00cc63dfe8 reading double far pointers 2014-11-16 14:14:15 -05:00
David Renshaw
fd3efb080e add a Zeroing test and fix some bugs 2014-11-09 16:32:51 -05:00
David Renshaw
a7d3175f60 finish zeroObject(). still needs tests 2014-11-09 13:36:24 -05:00
David Renshaw
2902b6c753 working on WireHelpers.zeroObject 2014-11-04 21:53:34 -05:00
David Renshaw
5f98572b7c setter method for constrained anypointer fields 2014-10-29 09:26:50 -04:00
David Renshaw
dabb9a6ee6 use wildcards 2014-10-28 19:43:25 -04:00
David Renshaw
a578dd1332 drat, this doesn't quite work 2014-10-28 18:23:51 -04:00