javaextensions/wma/mms/src/mmsconnection.h
branchRCL_3
changeset 19 04becd199f91
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javaextensions/wma/mms/src/mmsconnection.h	Tue Apr 27 16:30:29 2010 +0300
@@ -0,0 +1,120 @@
+/*
+* 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:  ?Description
+ *
+*/
+
+
+#ifndef MMSCONNECTION_H
+#define MMSCONNECTION_H
+
+#include "monitor.h"
+#include "connectionlistener.h"
+#include "mmsplatformservice.h"
+#include "mmsserverconnection.h"
+#include "serverconnectionfactory.h"
+
+using namespace java::push;
+using namespace java::util;
+namespace java
+{
+namespace wma
+{
+/**
+ * CJavaMmsConnection implements ConnectionListener.
+ * It offers the functionality of sending the message and
+ * to retrieve the received message.
+ */
+class MmsConnection: public ConnectionListener
+{
+public:
+    /**
+     * Private Contructor.
+     * @param aServerConnection - boolean variable which indicates
+     *                            server connection or client connection
+     * @param aUri - string which contains the uri on which the connection is
+     *               opened.
+     */
+    MmsConnection(bool aServerConnection, std::wstring aUri);
+    /**
+     * Destructor
+     */
+    ~MmsConnection();
+    /**
+     * 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);
+
+    /**
+     * Sending the Multimedia Message.
+     * param aJni - Jni interface pointer
+     * param aMsg - multimedia message as byte array
+     */
+    jint sendMMS(JNIEnv& aJni, jbyteArray aMsg, jint aOffset, jint aMsgLength,
+                 jstring aAddress);
+
+    /**
+    * This method initializes the object
+    * @param aJni - jni interface pointer
+    * @param aPeer - java side peer object
+    */
+    void initialize(JNIEnv& aJni, jobject aPeer);
+
+    /**
+     * Retrieves the Multimedia Message.
+     * @param aJni - Jni interface pointer
+     */
+    jbyteArray retrieveMMSMessage(JNIEnv& aJni);
+
+    /**
+     * from ConnectionListener.
+     * This function is called when a Multimedia Message
+     * arrives at the registered Application ID.
+     */
+    void msgArrived(const std::wstring&);
+
+    /**
+     * Method to close the connection.
+     */
+    void close(JNIEnv& aJni, jobject aPeer);
+
+    /**
+     * from ConnectionListener.
+     * This function is called when the error has occured.
+     * while receiving the message.
+     */
+    void error(const std::wstring& aUri, int aErrCode,
+               const std::string& aErrText);
+
+private:
+
+    //Error variable to track errors while receiving
+    int mError;
+    //Uri string on which the connection is opened
+    std::wstring mUri;
+    //boolean variable to identify server/client connection
+    bool mIsServerConnection;
+    //boolean variable to control the notifier thread
+    bool mReceiveOperation;
+    MmsServerConnection* mServerConn;
+    java::util::Monitor* mMessageMonitor;
+    ServerConnectionFactory* mServerConnectionFactory;
+    MMSPlatformService* mMmsPlatformService;
+};
+} //namespace wma
+} //namespace java
+#endif // MMSCONNECTION_H