summaryrefslogtreecommitdiff
path: root/qpid/extras/dispatch/src/dispatch.c
diff options
context:
space:
mode:
Diffstat (limited to 'qpid/extras/dispatch/src/dispatch.c')
-rw-r--r--qpid/extras/dispatch/src/dispatch.c27
1 files changed, 22 insertions, 5 deletions
diff --git a/qpid/extras/dispatch/src/dispatch.c b/qpid/extras/dispatch/src/dispatch.c
index 87eb535b8a..47a1a07330 100644
--- a/qpid/extras/dispatch/src/dispatch.c
+++ b/qpid/extras/dispatch/src/dispatch.c
@@ -24,27 +24,44 @@
/**
* Private Function Prototypes
*/
-dx_server_t *dx_server(int tc);
+dx_server_t *dx_server(int tc, const char *container_name);
+void dx_server_setup_agent(dx_dispatch_t *dx);
void dx_server_free(dx_server_t *server);
dx_container_t *dx_container(dx_dispatch_t *dx);
+void dx_container_setup_agent(dx_dispatch_t *dx);
void dx_container_free(dx_container_t *container);
-dx_router_t *dx_router(dx_dispatch_t *dx);
+dx_router_t *dx_router(dx_dispatch_t *dx, const char *area, const char *id);
+void dx_router_setup_agent(dx_dispatch_t *dx);
void dx_router_free(dx_router_t *router);
dx_agent_t *dx_agent(dx_dispatch_t *dx);
void dx_agent_free(dx_agent_t *agent);
-dx_dispatch_t *dx_dispatch(int thread_count)
+dx_dispatch_t *dx_dispatch(int thread_count, const char *container_name,
+ const char *router_area, const char *router_id)
{
dx_dispatch_t *dx = NEW(dx_dispatch_t);
dx_alloc_initialize();
- dx->server = dx_server(thread_count);
+ if (!container_name)
+ container_name = "00000000-0000-0000-0000-000000000000"; // TODO - gen a real uuid
+
+ if (!router_area)
+ router_area = "area";
+
+ if (!router_id)
+ router_id = container_name;
+
+ dx->server = dx_server(thread_count, container_name);
dx->container = dx_container(dx);
- dx->router = dx_router(dx);
+ dx->router = dx_router(dx, router_area, router_id);
dx->agent = dx_agent(dx);
+ dx_server_setup_agent(dx);
+ dx_container_setup_agent(dx);
+ dx_router_setup_agent(dx);
+
return dx;
}