Commit Graph

56 Commits

Author SHA1 Message Date
Shane Bryldt 749db0461d FS-10739: [libblade] Added TTL to request which now produces an error response when a response is not received locally within the timeout, this utilizes loopback session stuff which had a couple bugs that are now also fixed, further loopback testing is still required on event subscriptions, protocol publishing, protocol locating, and protocol execution 2017-10-19 08:44:31 -06:00
Shane Bryldt b3e84ac146 FS-10739: [libblade] Loopback session support and reworking sessions to use independent ids, blade.connect now also responds with both the sessionid and the nodeid separately 2017-10-19 02:32:55 -06:00
Shane Bryldt b120ddb9d3 FS-10690: Fixed some issues in the download projects, added configuration transfer during blade_restmgr startup, and started initial stubs for civetweb callbacks in advance of deeper REST routing support 2017-09-27 20:07:16 -06:00
Shane Bryldt 43cb4e3468 FS-10167: Implemented identity registration and routing, removed subrealms to be revisited later, implemented public event channels and node presence, restructured some code and fixed a number of bugs. 2017-09-20 22:07:34 -06:00
Shane Bryldt af69e2fb5b FS-10167: Temporary commit to retain changes before removing concept of realm/subrealm as per discussions, will revisit this concept later when a real use-case presents itself, tests will not operate correctly in this build as realms are incomplete prior to removal 2017-09-13 08:41:40 -06:00
Shane Bryldt a81b57bd35 FS-10167: Updated publish and broadcast to support adding and removing channels at runtime, as well as removing protocols at runtime. In effect this provides cleanup on subscriptions when an entire channel or protocol becomes unavailable. Committing to test linux build. 2017-08-18 16:30:08 -06:00
Shane Bryldt 53690120ac FS-10167: Revisited ks_pool to embed the ks_pool_t pointer into the prefix of each allocation, updated libks and libblade to remove unneccessary pool pointers in structures, pool-allocated memory can now be freed without needing to pass the original pool 2017-08-03 20:26:07 -06:00
Shane Bryldt 077fde224b FS-10167: Linux build updated and basic tests work as expected 2017-08-01 17:48:34 -05:00
Shane Bryldt fd3348cafc FS-10167: More work on the event channel workflow, switched callback data back to using void* and the assumption callback will clear the data or that it would be cleaned up by a handle shutdown by allocating within the handle pool. Base tests currently working, committing to sync up linux build 2017-08-01 16:30:25 -06:00
Shane Bryldt c6e60de302 FS-10167: Temporary commit for peer review 2017-07-25 11:01:07 -06:00
Shane Bryldt 84540ea857 FS-10167: Refactoring and cleanup 2017-07-12 03:35:49 -06:00
Shane Bryldt 2ff3ce1a5c FS-10167: Bug fixes, memory leaks, etc 2017-07-03 13:45:29 -06:00
Shane Bryldt f9d23ccadd FS-10167: Updating to build clean on linux 2017-07-03 13:57:47 -05:00
Shane Bryldt 3687a5a0a5 FS-10167: Significant cleanup and isolation of code into manager types for better maintainability and easier path to future updates 2017-07-03 12:48:46 -06:00
Shane Bryldt 3ff59b6a5a FS-10167: First pass of adding a test protocol 2017-06-21 17:15:53 -06:00
Shane Bryldt 9cb5652d14 FS-10167: Fixing linux build for blade.broadcast related stuff 2017-06-12 13:22:35 -05:00
Shane Bryldt e931137444 FS-10167: Added preliminary blade.broadcast, tested event being broadcasted with bladec and blades through switchblade 2017-06-10 23:08:39 -06:00
Shane Bryldt ca19bee71c FS-10167: Update to the preliminary blade.subscribe support, added registration of local callback for processing an event received through upcoming blade.broadcast 2017-06-10 20:30:58 -06:00
Shane Bryldt 61f8380b70 FS-10167: Preliminary version of blade.subscribe is implemented 2017-06-09 21:34:02 -06:00
Shane Bryldt 6795fd2e45 FS-10167: Added preliminary support for blade.register, currently it is only used to update routes upstream, when a new nodeid is introduced or no longer available a blade.register is passed to update the routing tables. Edge cases are not handled yet. 2017-06-06 15:50:38 -06:00
Shane Bryldt 076a9adbf6 FS-10167: Preliminary support for blade.execute, tested with a basic test.echo across 3 nodes with a common master. Multitier routing is not yet fully supported 2017-06-05 15:29:19 -06:00
Shane Bryldt cc627e534f FS-10167: Shifted the routing layer to occur slightly lower in the processing stack, which allows routing of messages without creating local pending requests for callback and TTL tracking 2017-05-31 16:19:08 -06:00
Shane Bryldt f915bf515f FS-10167: First pass on adding support for blade.locate 2017-05-30 22:45:06 -06:00
Shane Bryldt 3341413254 FS-10167: Getting last commit to build and run under linux 2017-05-30 12:48:34 -05:00
Shane Bryldt e9d1ea645f FS-10167: Implemented first draft of blade.publish, still need to circle back to finish blade.route to support multi-tiered routes 2017-05-30 10:51:15 -06:00
Shane Bryldt 222780795d FS-10167: Updates to previous overhaul commit to get everything building right under linux 2017-05-22 12:02:04 -05:00
Shane Bryldt 9fa52c742e FS-10167: Significant overhaul to libblade and it's operations to match the first layer required by the blade protocol, still more work to be done but nodes can connect to router nodes and get initial identities registered based on realms configured for the master router node. 2017-05-22 10:31:50 -06:00
Shane Bryldt 6515bc729c FS-10167: Some fixes to get the windows release build working, and fixed a mistake with asserting on executed statements which would get compiled out for release builds 2017-04-21 16:27:39 -06:00
Shane Bryldt 5d682abd62 FS-10167: Major updates to lifecycle management across a number of objects changing a number of architecture related areas, fixed some little bugs, too much to remember exactly 2017-04-20 16:56:08 -06:00
Shane Bryldt 2c996b592f FS-10167: Switched connection lifecycle to an isolated pool similar to sessions, also refactored the inner WSS transport implementation to be part of the same pool so it is cleaned up with the connection. Switched the connection state machine thread to also utilize thread pool to avoid direct ownership over the thread, similar to session but without the use of a signaled condition due to abstraction of transports which may need to deal with polling for socket events such as with WSS transport. Completely removed the temporary worker thread in the main handle that was for connection/session cleanup. 2017-04-18 13:41:00 -06:00
Shane Bryldt 8d4eac7f69 FS-10167: fixed a couple deadlock issues and a misconception about the locks on hash 2017-04-17 11:10:20 -06:00
Shane Bryldt 075cd0d179 FS-10167: Refactored simclist for ks-ification, and adjusted it for pool-based allocations and cleanup 2017-04-14 08:59:58 -06:00
Shane Bryldt 8957953741 FS-10167: Temporary commit half way through memory lifecycle changes towards isolated memory pools 2017-04-13 15:36:53 -06:00
Shane Bryldt be0e1e144b FS-10167: Fixed some issues that appeared primarily under windows testing, committing to determine if a specific read access violation occurs under linux as well. 2017-04-05 10:43:11 -06:00
Shane Bryldt dbd2ef2d8b FS-10167: Fixed sessions to cleanup external from their own state processing thread to avoid deadlocking on thread join during cleanup. 2017-04-04 12:47:14 -06:00
Shane Bryldt dd6031544a FS-10167: Fixed an issue with connection cleanup, the same approach should be taken with sessions to avoid any potential thread deadlock due to cleanup from the same thread which is running the session. 2017-04-04 12:32:01 -06:00
Shane Bryldt a5dc3e8f1f FS-10167: Fixed some issues on library destruction. Added another of the test apps for libblade under windows. Fixed console input under tests. 2017-04-04 11:00:44 -06:00
Shane Bryldt 7742dffae4 FS-9952: Initial implementation of a very basic text chat system which introduced a number of supporting subsystems 2017-03-22 17:42:50 -04:00
Shane Bryldt 8f569f715b FS-9952: Big commit, first registered jsonrpc echo call successful, lots of cleanup remaining 2017-03-22 17:42:50 -04:00
Shane Bryldt fd49aebb1d FS-9952: Intermediate commit for a fresh point to start retrofitting the jsonrpc code that is incomplete 2017-03-22 17:42:50 -04:00
Shane Bryldt 14a99987bb FS-9952: Preliminary session negotiations done, added a bunch of logging, fixed up cleanup code, needs more testing and more error handling 2017-03-22 17:42:50 -04:00
Shane Bryldt 3d8fd5dcaf FS-9952: Added the first half of the session negotations for the server side, untested as it requires the second half coming soon for client side 2017-03-22 17:42:50 -04:00
Shane Bryldt cb7e95fd9a FS-9952: A bunch of cleanup and shifting connections towards ID based passing instead of pointers, will replicate and adjust for session system next 2017-03-22 17:42:50 -04:00
Shane Bryldt a7add33519 FS-9952: Committing to show problem with ks_pool_resize 2017-03-22 17:42:50 -04:00
Shane Bryldt 418092e1ee FS-9952: Some work towards client connectivity support, commit is to remove blade_message_t and get RPC stuff updated, code does not compile currently 2017-03-22 17:42:49 -04:00
Shane Bryldt 942ae77bde FS-9952: Added initial support for registering transports, and initial untested code for parsing identities 2017-03-22 17:42:49 -04:00
Shane Bryldt c3b7bb583f FS-9952: Rewrote core code to utilize state machine driven system based on discussions, code compiles but completely untested currently 2017-03-22 17:42:49 -04:00
Shane Bryldt 89940dfc60 FS-9952: Fixed some stuff to get the blade service tested upto the point of processing config and listening on the same port across multiple interfaces 2017-03-22 17:42:49 -04:00
Shane Bryldt 4ec0fbc581 FS-9952: A few changes and implemented the initial service peer state callbacks 2017-03-22 17:42:49 -04:00
Shane Bryldt 80179e7bd0 FS-9952: More work on the blade service transport layer, now compiles but is untested, and still missing a few pieces to be functional 2017-03-22 17:42:49 -04:00