-
Notifications
You must be signed in to change notification settings - Fork 16
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
PR for changes to SocketUTransport to make it compatible with 1.5.8 #64
PR for changes to SocketUTransport to make it compatible with 1.5.8 #64
Conversation
6fc7268
to
04459c0
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me
I really don't have any complaints. The socket code all looks correct, locking is where it needs to be, the metaprogramming for the tuple hash looks right. There are a few small cleanup items, but none of them are really a dealbreaker.
I see no reason this could not be merged.
One more minor comment: you could squash the commits now that you know it builds. |
58afd8d
to
c3a24ff
Compare
067b713
to
04e6a7f
Compare
f99f0aa
to
00b4399
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Gave this another quick looking over. I think it is ready to merge.
This PR implements a socket transport to the python dispacther script, and necessary data structures for listener callbacks and callback removal. The high level code is a private implementation in SocketUTransport.cpp. The unordered_map supporting callbacks is in SafeTupleMap.h. The details of this is std::hash extensions to hash tuples of optionals for filtering with wildcards.
00b4399
to
838261d
Compare
This PR provides an implementation for L1 transport on a TCP socket to and from a standalone python script using Dispatcher. This was validated using a standalone C++ program exercising publishing and seeing corresponding subscription callbacks.
The heart of the implementation is a single socket connected to the dispatcher, and an unordered_map whose keys are a required UUri and an optional filtering UUri, and whose values shared pointers pointing to a list of listeners for that uuri combination. The test code used to verify this is not a part of this PR.