#!/bin/csh -f

if ($#argv < 1) then
	echo Usage: makeNode className \[parentClass\]
	exit
endif

if ($#argv < 2) then
	set parent = ygNode
else
	set parent = $2
endif

sed s/MYPARENT/$parent/g << ENDCODE | sed s/MYNODE/$1/g > $1.cxx
#include "MYNODE.h"

using namespace std;

extern "C" ygNode* construct_MYNODE(const char* name,bool master) { return new MYNODE(name,master); }

struct _MYNODEPrivateData
	{
//	bool myDebug;
	};


MYNODE::MYNODE(const char* name,bool master) : MYPARENT(name,master)
	{
	setClassName("MYNODE");
	p_ = new struct _MYNODEPrivateData;
//	debugFlag("myDebug", &p_->myDebug);
	}

MYNODE::~MYNODE(void)
	{
	delete p_;
	}


void MYNODE::reset(void)
	{
	MYPARENT::reset();
	}


void MYNODE::message(const ygMessage& msg)
	{
	if (msg == "mymessage")
		{
		/*mymessage(msg);*/
		}
	else
		MYPARENT::message(msg);
	}


void MYNODE::app(void)
	{
//	if (p_->myDebug) doMyDebugging();
	MYPARENT::app();
	}
ENDCODE

sed s/MYPARENT/$parent/g << ENDCODE | sed s/MYNODE/$1/g > $1.h
#ifndef _MYNODE_h_
#define _MYNODE_h_

#include "MYPARENT.h"


class MYNODE : public MYPARENT
	{
	public:
	 MYNODE(const char* name,bool master=true);
	 ~MYNODE(void);
	 virtual void reset(void);
	 virtual void message(const ygMessage&);
	 virtual void app(void);
	private:
	 struct _MYNODEPrivateData * p_;
	};


#endif
ENDCODE
