--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/multimediacommsengine/tsrc/MMCTestDriver/MCETester/inc/TTcMCECommandBase.h Tue Feb 02 01:04:58 2010 +0200
@@ -0,0 +1,210 @@
+/*
+* Copyright (c) 2005 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: See class definition below.
+*
+*/
+
+
+
+#ifndef __TTCMCECOMMANDBASE_H__
+#define __TTCMCECOMMANDBASE_H__
+
+// INCLUDES
+#include "TTcCommandBase.h"
+#include "CTcMCEContext.h"
+
+
+// FORWARD DECLARATIONS
+
+
+
+// CLASS DEFINITION
+/**
+ * TTcSIPCommandBase implements the base class for all SIP commands.
+ * It provides common SIP related functionality for
+ * accessing request and creating responses.
+ */
+class TTcMceCommandBase
+ : public TTcCommandBase
+ {
+ protected: // Constructors and destructor
+
+ /**
+ * Constructor.
+ *
+ * @param aContext SIP test context
+ */
+ TTcMceCommandBase( MTcTestContext& aContext );
+
+ protected: // New methods
+
+ // Add here parameter extraction functions when needed
+
+ /**
+ * Extracts profileId and returns it as a integer
+ *
+ * @return profileId
+ */
+ TInt ExtractProfileIdL();
+
+ /**
+ * Extracts array from CTRL request
+ *
+ * @param aName Name of the array to be extracted.
+ * @param aIsMandatory ETrue if the object is required.
+ * @return Pointer to array. Null if not found
+ * and object is not required. Ownership is transferred.
+ * @exceptions Leaves with KTcErrMandatoryParameterNotFound if the
+ * object is required but cannot be found.
+ */
+ CDesC8Array* ExtractArrayL(const TDesC8& aName,
+ TBool aIsMandatory = ETrue);
+
+ /**
+ * Extracts SIP headers from CTRL request
+ *
+ * @param aIsMandatory ETrue if the headers are required.
+ * @return Pointer to array including headers. Null if not found
+ * and headers are not required. Ownership is transferred.
+ * @exceptions Leaves with KTcErrMandatoryParameterNotFound if headers
+ * are required but cannot be found.
+ */
+ CDesC8Array* ExtractHeadersL(TBool aIsMandatory = ETrue);
+
+ /**
+ * Converts any TPtrC8 to HBufC*
+ *
+ * @param ptr Descriptor to be converted
+ * @return Converted descriptor. Null if param is not a valid pointer.
+ * Ownership is transferred.
+ */
+ HBufC8* HBufCParameterL( TPtrC8 ptr );
+
+ /**
+ * Returns the default profile, or a user defined profile
+ * if a RegistryId is present in the CTLR request.
+ *
+ * @return Reference to a profile container.
+ */
+ CTcMCEProfileContainer& SelectProfileL();
+
+ /**
+ * Searches for a ProfileId field from the CTRL request. Fetches
+ * the associated Profile object from the test context's
+ * profile registry.
+ *
+ * @param aIsMandatory ETrue if the object is required.
+ * @return reference to Profile object or leaves if profile for wanted
+ * id is not found
+ * @exceptions Leaves with KTcErrMandatoryIdNotFound if
+ * a required object or object id cannot be found.
+ */
+ CSIPProfile& GetProfileL( CTcMCEProfileContainer& aProfileContainer );
+
+
+ // Response creation functions
+
+ /**
+ * Try to find an existing TestClientIds structure from the
+ * CTRL response. Create one if it cannot be found and add
+ * all possible Id items to it.
+ *
+ * @return Reference to the structure parameter containing
+ * pre-created TestClient Ids.
+ */
+ CTcStructure& FindCreateTestClientIdsL();
+
+ /**
+ * Adds a TestClientId item to the CTRL response. Ownership is
+ * is transferred.
+ *
+ * NOTE!! This function uses CleanupStack for safe array insertion.
+ * You must not call CleanupStack::PushL()/Pop() when calling this!!
+ *
+ * @param aName Id name (e.g. "RequestId")
+ * @param aObject Id of this object is looked up from the registry
+ * and added to the response. aObject is registered
+ * if it's not already in the registry.
+ */
+ void AddIdResponseL( const TDesC8& aName, const CBase* aObject );
+
+ /**
+ * Adds a TestClientId item to the CTRL response. Ownership is
+ * is NOT transferred.
+ *
+ * @param aName Id name (e.g. "RequestId")
+ * @param aObject Id of this object is looked up from the registry
+ * and added to the response. aObject is registered
+ * if it's not already in the registry.
+ */
+ void AddIdResponseL( const TDesC8& aName, const CBase& aObject );
+
+ /**
+ * Adds headers to CTRL response. Ownership is NOT transferred.
+ * @param aHeaders Headers to be added to response.
+ */
+ void AddHeadersL( const CDesC8Array* aHeaders );
+
+ /*
+ * Adds session state enumeration's textual correspondent to response
+ *
+ * @param aState State, which textual correspondent is added to response
+ */
+ void AddTextualSessionStateL( TInt aState );
+
+ /*
+ * Adds stream state enumeration's textual correspondent to response
+ *
+ * @param aState State, which textual correspondent is added to response
+ * @param aBound If ETrue, param's name is "StreamStateText", else
+ * "BoundStreamStateText"
+ */
+ void AddTextualStreamStateL( TBool aState, TBool aBound );
+
+
+ /*
+ * Adds media stream state enumeration's textual correspondent to response
+ *
+ * @param aState State, which textual correspondent is added to response
+ */
+ void AddTextualMediaStreamStateL( TInt aState );
+
+
+
+ /*
+ * Adds event state enumeration's textual correspondent to response
+ *
+ * @param aState State, which textual correspondent is added to response
+ */
+ void AddTextualEventStateL( TInt aState );
+
+ /*
+ * Adds refer state enumeration's textual correspondent to response
+ *
+ * @param aState State, which textual correspondent is added to response
+ */
+ void AddTextualReferStateL( TInt aState );
+
+
+ protected: // Data
+
+ /// Reference to the MCE test context. Not owned.
+ CTcMCEContext& iContext;
+
+ /// CleanupStack push count
+ TInt iPushed;
+
+ };
+
+#endif // __TTCMCECOMMANDBASE_H__