--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/upnpframework/upnpcommand/inc/upnpcommandimplementation.h Thu Dec 17 08:52:00 2009 +0200
@@ -0,0 +1,224 @@
+/*
+* Copyright (c) 2007 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: Header file for the UpnpCommand plugin implementation.
+*
+*/
+
+
+#ifndef UPNP_COMMAND_IMPLEMENTATION_H
+#define UPNP_COMMAND_IMPLEMENTATION_H
+
+// INCLUDES
+#include "upnpcommandcons.h"
+#include "upnpcommand.h"
+#include "upnptaskhandler.h"
+
+// FORWARD DECLARATIONS
+class CUpnpFilePipe;
+class CUpnpCommandParameters;
+class CUpnpTask;
+class CUpnpNoteHandler;
+class MUpnpCommandCallback;
+
+/**
+* This class provides an easy to use ECom plugin interface to access the
+* features of the Upnp Framework.
+*/
+class CUpnpCommandImplementation : public CUpnpCommand,
+ public MUpnpTaskHandler
+ {
+ public: // Instantiation methods
+
+ /**
+ * Creates an instance of UpnpCommand implementation. Upnp Fw
+ * resources are not allowated yet at this point.
+ *
+ * @return instance of this class.
+ */
+ static CUpnpCommandImplementation* NewL();
+
+ public: // Business logic methods, from CUpnpCommand
+
+ /**
+ * Checks if the command is available for execution.
+ */
+ TBool IsAvailableL();
+
+ /**
+ * Checks if given command is available for execution.
+ */
+ TBool IsAvailableL( UpnpCommand::TUpnpCommandId aCommandId );
+
+ /**
+ * Allocates the Upnp Framework resources.
+ */
+ void AllocateResourcesL();
+
+ /**
+ * Releases the Upnp Framework resources. Stops command execution if
+ * it is ongoing.
+ */
+ void ReleaseResources();
+
+ /**
+ * Executes the command. If Upnp Framework resources are not yet
+ * allocated, they are allocated.
+ */
+ void ExecuteL();
+
+ /**
+ * Sets a parameter.
+ *
+ * @param aParamType the parameter category
+ * @param aParamValue value of the parameter
+ */
+ void SetParameterL( UpnpCommand::TUpnpParameterType aParamType,
+ const TDesC& aParamValue );
+
+ /**
+ * Returns a parameter
+ *
+ * @param aParamType (UpnpCommand::TUpnpParameterType)
+ * @return value of the parameter
+ */
+ const TDesC& Parameter(
+ UpnpCommand::TUpnpParameterType aParamType );
+
+ /**
+ * Resets parameteres.
+ */
+ void ResetParameters();
+
+ /**
+ * Pushes one file into the file pipe.
+ *
+ * @param aFilename (const TDesC&) parameter value
+ */
+ void PushFileL( const TDesC& aFilename );
+
+ /**
+ * number of files in the file pipe
+ *
+ * @return number of files in the pipe
+ */
+ TInt FileCount();
+
+ /**
+ * Returns a file in the file pipe
+ *
+ * @param aIndex index of the file in pipe
+ * @return the file reference
+ */
+ const TDesC& File( TInt aIndex );
+
+ /**
+ * Resets all files in the pipe
+ */
+ void ResetFiles();
+
+ /**
+ * Returns the state of the command.
+ *
+ * @return UpnpCommand::TUpnpCommandState the state
+ */
+ UpnpCommand::TUpnpCommandState State();
+
+ public: // From MUpnpTaskHandler
+
+ /**
+ * Destroys the ongoing task.
+ */
+ void DestroyTask();
+
+ public: // Methods for UpnpCommand internal use, from CUpnpCommand
+
+ /**
+ * Sets the command ID. Leaves with KErrNotSupported if the given
+ * is not supported.
+ *
+ * @param aCommandId (UpnpCommand::TUpnpCommandId) the command ID
+ */
+ void SetCommandIdL( UpnpCommand::TUpnpCommandId aCommandId );
+
+ /**
+ * Sets the observer.
+ *
+ * @param aCallback the callback interface
+ */
+ void SetObserver( MUpnpCommandCallback* aCallback );
+
+ private: // Private construction methods
+
+ /**
+ * Perform the first phase of two phase construction.
+ */
+ CUpnpCommandImplementation();
+
+ /**
+ * Destructor.
+ */
+ virtual ~CUpnpCommandImplementation();
+
+ /**
+ * Perform the second phase of two phase construction.
+ */
+ void ConstructL();
+
+ private: // methods for own use
+
+ TBool IsUpnpConfiguredL();
+
+ private: // Data members
+
+ /**
+ * The Id of the command.
+ */
+ UpnpCommand::TUpnpCommandId iCommandId;
+
+ /**
+ * The state of the command.
+ */
+ UpnpCommand::TUpnpCommandState iState;
+
+ /**
+ * Pointer to the file pipe. Owned.
+ */
+ CUpnpFilePipe* iFilePipe;
+
+ /**
+ * Pointer to the command parameters. Owned.
+ */
+ CUpnpCommandParameters* iParameters;
+
+ /**
+ * Pointer to the note handler. Owned.
+ */
+ CUpnpNoteHandler* iNoteHandler;
+
+ /**
+ * Pointer to the command task. Owned.
+ */
+ CUpnpTask* iTask;
+
+ /**
+ * A boolean value indicating the state of the DRM note showing.
+ * The note is shown only once per session.
+ */
+ TBool iDrmNoteShown;
+
+ };
+
+#endif // UPNP_COMMAND_IMPLEMENTATION_H
+
+// End of File
\ No newline at end of file