From: Christian H. <ch...@us...> - 2003-09-13 09:31:15
|
Update of /cvsroot/gaim/gaim/plugins In directory sc8-pr-cvs1:/tmp/cvs-serv16015/plugins Modified Files: raw.c Added Files: ipc-test-client.c ipc-test-server.c Log Message: Added plugin IPC. Its use is shown in plugins/ipc-test-server.c and plugins/ipc-test-client.c. --- NEW FILE: ipc-test-client.c --- /* * IPC test client plugin. * * Copyright (C) 2003 Christian Hammond. * * 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., 59 Temple Place - Suite 330, Boston, MA * 02111-1307, USA. */ #include "internal.h" #include "debug.h" #include "plugin.h" #define IPC_TEST_CLIENT_PLUGIN_ID "core-ipc-test-client" static gboolean plugin_load(GaimPlugin *plugin) { GaimPlugin *server_plugin; gboolean ok; int result; server_plugin = gaim_plugins_find_with_id("core-ipc-test-server"); if (server_plugin == NULL) { gaim_debug_error("ipc-test-client", "Unable to locate plugin core-ipc-test-server, " "needed for IPC.\n"); return TRUE; } result = (int)gaim_plugin_ipc_call(server_plugin, "add", &ok, 36, 6); if (!ok) { gaim_debug_error("ipc-test-client", "Unable to call IPC function 'add' in " "core-ipc-test-server plugin."); return TRUE; } gaim_debug_info("ipc-test-client", "36 + 6 = %d\n", result); result = (int)gaim_plugin_ipc_call(server_plugin, "sub", &ok, 50, 8); if (!ok) { gaim_debug_error("ipc-test-client", "Unable to call IPC function 'sub' in " "core-ipc-test-server plugin."); return TRUE; } gaim_debug_info("ipc-test-client", "50 - 8 = %d\n", result); return TRUE; } static GaimPluginInfo info = { 2, /**< api_version */ GAIM_PLUGIN_STANDARD, /**< type */ NULL, /**< ui_requirement */ 0, /**< flags */ NULL, /**< dependencies */ GAIM_PRIORITY_DEFAULT, /**< priority */ IPC_TEST_CLIENT_PLUGIN_ID, /**< id */ N_("IPC Test Client"), /**< name */ VERSION, /**< version */ /** summary */ N_("Test plugin IPC support, as a client."), /** description */ N_("Test plugin IPC support, as a client. This locates the server " "plugin and calls the commands registered."), "Christian Hammond <ch...@gn...>", /**< author */ GAIM_WEBSITE, /**< homepage */ plugin_load, /**< load */ NULL, /**< unload */ NULL, /**< destroy */ NULL, /**< ui_info */ NULL /**< extra_info */ }; static void init_plugin(GaimPlugin *plugin) { info.dependencies = g_list_append(info.dependencies, "core-ipc-test-server"); } GAIM_INIT_PLUGIN(ipctestclient, init_plugin, info) --- NEW FILE: ipc-test-server.c --- /* * IPC test server plugin. * * Copyright (C) 2003 Christian Hammond. * * 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., 59 Temple Place - Suite 330, Boston, MA * 02111-1307, USA. */ #define IPC_TEST_SERVER_PLUGIN_ID "core-ipc-test-server" #include "internal.h" #include "debug.h" #include "plugin.h" static int add_func(int i1, int i2) { gaim_debug_misc("ipc-test-server", "Got %d, %d, returning %d\n", i1, i2, i1 + i2); return i1 + i2; } static int sub_func(int i1, int i2) { gaim_debug_misc("ipc-test-server", "Got %d, %d, returning %d\n", i1, i2, i1 - i2); return i1 - i2; } static gboolean plugin_load(GaimPlugin *plugin) { gaim_plugin_ipc_register(plugin, "add", GAIM_CALLBACK(add_func), gaim_marshal_INT__INT_INT, gaim_value_new(GAIM_TYPE_INT), 2, gaim_value_new(GAIM_TYPE_INT), gaim_value_new(GAIM_TYPE_INT)); gaim_plugin_ipc_register(plugin, "sub", GAIM_CALLBACK(sub_func), gaim_marshal_INT__INT_INT, gaim_value_new(GAIM_TYPE_INT), 2, gaim_value_new(GAIM_TYPE_INT), gaim_value_new(GAIM_TYPE_INT)); return TRUE; } static GaimPluginInfo info = { 2, /**< api_version */ GAIM_PLUGIN_STANDARD, /**< type */ NULL, /**< ui_requirement */ 0, /**< flags */ NULL, /**< dependencies */ GAIM_PRIORITY_DEFAULT, /**< priority */ IPC_TEST_SERVER_PLUGIN_ID, /**< id */ N_("IPC Test Server"), /**< name */ VERSION, /**< version */ /** summary */ N_("Test plugin IPC support, as a server."), /** description */ N_("Test plugin IPC support, as a server. This registers the IPC " "commands."), "Christian Hammond <ch...@gn...>", /**< author */ GAIM_WEBSITE, /**< homepage */ plugin_load, /**< load */ NULL, /**< unload */ NULL, /**< destroy */ NULL, /**< ui_info */ NULL /**< extra_info */ }; static void init_plugin(GaimPlugin *plugin) { } GAIM_INIT_PLUGIN(ipctestserver, init_plugin, info) Index: raw.c =================================================================== RCS file: /cvsroot/gaim/gaim/plugins/raw.c,v retrieving revision 1.18 retrieving revision 1.19 diff -u -d -p -r1.18 -r1.19 --- raw.c 29 Aug 2003 22:48:31 -0000 1.18 +++ raw.c 13 Sep 2003 09:31:03 -0000 1.19 @@ -41,6 +41,7 @@ text_sent_cb(GtkEntry *entry) txt = gtk_entry_get_text(entry); + gaim_debug_misc("raw", "prpl num = %d\n", gaim_account_get_protocol(account)); switch (gaim_account_get_protocol(account)) { case GAIM_PROTO_TOC: { @@ -76,6 +77,8 @@ text_sent_cb(GtkEntry *entry) break; default: + gaim_debug_error("raw", "Unknown protocol ID %d\n", + gaim_account_get_protocol(account)); break; } |