diff -r 000000000000 -r 3da2a79470a7 testexecmgmt/ucc/Source/Uccs.v2/DeviceControlChannel/CFrameBuffer.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/testexecmgmt/ucc/Source/Uccs.v2/DeviceControlChannel/CFrameBuffer.cpp Mon Mar 08 15:04:18 2010 +0800 @@ -0,0 +1,78 @@ +/* +* 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: +* System Includes +* +*/ + + + +#include +#include + +/********************************************************************************************** + * + * Local Includes + * + *********************************************************************************************/ +#include "CFrameBuffer.h" + +/********************************************************************************************** + * + * Defines + * + *********************************************************************************************/ + +/********************************************************************************************** + * + * Static Method + * + *********************************************************************************************/ +TFBError CFrameBuffer::createSendBuffer(int aUID, TPCommand aSendCommand, int aDataLength, char* aData, char* aFrame, int* aFrameSize) +{ + int totalFrameSize, i, data_base_index; + TPHeader *header; + + // Check params + assert ( aData != NULL); + assert ( aFrame != NULL); + assert ( aFrameSize != NULL); + + // Calculate the size of the resultant frame buffer + totalFrameSize = ( sizeof(TPHeader) + aDataLength); + + // Check that the frame data will fit into the allocated frame size + if ( totalFrameSize > *aFrameSize ) + { + return TFB_BUFFERTOOSMALL; + } + + header = (TPHeader*)aFrame; + + // Now create the packet + header->iUid = aUID; // Add the UID + header->iCmdID = aSendCommand; // Add the command id + header->iDataLen = aDataLength; // Add the length + + for( i = 0, data_base_index = sizeof(TPHeader); i < aDataLength; i++ ) + { + aFrame[data_base_index + i] = aData[i]; + } + + // Set the final frame size to the actual size of the frame we have created. + *aFrameSize = totalFrameSize; + + return TFB_SUCCESS; +} +