=?utf-8?q?=5Bekiga=5D_Ajout_d=27un_bout_de_code_pour_aider_les_situations?= =?utf-8?q?_de_type_demande-r=C3=A9ponse_ou_ordre-r=C3=A9sultat_dans_l?=



commit 5fc42e8b83d5a0ee2e6d4184b2b3351f7a95e5de
Author: Julien Puydt <jpuydt newton localdomain>
Date:   Sun Sep 18 20:44:39 2011 +0200

    Ajout d'un bout de code pour aider les situations de type demande-rÃponse ou ordre-rÃsultat dans le plugin loudmouth

 plugins/loudmouth/Makefile.am           |    2 +
 plugins/loudmouth/loudmouth-helpers.cpp |   74 +++++++++++++++++++++++++++++++
 plugins/loudmouth/loudmouth-helpers.h   |   46 +++++++++++++++++++
 3 files changed, 122 insertions(+), 0 deletions(-)
---
diff --git a/plugins/loudmouth/Makefile.am b/plugins/loudmouth/Makefile.am
index b1e8b9b..db1684f 100644
--- a/plugins/loudmouth/Makefile.am
+++ b/plugins/loudmouth/Makefile.am
@@ -15,6 +15,8 @@ libgmloudmouth_la_SOURCES = \
 	$(loudmouth_dir)/loudmouth-main.h \
 	$(loudmouth_dir)/loudmouth-main.cpp \
 	$(loudmouth_dir)/loudmouth-handler.h \
+	$(loudmouth_dir)/loudmouth-helpers.h \
+	$(loudmouth_dir)/loudmouth-helpers.cpp \
 	$(loudmouth_dir)/loudmouth-bank.h \
 	$(loudmouth_dir)/loudmouth-bank.cpp \
 	$(loudmouth_dir)/loudmouth-account.h \
diff --git a/plugins/loudmouth/loudmouth-helpers.cpp b/plugins/loudmouth/loudmouth-helpers.cpp
new file mode 100644
index 0000000..e7de50f
--- /dev/null
+++ b/plugins/loudmouth/loudmouth-helpers.cpp
@@ -0,0 +1,74 @@
+
+/*
+ * Ekiga -- A VoIP and Video-Conferencing application
+ * Copyright (C) 2000-2011 Damien Sandras
+
+ * This program is free software; you can  redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version. This program is distributed in the hope
+ * that it will be useful, but WITHOUT ANY WARRANTY; without even the
+ * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Ekiga is licensed under the GPL license and as a special exception, you
+ * have permission to link or otherwise combine this program with the
+ * programs OPAL, OpenH323 and PWLIB, and distribute the combination, without
+ * applying the requirements of the GNU GPL to the OPAL, OpenH323 and PWLIB
+ * programs, as long as you do follow the requirements of the GNU GPL for all
+ * the rest of the software thus combined.
+ */
+
+
+/*
+ *                         loudmouth-helpers.cpp  -  description
+ *                         ------------------------------------------
+ *   begin                : written in 2008-2011 by Julien Puydt
+ *   copyright            : (c) 2008-2011 by Julien Puydt
+ *   description          : implementation of some helper functions
+ *
+ */
+
+#define DEBUG 1
+
+#if DEBUG
+#include <iostream>
+#endif
+
+#include "loudmouth-helpers.h"
+
+struct handler_data
+{
+  handler_data (boost::function2<LmHandlerResult, LmConnection*, LmMessage*> callback_):
+    callback(callback_)
+  {}
+
+  boost::function2<LmHandlerResult, LmConnection*, LmMessage*> callback;
+};
+
+static LmHandlerResult
+handler_function_c (LmMessageHandler* handler,
+		    LmConnection* connection,
+		    LmMessage* message,
+		    handler_data* data)
+{
+  LmHandlerResult result = data->callback (connection, message);
+
+  delete data;
+  lm_message_handler_unref (handler);
+
+  return result;
+}
+
+LmMessageHandler*
+build_message_handler (boost::function2<LmHandlerResult, LmConnection*, LmMessage*> callback)
+{
+  handler_data* data = new handler_data (callback);
+  LmMessageHandler* result = lm_message_handler_new ((LmHandleMessageFunction)handler_function_c, data, NULL);
+
+  return result;
+}
diff --git a/plugins/loudmouth/loudmouth-helpers.h b/plugins/loudmouth/loudmouth-helpers.h
new file mode 100644
index 0000000..1af5f71
--- /dev/null
+++ b/plugins/loudmouth/loudmouth-helpers.h
@@ -0,0 +1,46 @@
+
+/*
+ * Ekiga -- A VoIP and Video-Conferencing application
+ * Copyright (C) 2000-2011 Damien Sandras
+
+ * This program is free software; you can  redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or (at
+ * your option) any later version. This program is distributed in the hope
+ * that it will be useful, but WITHOUT ANY WARRANTY; without even the
+ * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ * See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Ekiga is licensed under the GPL license and as a special exception, you
+ * have permission to link or otherwise combine this program with the
+ * programs OPAL, OpenH323 and PWLIB, and distribute the combination, without
+ * applying the requirements of the GNU GPL to the OPAL, OpenH323 and PWLIB
+ * programs, as long as you do follow the requirements of the GNU GPL for all
+ * the rest of the software thus combined.
+ */
+
+
+/*
+ *                         loudmouth-helpers.h  -  description
+ *                         ------------------------------------------
+ *   begin                : written in 2008-2011 by Julien Puydt
+ *   copyright            : (c) 2008-2011 by Julien Puydt
+ *   description          : declaration of some helper functions
+ *
+ */
+
+#ifndef __LOUDMOUTH_HELPERS_H__
+#define __LOUDMOUTH_HELPERS_H__
+
+#include <boost/smart_ptr.hpp>
+#include <boost/signals.hpp>
+
+#include <loudmouth/loudmouth.h>
+
+LmMessageHandler* build_message_handler (boost::function2<LmHandlerResult, LmConnection*, LmMessage*> callback);
+
+#endif



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]