--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/isolationserver/isoserver/inc/isoconnectionmanager.h Tue Feb 02 01:10:06 2010 +0200
@@ -0,0 +1,171 @@
+/*
+* ============================================================================
+* Name : isoconnectionmanager.h
+* Part of : isolation server.
+* Version : %version: 9 %
+*
+* Copyright © 2007-2008 Nokia. All rights reserved.
+* All rights reserved.
+* Redistribution and use in source and binary forms, with or without modification,
+* are permitted provided that the following conditions are met:
+* Redistributions of source code must retain the above copyright notice, this list
+* of conditions and the following disclaimer.Redistributions in binary form must
+* reproduce the above copyright notice, this list of conditions and the following
+* disclaimer in the documentation and/or other materials provided with the distribution.
+* Neither the name of the Nokia Corporation nor the names of its contributors may be used
+* to endorse or promote products derived from this software without specific prior written
+* permission.
+* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
+* SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
+* OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+* ============================================================================
+* Template version: 1.0
+*/
+
+/*!
+* \def To avoid multiple inclusion of header
+*/
+
+#ifndef __ICONNECTIONMANAGER_H__
+#define __ICONNECTIONMANAGER_H__
+
+#include <glib.h>
+#include <gtypes.h>
+#include "isoservermain.h"
+# include "msg_enums.h"
+
+#ifdef __WINSCW__
+/*! \remark Should LOGIN_ARG_COUNT this be hardcoded ?
+*/
+#define LOGIN_ARG_COUNT 12
+#else
+#define LOGIN_ARG_COUNT 10
+#endif
+
+/*! \file
+* Connection related interfaces.
+* client anywhere in the documentation refers to anyone
+* using the isoserver
+*/
+
+/*! \typedef struct login_struct typedefed to login_struct
+*/
+typedef struct login_struct login_struct;
+
+/*! \struct login_struct isoconnectionmanager.h
+ * \brief Buffer recieved from client for login request is parsed and the
+ * arguments are put into this structure
+ * \param hdr_req header request
+ * \param strs array of strings( which are arguments for login )
+ */
+struct login_struct
+ {
+ message_hdr_req* hdr_req;
+ char *strs[LOGIN_ARG_COUNT];
+ };
+
+/*! \brief This does things after login is successful. Now it sets the isConnected
+ * variable to ETrue
+ */
+void action_logedin( ) ;
+
+/*! \brief This function is registered in action_login for statuschanged signal.
+ * This function is called by telepathygabble when the status of the user changes
+ * Once user is connected this function registers for NewChannel signal with telepathygabble
+ * client is also informed of the status change..
+ *
+ * \param proxy
+ * \param status status of the user ( connected/connecting/disconnected )
+ * \param reason reason for status change(server disconnected/ user requested etc.,)
+ * \param user_data message header request
+ *
+ * \return : Boolean True on success, false on failure
+ */
+
+static gboolean status_changed_cb(DBusGProxy *proxy,
+ guint status, guint reason,
+ gpointer user_data) ;
+
+/*! \brief new_channel_handler is registered as a callback for any new
+ * channels craetion request, in function status_changed_cb after status is changed
+ * to log in. new_channel_handler creates channel and also registers for the signals
+ * MembersChanged for contact related channels and Recieved and SendError for IM
+ * related channels.
+ *
+ * \param proxy unused
+ * \param object_path object path of the channel
+ * \param channel_type used to get a new channel
+ * \param handle_type used to get a new channel, channel handle type
+ * \param handle used to get a new channel, channel handle
+ * \param suppress_handler unused
+ * \param user_data unused
+ *
+ * \return void
+ */
+
+static void new_channel_handler( DBusGProxy *proxy, const char *object_path,
+ const char *channel_type, guint handle_type,
+ guint handle, gboolean suppress_handler,
+ gpointer user_data ) ;
+
+
+/*! \brief Is called after logout.. Any cleanup operations to
+ * be performed here. Setting conn_stat to disconnected, cleaning up
+ * of resources is done
+ */
+void action_logedout() ;
+
+/*! \brief Callback for the logout
+ *
+ * \param proxy : unused
+ * \param error : unused
+ * \param userdata : unused
+ * \return : void
+ */
+void logout_cb( DBusGProxy *proxy, GError *error, gpointer userdata );
+
+/*! \brief requests for closing of session. Also closes the search channel.
+ * \remark should not close the search channel
+ *
+ * Request for log - out
+ * \param pc - message which has the request header
+ * \return : MEM_ALLOCATION_ERROR or 0
+ */
+int action_logout( char* pc ) ;
+
+/*! \brief validates params, gets a dbus, creates a connection manager,
+ * and connection. Registers for the statuschange
+ *
+ * \param ls_hdr login struct
+ * \return Errors if invalid param or getting dbus, conn mgr or conn fails else 0
+ */
+gint action_login( login_struct* ls_hdr ) ;
+
+/*! \brief parses the message buffer and validates the parameters. The values are written
+ * to ls_hdr
+ *
+ * \param aMsgBuffer - buf to be parsed
+ * \param ls_hdr - login_struct struct to which values are written
+ * \param msg_len - no. of bytes in the message buffer aMsgBuffer
+ *
+ */
+gint parse_for_login( gchar* aMsgBuffer, login_struct** ls_hdr, int msg_len ) ;
+
+/*! \brief Calls parse_for_login to parse and validate the arguments
+ * And then calls action_login for to do actual login
+ *
+ * \param aMsgBuf message buffer
+ * \param msg_len - len of the message
+ */
+gint action_parse_login( char* aMsgBuf, int msg_len ) ;
+
+
+
+#endif //__ICONNECTIONMANAGER_H__
+
\ No newline at end of file