[asterisk-commits] qwell: branch qwell/queue_events r390335 - /team/qwell/queue_events/apps/

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Fri May 31 14:53:55 CDT 2013


Author: qwell
Date: Fri May 31 14:53:52 2013
New Revision: 390335

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=390335
Log:
Genericize callbacks.

Modified:
    team/qwell/queue_events/apps/app_queue.c

Modified: team/qwell/queue_events/apps/app_queue.c
URL: http://svnview.digium.com/svn/asterisk/team/qwell/queue_events/apps/app_queue.c?view=diff&rev=390335&r1=390334&r2=390335
==============================================================================
--- team/qwell/queue_events/apps/app_queue.c (original)
+++ team/qwell/queue_events/apps/app_queue.c Fri May 31 14:53:52 2013
@@ -1852,8 +1852,11 @@
 STASIS_MESSAGE_TYPE_DEFN(queue_agent_dump_type);
 STASIS_MESSAGE_TYPE_DEFN(queue_agent_ringnoanswer_type);
 
-static void queue_channel_manager_event(const char *type, struct stasis_message *message)
-{
+static void queue_channel_manager_event(void *data,
+	struct stasis_subscription *sub, struct stasis_topic *topic,
+	struct stasis_message *message)
+{
+	const char *type = data;
 	struct ast_channel_blob *obj = stasis_message_data(message);
 	RAII_VAR(struct ast_str *, channel_event_string, NULL, ast_free);
 	RAII_VAR(struct ast_str *, event_string, NULL, ast_free);
@@ -1875,8 +1878,11 @@
 		ast_str_buffer(event_string));
 }
 
-static void queue_multi_channel_manager_event(const char *type, struct stasis_message *message)
-{
+static void queue_multi_channel_manager_event(void *data,
+	struct stasis_subscription *sub, struct stasis_topic *topic,
+	struct stasis_message *message)
+{
+	const char *type = data;
 	struct ast_multi_channel_blob *obj = stasis_message_data(message);
 	struct ast_channel_snapshot *caller;
 	struct ast_channel_snapshot *agent;
@@ -1908,8 +1914,11 @@
 		ast_str_buffer(event_string));
 }
 
