javacommons/gcfbase/inc/serverconnection.h
changeset 21 2a9601315dfc
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/javacommons/gcfbase/inc/serverconnection.h	Mon May 03 12:27:20 2010 +0300
@@ -0,0 +1,87 @@
+/*
+* Copyright (c) 2009 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 SERVERCONNECTION_H
+#define SERVERCONNECTION_H
+
+#include <string>
+
+namespace java
+{
+namespace push
+{
+
+class ConnectionListener;
+
+/**
+ * This interface provides functionality open and get/set information related to
+ * protocol connection. Each push capable protocol must implement this interface.
+ */
+
+class ServerConnection
+{
+public:
+
+    virtual ~ServerConnection() {}
+
+    /**
+     * This operation set listener and opens physical protocol connection. Code execution must not
+     * return from this operation before connection is physically opened. I.e. this method opens
+     * connection synchronously.
+     * Implementation of this operation must prepare situation wherein this operation is called
+     * more than once after connection is already established. In this situation implementation of
+     * this operation must only update a listener. This happens e.g. when push framework
+     * takes listening responsible of the connection from the MIDlet(MIDlet has called
+     * Connection.close() for a server connection).
+     * @param aListener This operation does not take ownership of this pointer.
+     * @throws PushException with COMMON_SRV_CONN_PLUGIN_ERROR error code if
+     *         creation of the connection fails.
+     */
+    virtual void open(ConnectionListener* aListener) = 0;
+
+    /**
+     * This operation closes physical protocol connection. Closing a connection must be done
+     * synchronously. I.e. code execution must not return from this operation before connection
+     * is physically opened.
+     * Note: ServerConnection must be closed by ServerConnectionFactory::releaseConnection() operation.
+     * This operation does not throw an exception.
+     */
+    virtual void close() = 0;
+
+    /**
+     * @return connection URI.
+     */
+    virtual std::wstring getUri() const = 0;
+
+    /**
+     * @return filter URI of the push connection. Empty string is returned in the normal
+     *         ServerConnection case.
+     */
+    virtual std::wstring getFilter() const = 0;
+
+    /**
+     * Sets 'filter' argument for the connection. This method is needed in the situation where
+     * 'normal' ServerConnection has been created before dynamic push registration.
+     */
+    virtual void setFilter(const std::wstring& aFilter) = 0;
+
+};
+
+}//end namespace push
+}//end namespace java
+
+#endif // SERVERCONNECTION_H