videofeeds/clientapi/inc/RIptvClientSession.h
changeset 0 96612d01cf9f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/videofeeds/clientapi/inc/RIptvClientSession.h	Mon Jan 18 20:21:12 2010 +0200
@@ -0,0 +1,141 @@
+/*
+* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "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 __RIPTVCLIENTSESSION_H__
+#define __RIPTVCLIENTSESSION_H__
+
+// INCLUDE FILES
+#include <e32base.h>
+#include <badesca.h>
+#include "IptvEngineUids.h"
+
+// CONSTANTS
+// Number of message slots to reserve for this client server session.
+
+const TUid KIptvEngineServerUid3 = { IPTV_SERVER_UID };
+
+#ifdef __WINS__
+static const TUint KServerMinHeapSize =  0x1000;  //  4K
+static const TUint KServerMaxHeapSize = 0x10000;  // 64K
+#endif
+
+class MIptvStreamObject;
+
+// CLASS DECLARATION
+/**
+ *  Provides the client-side interface to the server session.
+ */
+class RIptvClientSession : public RSessionBase
+    {
+    public:
+
+        /**
+        * Constructs the object.
+        */
+        IMPORT_C RIptvClientSession();
+
+        /*!
+        *Destructor
+        */
+        IMPORT_C ~RIptvClientSession();
+
+        /**
+        * Connects to the server and creates a session.
+        * Retries 10 times.
+        * @return System wide error code.
+        */
+        IMPORT_C TInt Connect();
+
+        /**
+        * Gets the version number.
+        * @return The version.
+        */
+        IMPORT_C TVersion Version() const;
+
+        /**
+        * Checks if session handle is null.
+        *
+        * @return ETrue if handle is null.
+        */
+        TBool IsNull() const;
+
+        /**
+        * Sends message to IPTV Engine server.
+        * @param aMsgId ID of the message to send.
+        * @param aMsg descriptor where both client and server write data.
+        * @param aStatus The TRequestStatus object to be used for async comms.
+        */
+        IMPORT_C void SendRequest(TUint8 aMsgId,
+                                  TDes8& aMsg,
+                                  TRequestStatus& aStatus);
+
+        IMPORT_C TInt SendRequest(TUint8 aMsgId,
+                                  TDes8& aMsg);
+
+        /**
+        * Sends message to IPTV Engine server.
+        * @param aMsgId ID of the message to send.
+        * @param aStatus The TRequestStatus object to be used for async comms.
+        */
+        IMPORT_C void SendRequest(TUint8 aMsgId,
+                                  TRequestStatus& aStatus);
+		
+        /**
+         * Send message to Iptv Engine Server synchronously.
+         */
+        IMPORT_C TInt SendRequest(TUint8 aMsgId) const;
+
+        /**
+        * Sends message to IPTV Engine server synchronously.
+        * @param aMsgId ID of the message to send.
+        * @param aArgs Message arguments. 
+        * @return KErrNone if ok, otherwise system-wide error codes.
+        */
+        TInt SendRequest( TUint8 aMsgId, TIpcArgs& aArgs ) const;
+
+    private:
+    
+        /**
+         * Tries connection to the IPTV server once.
+         */    
+        TInt TryConnect();
+
+
+    private:
+    
+		/**
+         * iIpcMessage Heap object to reserve memory for IPC messaging.
+         */
+        HBufC8* iIpcMessage;
+        
+       /**
+        * iIpcMessagePtr Points to iIpcMessage heap object. This _must_ be a member variable.
+        */
+        TPtr8   iIpcMessagePtr;
+
+		
+    };
+
+
+#endif // __RIPTVCLIENTSESSION_H__
+
+
+// End of File