summaryrefslogtreecommitdiff
path: root/Source/FusionDale/README
diff options
context:
space:
mode:
Diffstat (limited to 'Source/FusionDale/README')
-rwxr-xr-xSource/FusionDale/README27
1 files changed, 27 insertions, 0 deletions
diff --git a/Source/FusionDale/README b/Source/FusionDale/README
new file mode 100755
index 0000000..04c3264
--- /dev/null
+++ b/Source/FusionDale/README
@@ -0,0 +1,27 @@
+FusionDale
+----------
+
+FusionDale is applied Fusion and will be a collection of different
+services for use by applications and other libraries.
+
+There's a component manager (Coma) which allows any process to create a
+component - identified by only a string at the moment - and provide methods
+and notifications. Other processes can get access to the component and call
+methods or listen to notifications. Multiple component managers can exist
+with each one identified globally by a string.
+
+You have the ability to create 'thread local shared memory' and reuse it to
+avoid alloc/free for every RPC call with data not already in shared memory.
+Allocation will happen on first call or if the buffer needs to be extended,
+but there's a method to free it in case a big allocation has been done or
+just for cleanup.
+
+Be aware that only method calls are synchronous. Notifications are sent out
+and execution returns to the sender immediately. Component implementors can
+register a callback being called when there's no more recipient for a notification
+that was sent, e.g. to free the shared data associated with the notification.
+
+FusionDale also contains a messaging API for notifications and data distribution
+using shared memory with lifecycle management. The attached data is freed after
+all recipients have processed the message, or exited, or died. However, this code
+is more complex than it needs to be due to some relevant improvements in Fusion.