--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/graphicsapitest/graphicssvs/wserv/src/T_DataWsGraphicMsgBuf.cpp Tue Feb 02 01:47:50 2010 +0200
@@ -0,0 +1,381 @@
+/*
+* Copyright (c) 2005-2009 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:
+*
+*/
+
+#include "T_DataWsGraphicMsgBuf.h"
+
+/*@{*/
+//Parameters
+_LIT(KExpected, "expected");
+_LIT(KInputTypeId, "inputTypeId");
+_LIT(KInputText, "inputText");
+_LIT(KInputUseText8, "inputUseText8");
+_LIT(KInputMsgLen, "inputMsgLen");
+_LIT(KInputMsgPosition, "inputMsgPosition");
+_LIT(KInputFormat, "inputFormat");
+
+//Commands
+_LIT(KCmdnew, "new");
+_LIT(KCmdClose, "Close");
+_LIT(KCmdCleanupClosePushL, "CleanupClosePushL");
+_LIT(KCmdAppend, "Append");
+_LIT(KCmdRemove, "Remove");
+_LIT(KCmdCount, "Count");
+_LIT(KCmdTypeId, "TypeId");
+_LIT(KCmdData, "Data");
+_LIT(KCmdGetFixedMsg, "GetFixedMsg");
+_LIT(KCmdPckg, "Pckg");
+/*@}*/
+
+//////////////////////////////////////////////////////////////////////
+// Construction/Destruction
+//////////////////////////////////////////////////////////////////////
+
+CT_DataWsGraphicMsgBuf* CT_DataWsGraphicMsgBuf::NewL()
+ {
+ CT_DataWsGraphicMsgBuf* ret=new (ELeave) CT_DataWsGraphicMsgBuf();
+ CleanupStack::PushL(ret);
+ ret->ConstructL();
+ CleanupStack::Pop(ret);
+ return ret;
+ }
+
+CT_DataWsGraphicMsgBuf::CT_DataWsGraphicMsgBuf()
+: CDataWrapperBase()
+, iWsGraphicMsgBuf(NULL)
+ {
+ }
+
+void CT_DataWsGraphicMsgBuf::ConstructL()
+ {
+ }
+
+CT_DataWsGraphicMsgBuf::~CT_DataWsGraphicMsgBuf()
+ {
+ DestroyData();
+ }
+
+void CT_DataWsGraphicMsgBuf::SetObjectL(TAny* aAny)
+ {
+ DestroyData();
+ iWsGraphicMsgBuf = static_cast<RWsGraphicMsgBuf*> (aAny);
+ }
+
+void CT_DataWsGraphicMsgBuf::DisownObjectL()
+ {
+ iWsGraphicMsgBuf = NULL;
+ }
+
+void CT_DataWsGraphicMsgBuf::DestroyData()
+ {
+ delete iWsGraphicMsgBuf;
+ iWsGraphicMsgBuf=NULL;
+ }
+
+
+/**
+* Process a command read from the ini file
+*
+* @param aCommand the command to process
+* @param aSection the entry in the ini file requiring the command to be processed
+* @param aAsyncErrorIndex index of command. used for async calls
+*
+* @return ETrue if the command is processed
+*/
+TBool CT_DataWsGraphicMsgBuf::DoCommandL(const TTEFFunction& aCommand, const TTEFSectionName& aSection, const TInt /*aAsyncErrorIndex*/)
+ {
+ TBool ret = ETrue;
+
+ if ( aCommand==KCmdnew )
+ {
+ DoCmdnew();
+ }
+ else if ( aCommand==KCmdClose )
+ {
+ DoCmdClose();
+ }
+ else if ( aCommand==KCmdCleanupClosePushL )
+ {
+ DoCmdCleanupClosePushL();
+ }
+ else if ( aCommand==KCmdAppend )
+ {
+ DoCmdAppendL(aSection);
+ }
+ else if ( aCommand==KCmdRemove )
+ {
+ DoCmdRemove(aSection);
+ }
+ else if ( aCommand==KCmdCount )
+ {
+ DoCmdCount(aSection);
+ }
+ else if ( aCommand==KCmdTypeId )
+ {
+ DoCmdTypeId(aSection);
+ }
+ else if ( aCommand==KCmdData )
+ {
+ DoCmdDataL(aSection);
+ }
+ else if( aCommand==KCmdGetFixedMsg)
+ {
+ DoCmdGetFixedMsg(aSection);
+ }
+ else if ( aCommand==KCmdPckg )
+ {
+ DoCmdPckg();
+ }
+ else
+ {
+ ret=EFalse;
+ }
+
+ return ret;
+ }
+
+
+void CT_DataWsGraphicMsgBuf::DoCmdnew()
+ {
+ DestroyData();
+
+ TRAPD(err, iWsGraphicMsgBuf = new (ELeave) RWsGraphicMsgBuf());
+ if(err != KErrNone)
+ {
+ ERR_PRINTF2(_L("**** RWsGraphicMsgBuf Constructor failed with error %d"), err);
+ SetError(err);
+ }
+
+ INFO_PRINTF1(_L("RWsGraphicMsgBuf::RWsGraphicMsgBuf"));
+ }
+
+void CT_DataWsGraphicMsgBuf::DoCmdClose()
+ {
+ iWsGraphicMsgBuf->Close();
+ INFO_PRINTF1(_L("RWsGraphicMsgBuf::Close"));
+ }
+
+void CT_DataWsGraphicMsgBuf::DoCmdCleanupClosePushL()
+ {
+ iWsGraphicMsgBuf->CleanupClosePushL();
+ CleanupStack::PopAndDestroy(iWsGraphicMsgBuf);
+ INFO_PRINTF1(_L("RWsGraphicMsgBuf::CleanupClosePushL"));
+ }
+
+void CT_DataWsGraphicMsgBuf::DoCmdAppendL(const TDesC& aSection)
+ {
+ TInt err=KErrNone;
+ TInt inputTypeId=0;
+ if( GetIntFromConfig(aSection, KInputTypeId(), inputTypeId))
+ {
+ TUid uid = TUid::Uid(inputTypeId);
+ TPtrC inputStr;
+ if( !GetStringFromConfig(aSection, KInputText(), inputStr) )
+ {
+ ERR_PRINTF2(_L("Missing parameter %S"), &KInputText());
+ SetBlockResult(EFail);
+ }
+ else
+ {
+ TBool useBuf8=EFalse;
+ GetBoolFromConfig(aSection, KInputUseText8(), useBuf8);
+ if ( useBuf8 )
+ {
+ TInt inputMsgLen=0;
+ HBufC8* tempStr = HBufC8::NewLC(inputStr.Length());
+ tempStr->Des().Copy(inputStr);
+ if( GetIntFromConfig(aSection, KInputMsgLen(), inputMsgLen))
+ {
+ // Test iWsGraphicMsgBuf->Append(TUid aTypeId, TInt aLen, TPtr8 &aPtr);
+ TPtr8 tempInputStr(tempStr->Des());
+ err = iWsGraphicMsgBuf->Append(uid, inputMsgLen, tempInputStr);
+ INFO_PRINTF1(_L("RWsGraphicMsgBuf::Append (TPtr8)"));
+ }
+ else
+ {
+ // Test iWsGraphicMsgBuf->Append(TUid aTypeId, const TDesC8 &aData);
+ err = iWsGraphicMsgBuf->Append(uid, *tempStr);
+ INFO_PRINTF1(_L("RWsGraphicMsgBuf::Append (TDesC8)"));
+ }
+ CleanupStack::PopAndDestroy(tempStr);
+ }
+ else
+ {
+ // Test iWsGraphicMsgBuf->Append(TUid aTypeId, const TDesC16 &aData);
+ err = iWsGraphicMsgBuf->Append(uid, inputStr);
+ INFO_PRINTF1(_L("RWsGraphicMsgBuf::Append (TDesC16)"));
+ }
+ }
+ }
+ else
+ {
+ TWsGraphicFrameRate frameRate;
+ err = iWsGraphicMsgBuf->Append(frameRate);
+ INFO_PRINTF1(_L("RWsGraphicMsgBuf::Append (TWsGraphicMsgFixedBase)"));
+ }
+
+ if(err != KErrNone)
+ {
+ ERR_PRINTF2(_L("**** Append failed with error %d"), err);
+ SetError(err);
+ }
+ }
+
+void CT_DataWsGraphicMsgBuf::DoCmdRemove(const TDesC& aSection)
+ {
+ TInt inputMsgPosition=0;
+ if( GetIntFromConfig(aSection, KInputMsgPosition(), inputMsgPosition))
+ {
+ iWsGraphicMsgBuf->Remove(inputMsgPosition);
+ INFO_PRINTF1(_L("RWsGraphicMsgBuf::Remove"));
+ }
+ else
+ {
+ ERR_PRINTF2(_L("Missing parameter %S"), &KInputMsgPosition());
+ SetBlockResult(EFail);
+ }
+ }
+
+void CT_DataWsGraphicMsgBuf::DoCmdCount(const TDesC& aSection)
+ {
+ TInt actual = iWsGraphicMsgBuf->Count();
+ INFO_PRINTF2(_L("RWsGraphicMsgBuf::Count = %d"), actual);
+
+ TInt expected = 0;
+ if( GetIntFromConfig(aSection, KExpected(), expected))
+ {
+ if( actual != expected )
+ {
+ ERR_PRINTF1(_L("Count is not as expected!"));
+ SetBlockResult(EFail);
+ }
+ }
+ else
+ {
+ ERR_PRINTF2(_L("Missing parameter %S"), &KExpected());
+ SetBlockResult(EFail);
+ }
+ }
+
+void CT_DataWsGraphicMsgBuf::DoCmdTypeId(const TDesC& aSection)
+ {
+ TInt inputMsgPosition=0;
+ if( GetIntFromConfig(aSection, KInputMsgPosition(), inputMsgPosition))
+ {
+ TUid actual = iWsGraphicMsgBuf->TypeId(inputMsgPosition);
+ INFO_PRINTF2(_L("RWsGraphicMsgBuf::TypeId = %d"), actual.iUid);
+
+ TInt expected = 0;
+ if( GetIntFromConfig(aSection, KExpected(), expected))
+ {
+ TUid expectedUid = TUid::Uid(expected);
+
+ if( actual != expectedUid )
+ {
+ ERR_PRINTF1(_L("TypeId is not as expected!"));
+ SetBlockResult(EFail);
+ }
+ }
+ else
+ {
+ ERR_PRINTF2(_L("Missing parameter %S"), &KExpected());
+ SetBlockResult(EFail);
+ }
+ }
+ else
+ {
+ ERR_PRINTF2(_L("Missing parameter %S"), &KInputMsgPosition());
+ SetBlockResult(EFail);
+ }
+ }
+
+void CT_DataWsGraphicMsgBuf::DoCmdDataL(const TDesC& aSection)
+ {
+ TInt inputMsgPosition=0;
+ if( !GetIntFromConfig(aSection, KInputMsgPosition(), inputMsgPosition) )
+ {
+ ERR_PRINTF2(_L("Missing parameter %S"), &KInputMsgPosition());
+ SetBlockResult(EFail);
+ }
+ else
+ {
+ TPtrC format;
+ if( GetStringFromConfig(aSection, KInputFormat(), format) )
+ {
+ // Test modifiable Data
+ TPtr8 actual=iWsGraphicMsgBuf->Data(inputMsgPosition);
+ HBufC* buffer=HBufC::NewLC(actual.Length());
+ TPtr bufferPtr=buffer->Des();
+
+ bufferPtr.Copy(actual);
+ INFO_PRINTF1(_L("RWsGraphicMsgBuf::Data ="));
+ INFO_PRINTF1(bufferPtr);
+ bufferPtr.Format(format, &bufferPtr);
+ actual.Copy(bufferPtr);
+ CleanupStack::PopAndDestroy(buffer);
+ }
+ else
+ {
+ // Test non-modifiable Data
+ const RWsGraphicMsgBuf* wsGraphicMsgBuf=iWsGraphicMsgBuf;
+ TPtrC8 actual=wsGraphicMsgBuf->Data(inputMsgPosition);
+ HBufC* buffer=HBufC::NewLC(actual.Length());
+ TPtr bufferPtr=buffer->Des();
+
+ bufferPtr.Copy(actual);
+ INFO_PRINTF1(_L("RWsGraphicMsgBuf::Data ="));
+ INFO_PRINTF1(bufferPtr);
+ TPtrC expected;
+ if( !GetStringFromConfig(aSection, KExpected(), expected) )
+ {
+ ERR_PRINTF2(_L("Missing parameter %S"), &KInputMsgPosition());
+ SetBlockResult(EFail);
+ }
+ else
+ {
+ if( bufferPtr!=expected )
+ {
+ ERR_PRINTF1(_L("Data is not as expected!"));
+ SetBlockResult(EFail);
+ }
+ }
+ CleanupStack::PopAndDestroy(buffer);
+ }
+ }
+ }
+
+void CT_DataWsGraphicMsgBuf::DoCmdGetFixedMsg(const TDesC& aSection)
+ {
+ TInt inputMsgPosition=0;
+ if( GetIntFromConfig(aSection, KInputMsgPosition(), inputMsgPosition))
+ {
+ TWsGraphicFrameRate frameRate;
+ iWsGraphicMsgBuf->GetFixedMsg(frameRate, inputMsgPosition);
+ INFO_PRINTF1(_L("RWsGraphicMsgBuf::GetFixedMsg"));
+ }
+ else
+ {
+ ERR_PRINTF2(_L("Missing parameter %S"), &KInputMsgPosition());
+ SetBlockResult(EFail);
+ }
+ }
+
+void CT_DataWsGraphicMsgBuf::DoCmdPckg()
+ {
+ TBuf8<KMaxTestExecuteCommandLength> msg;
+ msg = iWsGraphicMsgBuf->Pckg();
+ INFO_PRINTF1(_L("RWsGraphicMsgBuf::Pckg"));
+ }