testexecmgmt/ucc/Source/Uccs.v2/DeviceControlChannel/CFrameBuffer.cpp
changeset 0 3da2a79470a7
--- /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 <assert.h>
+#include <string.h>
+
+/**********************************************************************************************
+ *
+ * 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;
+}
+