--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/loudmouth/src/libloudmouth_wsd.cpp Tue Feb 02 01:10:06 2010 +0200
@@ -0,0 +1,114 @@
+/*
+ * Copyright (C) 2003-2007 Imendio AB
+ * Copyright (C) 2008 Nokia Corporation and/or its subsidiary/subsidiaries.
+ * Copyright (C) 2007 Collabora Ltd.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser 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 <e32std.h>
+#include "libloudmouth_wsd_solution.h"
+#include <string.h>
+
+
+#include <pls.h> // For emulator WSD API
+
+const TUid KLibLoudmouthUid3 = {0x10281F99}; // This is the UID of the library
+struct libloudmouth_global_struct *libloudmouth_ImpurePtr()
+{
+ #if defined(__WINSCW__) || defined(__WINS__)
+
+ // Access the PLS of this process
+ struct libloudmouth_global_struct *g = Pls<struct libloudmouth_global_struct>(KLibLoudmouthUid3, &libloudmouth_Init);
+ return g;
+
+ #else
+
+ return NULL;
+
+ #endif
+};
+
+int libloudmouth_Init(libloudmouth_global_struct *g)
+{
+
+TypeNames type_names[14] = {
+ { LM_MESSAGE_TYPE_MESSAGE, "message" },
+ { LM_MESSAGE_TYPE_PRESENCE, "presence" },
+ { LM_MESSAGE_TYPE_IQ, "iq" },
+ { LM_MESSAGE_TYPE_STREAM, "stream:stream" },
+ { LM_MESSAGE_TYPE_STREAM_FEATURES, "stream:features" },
+ { LM_MESSAGE_TYPE_STREAM_ERROR, "stream:error" },
+ { LM_MESSAGE_TYPE_AUTH, "auth" },
+ { LM_MESSAGE_TYPE_CHALLENGE, "challenge" },
+ { LM_MESSAGE_TYPE_RESPONSE, "response" },
+ { LM_MESSAGE_TYPE_SUCCESS, "success" },
+ { LM_MESSAGE_TYPE_FAILURE, "failure" },
+ { LM_MESSAGE_TYPE_PROCEED, "proceed" },
+ { LM_MESSAGE_TYPE_STARTTLS, "starttls" },
+ { LM_MESSAGE_TYPE_UNKNOWN, NULL }
+
+};
+
+SubTypeNames sub_type_names[14] = {
+ { LM_MESSAGE_SUB_TYPE_NORMAL, "normal" },
+ { LM_MESSAGE_SUB_TYPE_CHAT, "chat" },
+ { LM_MESSAGE_SUB_TYPE_GROUPCHAT, "groupchat" },
+ { LM_MESSAGE_SUB_TYPE_HEADLINE, "headline" },
+ { LM_MESSAGE_SUB_TYPE_UNAVAILABLE, "unavailable" },
+ { LM_MESSAGE_SUB_TYPE_PROBE, "probe" },
+ { LM_MESSAGE_SUB_TYPE_SUBSCRIBE, "subscribe" },
+ { LM_MESSAGE_SUB_TYPE_UNSUBSCRIBE, "unsubscribe" },
+ { LM_MESSAGE_SUB_TYPE_SUBSCRIBED, "subscribed" },
+ { LM_MESSAGE_SUB_TYPE_UNSUBSCRIBED, "unsubscribed" },
+ { LM_MESSAGE_SUB_TYPE_GET, "get" },
+ { LM_MESSAGE_SUB_TYPE_SET, "set" },
+ { LM_MESSAGE_SUB_TYPE_RESULT, "result" },
+ { LM_MESSAGE_SUB_TYPE_ERROR, "error" }
+};
+gchar base_64_chars[65] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
+
+gchar encoding1[65] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
+
+gchar retval[41] = "";
+
+char buffer[256] = "";
+
+ if(g)
+ {
+ //g->GET_WSD_VAR_NAME(debug_flags,lm_debug,g) = Flags;
+
+ g->GET_WSD_VAR_NAME(initialized,lm_debug,g) = EFalse;
+ g->GET_WSD_VAR_NAME(log_handler_id,lm_debug,g) = 0;
+ memcpy (&(g->GET_WSD_VAR_NAME(type_names,lm_message,s)), type_names, 13*sizeof(TypeNames));
+ memcpy (&(g->GET_WSD_VAR_NAME(sub_type_names,lm_message,s)), sub_type_names, 14*sizeof(SubTypeNames));
+ g->GET_WSD_VAR_NAME(initialized,lm_ssl_openssl,s) = EFalse;
+ g->GET_WSD_VAR_NAME(last_id,lm_utils, s) = 0;
+
+ strcpy((g->GET_WSD_VAR_NAME(base64chars,lm_utils,s)), base_64_chars);
+
+ strcpy((g->GET_WSD_VAR_NAME(ret_val,lm_sha,s)), retval);
+
+ strcpy((g->GET_WSD_VAR_NAME(encoding,lm_base64,s)), encoding1);
+
+ strcpy((g->GET_WSD_VAR_NAME(buf,lm_misc,s)), buffer);
+
+ g->GET_WSD_VAR_NAME(initialised,lm_sock,g) = EFalse;
+ return 0;
+ }
+ return 1;
+}
+