//
// C++ Interface: kmfiptablesscriptgenerator
//
// Description: 
//
//
// Author: Christian Hubinger <chubinger@gmail.com>, (C) 2004
//
// Copyright: See COPYING file that comes with this distribution
// License: GPL
//
#ifndef KMFIPTABLESSCRIPTGENERATOR_H
#define KMFIPTABLESSCRIPTGENERATOR_H

/**
@author Christian Hubinger
*/
// QT includes
#include <qstring.h>
#include <qobject.h>

// KDE includes
#include <kparts/part.h>
#include <kparts/plugin.h>
#include <kparts/factory.h>
#include <kxmlgui.h>

class IPTable;
class KMFIPTDoc;

class KMFIPTablesScriptGenerator{
public:
    KMFIPTablesScriptGenerator();

    ~KMFIPTablesScriptGenerator();

	const QString& compile( KMFIPTDoc* );
	
	
private:
	const QString& printScriptDebug( const QString&, bool newLine = true);
	const QString& printScriptTableRules( IPTable *tbl );
	const QString& printScriptTableChainDefinition( IPTable *tbl );
	const QString& printScriptStartFunction();
	const QString& printScriptStopFunction();
	const QString& printScriptModuleLoad();
	const QString& printScriptHeader(); 
	const QString& printScriptExecLogic(); 
	
private: // DATA
	KMFIPTDoc *m_iptDoc;

};

#endif
