diff -r 000000000000 -r 7f85d04be362 upnpframework/upnpcommand/inc/upnpfilepipe.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/upnpframework/upnpcommand/inc/upnpfilepipe.h Thu Dec 17 08:52:00 2009 +0200 @@ -0,0 +1,134 @@ +/* +* 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 CUpnpFilePipe class. +* +*/ + + +#ifndef UPNP_FILE_PIPE_H +#define UPNP_FILE_PIPE_H + +// INCLUDES +#include + +/** +* This class works as a pipe-like storage class. +* +* @since S60 3.2 +*/ +class CUpnpFilePipe : public CBase + { + public: // Instantiation methods + + /** + * Creates a new file pipe with unlimited length. + * + * @since S60 3.2 + * @return instance of this class. + */ + static CUpnpFilePipe* NewL(); + + /** + * Creates a new file pipe with a set length. In this case, when the + * pipe if full and client tries to push more files into the pipe, + * the newest file in the pipe (the last file pushed into the pipe) + * will be replaced. + * + * @since S60 3.2 + * @param aMaxSize (TInt) maximum length of the pipe. + * @return instance of this class. + */ + static CUpnpFilePipe* NewL( TInt aMaxSize ); + + /** + * Destructor. + */ + virtual ~CUpnpFilePipe(); + + public: // Business logic methods + + /** + * Pushes one file into the pipe. + * + * Leaves if the given parameter is not valid. + * + * @since S60 3.2 + * @param aParamvalue (const TDesC&) filename + */ + void PushL( const TDesC& aParameter ); + + /** + * Returns a file from the queue at given index + * + * @param aIndex the index at queue + * @return reference to the file name + */ + const TDesC& FileAt( TInt aIndex ); + + /** + * Empties the pipe. + * + * @since S60 3.2 + */ + void Reset(); + + /** + * Returns the count of the items in the pipe. + * + * @since S60 3.2 + * @return TInt the item count + */ + TInt Count(); + + /** + * returns the entire pipe as an array + */ + RPointerArray& AsArray(); + + private: // Private business logic methods + + /** + * Removes the newest file from the pipe. + * + * @since S60 3.2 + */ + void RemoveNewestFileFromPipe(); + + private: // Private construction methods + + /** + * Perform the first phase of two phase construction. + * + * @since S60 3.2 + * @param aMaxSize (TInt) maximum length of the pipe. + */ + CUpnpFilePipe( TInt aMaxSize ); + + private: // Data members + + /** + * The array storing the file pipe files (filenames). Owned. + */ + RPointerArray iValues; + + /** + * The maximum size of the pipe. 0 if unlimited. + */ + TInt iMaxSize; + + }; + +#endif // UPNP_FILE_PIPE_H + +// End of File \ No newline at end of file