aknlayoutcompiler/inc/MLCompDataLayPerfWriter.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Tue, 14 Sep 2010 23:14:45 +0300
branchRCL_3
changeset 20 8b4f687b7a95
parent 1 b700e12870ca
permissions -rw-r--r--
Revision: 201033 Kit: 201035

/*
* Copyright (c) 2006 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:  
*
*/


#ifndef MLCompDataLayPerfWriter_H
#define MLCompDataLayPerfWriter_H

// disable "decorated name length exceeded, name was truncated"
#pragma warning (disable:4503)

#include "WriterBase.h"
#include "MLCompData.h"

class TMLCompDataLayPerfWriter;

#include <CdlCompilerToolkit/CdlTkInterface.h>
using namespace CdlCompilerToolkit;


/**
*  TLayPerfTableWriter
*  Writes a layout table in .lay format
*/
class TMLCompDataLayPerfTableWriter
	{
public:
	TMLCompDataLayPerfTableWriter(TMLCompDataLayPerfWriter* aParent, TMLCompDataTable& aTable, string& aInterfaceName, int aTableId);
	~TMLCompDataLayPerfTableWriter();
	void Write(ostream& out);

private:
	void WriteTable(ostream& out);
	void WriteLine(ostream& out, TMLCompDataLine& line);
	string BuildMacroName(TMLCompDataLine& aLine);
	string BuildApiName(TMLCompDataLine& aLine);
	string BuildParams(TMLCompDataLine& aLine);
	string BuildParamLimitParams(TMLCompDataLine& aLine);

private:
	TMLCompDataLayPerfWriter* iParent;
	TMLCompDataTable& iTable;
	string iInterfaceName;
	int iTableId;
	};

/**
*  TMLCompDataLayPerfWriter 
*  Writes a layout in LayPerf format, using the build in macros to do the work.
*/
class TMLCompDataLayPerfWriter : public TMLWriterBase<TMLCompData>
	{
public:
	TMLCompDataLayPerfWriter(CCdlTkInterface& aInterface, TMLCompData& aLayout, const std::string& aName);
	void Write(const std::string& aLayName);
public:
	CCdlTkInterface& iInterface; // not owned
	};

#endif // MLCompDataLayPerfWriter_H

// End of File