-static void queue_member_manager_event(const char *type, struct stasis_message *message)
-{
+static void queue_member_manager_event(void *data,
+	struct stasis_subscription *sub, struct stasis_topic *topic,
+	struct stasis_message *message)
+{
+	const char *type = data;
 	struct ast_json_payload *payload = stasis_message_data(message);
 	struct ast_json *event = payload->json;
 	RAII_VAR(struct ast_str *, event_string, NULL, ast_free);
@@ -1998,104 +2007,6 @@
 		"Status", mem->status,
 		"Paused", mem->paused,
 		"Ringinuse", mem->ringinuse);
-}
-
-static void queue_caller_join_cb(void *data,
-	struct stasis_subscription *sub, struct stasis_topic *topic,
-	struct stasis_message *message)
-{
-	queue_channel_manager_event("QueueCallerJoin", message);
-}
-
-static void queue_caller_leave_cb(void *data,
-	struct stasis_subscription *sub, struct stasis_topic *topic,
-	struct stasis_message *message)
-{
-	queue_channel_manager_event("QueueCallerLeave", message);
-}
-
-static void queue_caller_abandon_cb(void *data,
-	struct stasis_subscription *sub, struct stasis_topic *topic,
-	struct stasis_message *message)
-{
-	queue_channel_manager_event("QueueCallerAbandon", message);
-}
-
-static void queue_member_status_cb(void *data,
-	struct stasis_subscription *sub, struct stasis_topic *topic,
-	struct stasis_message *message)
-{
-	queue_member_manager_event("QueueMemberStatus", message);
-}
-
-static void queue_member_added_cb(void *data,
-	struct stasis_subscription *sub, struct stasis_topic *topic,
-	struct stasis_message *message)
-{
-	queue_member_manager_event("QueueMemberAdded", message);
-}
-
-static void queue_member_removed_cb(void *data,
-	struct stasis_subscription *sub, struct stasis_topic *topic,
-	struct stasis_message *message)
-{
-	queue_member_manager_event("QueueMemberRemoved", message);
-}
-
-static void queue_member_pause_cb(void *data,
-	struct stasis_subscription *sub, struct stasis_topic *topic,
-	struct stasis_message *message)
-{
-	queue_member_manager_event("QueueMemberPause", message);
-}
-
-static void queue_member_penalty_cb(void *data,
-	struct stasis_subscription *sub, struct stasis_topic *topic,
-	struct stasis_message *message)
-{
-	queue_member_manager_event("QueueMemberPenalty", message);
-}
-
-static void queue_member_ringinuse_cb(void *data,
-	struct stasis_subscription *sub, struct stasis_topic *topic,
-	struct stasis_message *message)
-{
-	queue_member_manager_event("QueueMemberRinginuse", message);
-}
-
-static void queue_agent_called_cb(void *data,
-	struct stasis_subscription *sub, struct stasis_topic *topic,
-	struct stasis_message *message)
-{
-	queue_multi_channel_manager_event("AgentCalled", message);
-}
-
-static void queue_agent_connect_cb(void *data,
-	struct stasis_subscription *sub, struct stasis_topic *topic,
-	struct stasis_message *message)
-{
-	queue_multi_channel_manager_event("AgentConnect", message);
-}
-
-static void queue_agent_complete_cb(void *data,
-	struct stasis_subscription *sub, struct stasis_topic *topic,
-	struct stasis_message *message)
-{
-	queue_multi_channel_manager_event("AgentComplete", message);
-}
-
-static void queue_agent_dump_cb(void *data,
-	struct stasis_subscription *sub, struct stasis_topic *topic,
-	struct stasis_message *message)
-{
-	queue_multi_channel_manager_event("AgentDump", message);
-}
-
-static void queue_agent_ringnoanswer_cb(void *data,
-	struct stasis_subscription *sub, struct stasis_topic *topic,
-	struct stasis_message *message)
-{
-	queue_multi_channel_manager_event("AgentRingNoAnswer", message);
 }
 
 /*! \brief Check if members are available
@@ -10201,73 +10112,73 @@
 
 	stasis_message_router_add(message_router,
 				  queue_caller_join_type(),
-				  queue_caller_join_cb,
-				  NULL);
+				  queue_channel_manager_event,
+				  "QueueCallerJoin");
 
 	stasis_message_router_add(message_router,
 				  queue_caller_leave_type(),
-				  queue_caller_leave_cb,
-				  NULL);
+				  queue_channel_manager_event,
+				  "QueueCallerLeave");
 
 	stasis_message_router_add(message_router,
 				  queue_caller_abandon_type(),
-				  queue_caller_abandon_cb,
-				  NULL);
+				  queue_channel_manager_event,
+				  "QueueCallerAbandon");
 
 	stasis_message_router_add(message_router,
 				  queue_member_status_type(),
-				  queue_member_status_cb,
-				  NULL);
+				  queue_member_manager_event,
+				  "QueueMemberStatus");
 
 	stasis_message_router_add(message_router,
 				  queue_member_added_type(),
-				  queue_member_added_cb,
-				  NULL);
+				  queue_member_manager_event,
+				  "QueueMemberAdded");
 
 	stasis_message_router_add(message_router,
 				  queue_member_removed_type(),
-				  queue_member_removed_cb,
-				  NULL);
+				  queue_member_manager_event,
+				  "QueueMemberRemoved");
 
 	stasis_message_router_add(message_router,
 				  queue_member_pause_type(),
-				  queue_member_pause_cb,
-				  NULL);
+				  queue_member_manager_event,
+				  "QueueMemberPause");
 
 	stasis_message_router_add(message_router,
 				  queue_member_penalty_type(),
-				  queue_member_penalty_cb,
-				  NULL);
+				  queue_member_manager_event,
+				  "QueueMemberPenalty");
 
 	stasis_message_router_add(message_router,
 				  queue_member_ringinuse_type(),
-				  queue_member_ringinuse_cb,
-				  NULL);
+				  queue_member_manager_event,
+				  "QueueMemberRinginuse");
 
 	stasis_message_router_add(message_router,
 				  queue_agent_called_type(),
-				  queue_agent_called_cb,
-				  NULL);
+				  queue_multi_channel_manager_event,
+				  "AgentCalled");
 
 	stasis_message_router_add(message_router,
 				  queue_agent_connect_type(),
-				  queue_agent_connect_cb,
-				  NULL);
+				  queue_multi_channel_manager_event,
+				  "AgentConnect");
 
 	stasis_message_router_add(message_router,
 				  queue_agent_complete_type(),
-				  queue_agent_complete_cb,
-				  NULL);
+				  queue_multi_channel_manager_event,
+				  "AgentComplete");
 
 	stasis_message_router_add(message_router,
 				  queue_agent_dump_type(),
-				  queue_agent_dump_cb,
-				  NULL);
+				  queue_multi_channel_manager_event,
+				  "AgentDump");
 
 	stasis_message_router_add(message_router,
 				  queue_agent_ringnoanswer_type(),
-				  queue_agent_ringnoanswer_cb,
-				  NULL);
+				  queue_multi_channel_manager_event,
+				  "AgentRingNoAnswer");
 
 	ast_extension_state_add(NULL, NULL, extension_state_cb, NULL);
 




More information about the asterisk-commits mailing list