--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/javaextensions/wma/sms_cbs/src/smsconnection.h Tue Apr 27 16:30:29 2010 +0300
@@ -0,0 +1,157 @@
+/*
+* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+ *
+*/
+
+
+#ifndef SMSCONNECTION_H
+#define SMSCONNECTION_H
+
+#include <jni.h>
+#include <errno.h>
+#include "monitor.h"
+#include "connectionlistener.h"
+#include "serverconnectionbase.h"
+#include "smsplatformservice.h"
+#include "serverconnectionfactory.h"
+
+namespace java
+{
+namespace wma
+{
+
+/**
+ * CJavaSmsConnection implements ConnectionListener.
+ * It offers methods for sending , to get
+ * number of data segments to send the message and to
+ * receive the message.
+ * @lib
+ * @
+ */
+
+class SmsConnection: public java::push::ConnectionListener
+{
+public:
+ //Constructor
+ SmsConnection(std::wstring aUri, bool aServerConnection);
+
+ void initialize();
+ /**
+ * Method to send the message.
+ * @return int The success or Failure value.
+ */
+
+ int send();
+ /**
+ * Method to close the connection.
+ *
+ */
+
+ void close();
+ /**
+ * from ConnectionListener.
+ * This function is called when a Message arrives.
+ * This function notify's the other thread which inturn notifies the
+ * java side.
+ */
+
+ void msgArrived(const std::wstring&);
+ /**
+ * from ConnectionListener.
+ * This function is called when a error occurred while receiving
+ * the message.This function notify's the other thread which inturn
+ * notifies the java side, about the error.
+ * @param[in] aUri - Uri of the opened connection.
+ * @param[in] aErrCode - error code.
+ * @param[in] aErrText - error text.
+ */
+ void error(const std::wstring& aUri, int aErrCode,
+ const std::string& aErrText);
+ /**
+ * Gets the Message type of the received Message
+ * @return int The type of the Message either Binary/Text Message.
+ */
+
+ int getMessageType();
+ /**
+ * Gets the Time stamp of the received message.
+ * @return jlong The time value as jlong.
+ */
+
+ jlong getTimestamp();
+
+ //Destructor
+ ~SmsConnection();
+ /**
+ * checks for any missed messages while opening a connection.
+ * waits for incoming message & notifies the java side.
+ * @param[in] aJni Jni interface pointer
+ * @param[in] apeer jobject
+ */
+
+ void open(JNIEnv& aJni, jobject aPeer);
+ /**
+ * gets the received message as jobject to java side.
+ * @param[in] aJni Jni interface pointer.
+ * @param[in] aMsgType Message type of the received message.
+ * @return jobject The received message as jobject.
+ */
+
+ jobject getData(JNIEnv& aJni, const int aMsgType);
+ /**
+ * Gets the Remote Host Address.
+ * @param[in] aJni Jni interface pointer.
+ * @return jstring The RemoteHostAddress as jstring.
+ */
+
+ jstring getRemoteHostAddress(JNIEnv& aJni);
+
+ /**
+ * function that calculates and returns numberofDataSegments of the Message.
+ * @param[in] atype MessageType
+ * @param[in] aLength length of the message
+ * @param[in] aport port number
+ * @param[in] ahostaddress Destination address
+ * @param[in] adata Message data
+ * @return int number of data segments.
+ */
+
+ int numberOfDataSegments(const int atype, const int aLenght, const int aport,
+ const char* ahostaddress, const char* adata);
+
+private:
+ //Any error while receiving
+ int mError;
+ //Uri of the opening connection.
+ std::wstring mUri;
+ //Number of Messages on queue
+ int mMessagesOnQueue;
+ //flag to identify server/client connection
+ bool mServerConnection;
+ //flag to notify notifier thread whether to exit or to listen
+ bool mReceiveOperation;
+ //own server connection
+ ServerConnectionBase* mServerConn;
+ //own os agnostic CSmsPlatformService
+ SmsPlatformService* mMsgConn;
+ // own monitor object
+ java::util::Monitor* mMessageMonitor;
+ //own server connection factory object
+ java::push::ServerConnectionFactory* mServerConnectionFactory;
+};
+
+} //namespace wma
+} //namespace java
+#endif // SMSCONNECTION_H