--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/services/terminalmodeservice_plat/inc/upnpremotableapp.h Fri Jul 23 08:57:49 2010 +0300
@@ -0,0 +1,130 @@
+/**
+* Copyright (c) 2010 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: CUpnpRemotableApp class declaration
+*
+*/
+
+#ifndef __UPNPREMOTABLEAPP_H__
+#define __UPNPREMOTABLEAPP_H__
+
+#include <e32base.h>
+#include <upnpterminalmodeicon.h>
+#include <upnptminfoelement.h>
+
+/**
+* Class represents a Remotable App or just "app" in the
+* context of Terminal Mode Service.
+* The Automotive Server (or equivalent) is responsible for creating an object
+* of this class and registering it with the Terminal Mode Service.
+* The Terminal Mode Service will maintain a list of these registered apps throughout
+* it's lifetime. The Automotive Server can remove apps from this list by
+* unregistering them.
+*/
+class CUpnpRemotableApp : public CBase
+ {
+public:
+ /**
+ * Standard Symbian Two-Phase constructor
+ * @param aAppId The locally unique ID of the App being registered.
+ * The Terminal Mode Service will check for the uniqueness
+ * of this ID when this Remotable app object is registered.
+ * @param aAppName The Name of the App being registered. The Terminal Mode
+ * Service will *not* check for uniqueness. However, it's
+ * recommended that this is unique as well.
+ * @see CUpnpTmServer::RegisterAppL, CUpnpTmServer::RegisterAppsL
+ */
+ IMPORT_C static CUpnpRemotableApp* NewL( TUint aAppId ,const TDesC8& aAppName );
+
+ ~CUpnpRemotableApp();
+ /**
+ * Method that sets the brief description about the application( remotable app )
+ * An optional element.
+ * @param aDescription Description of the Application
+ */
+ IMPORT_C void SetAppDescriptionL( const TDesC8& aDescription );
+ /**
+ * Method to set the list of allowed profile IDs associated with the remotable app.
+ * An optional element.
+ * @aProfileIdList Reference to an array of profile IDs.
+ * A copy of array is maintained.
+ */
+ IMPORT_C void SetAllowedProfileIdListL( const RArray<TUint>& aProfileIdList );
+ /**
+ * Method that adds a new icon to this Remotable App.
+ * An optional element.
+ * @param aIcon [in] The Icon object. Must be instantiated by the caller prior to
+ * this call. Should be non-NULL.
+ * The ownership is transferred to the CUpnpRemotableApp object.
+ * @see CUpnpTerminalModeIcon
+ */
+ IMPORT_C void AddIconL( CUpnpTerminalModeIcon* aIcon );
+ /**
+ * Method that creates a new terminal mode info object and adds it to the list of
+ * terminal mode info objects supported by this app. The terminal mode info object thus
+ * created will be internally maintained by Remotable App object.A reference of the same
+ * will be returned to the caller.
+ * Only protocolID of the remotingInfo element is the required element as per the schema,
+ * otherwise all other info types and their elements are optional.
+ * @param aTerminalModeInfoType Terminal Mode Info Type as an Enum value.
+ * @see CUpnpTerminalModeInfoElement
+ */
+ IMPORT_C CUpnpTmInfoElement& CreateTmInfoElementL( CUpnpTmInfoElement
+ ::TTerminalModeInfoType aTerminalModeInfoType );
+ /**
+ * Method is used to define the current status of the resource.
+ * An optional element.
+ * @param aResourceStatus Status of the resource. Can take one of these values;
+ * Free, busy or NA
+ */
+ IMPORT_C void SetResourceStatusL( const TDesC8& aResourceStatus );
+ /**
+ * "Getter" method for retrieving the list of icons associated with this
+ * Remotable app object.An optional element.
+ * @return Returns RPointerArray of icons.
+ * @see CUpnpTerminalModeIcon
+ */
+ inline const RPointerArray<CUpnpTerminalModeIcon>& IconList()const;
+ /**
+ * "Getter" Method for retrieving the list of terminal mode info details associated with
+ * this Remotable app object.
+ * @return Returns RPointerArray of terminal mode info objects.
+ * @see CUpnpTerminalModeInfo
+ */
+ inline const RPointerArray<CUpnpTmInfoElement>& TmInfoElementList()const;
+
+ // inlined "Getter" methods
+ inline TUint AppId()const;
+ inline const TDesC8& AppName()const;
+ inline const TDesC8& AppDescription()const;
+ inline const TDesC8& ResourceStatus()const;
+ inline const RArray<TUint>& AllowedProfileIdList()const;
+
+protected:
+ CUpnpRemotableApp( TUint aAppId );
+ void ConstructL( const TDesC8& aAppName );
+
+private:
+ TUint iAppId;
+ RBuf8 iAppName;
+ RBuf8 iAppDescription;
+ RBuf8 iResourceStatus;
+ RPointerArray<CUpnpTerminalModeIcon> iIconList;
+ RPointerArray<CUpnpTmInfoElement> iTmInfoElementList;
+ RArray<TUint> iProfileIdList;
+ };
+
+#include <upnpremotableapp.inl>
+
+#endif //__UPNPREMOTABLEAPP_H__
+