When you want to modify the behavior of a class slightly, use a builder. The following was a builder generated from the vocab/Logger concept with:
Command: chasm2C -v -b -p TEST vocab/Logger
Output: LoggerBuilderTEST.C LoggerBuilderTEST.h
#ifndef _HEADER_LoggerBuilderTEST__
#define _HEADER_LoggerBuilderTEST__
#include </usr/local/include/chasm_0.3/vocab/Logger.chasm.h>
// Generated by CHASM from .chasmxml file version 0.3
// ---------------------------------------------------------------------
// Builder Object
// ---------------------------------------------------------------------
class LoggerBuilderTEST
: public LoggerBuilder
{
// ---------------------------------------------------------------------
// Chasm functionality
public:
LoggerBuilderTEST(char* _name = "LoggerBuilderTEST");
~LoggerBuilderTEST();
protected:
void displayMeInternal(int _i = 0, char* _s = '\0');
void builderInitialization();
// ---------------------------------------------------------------------
public:
};
#endif
#include "LoggerBuilderTEST.h"
// Generated by CHASM from .chasmxml file version 0.3
#include <chasm/CHASM.h>
#define DIRECTOR ((Logger*)director)
// ---------------------------------------------------------------------
LoggerBuilderTEST::LoggerBuilderTEST(char* _name)
: LoggerBuilder(_name)
{
}
// ---------------------------------------------------------------------
LoggerBuilderTEST::~LoggerBuilderTEST()
{
}
// ---------------------------------------------------------------------
void LoggerBuilderTEST::builderInitialization()
{
}
// ---------------------------------------------------------------------
void LoggerBuilderTEST::displayMeInternal(int _i, char* _s)
{
LoggerBuilder::displayMeInternal(_i,_s);
}