
/*
 * This file was generated by the SOM Compiler.
 * FileName: txtep.h.
 * Generated using:
 *     SOM Precompiler somipc: 2.29.1.19
 *     SOM Emitter emith.dll: 2.31.1.64
 */

/*
 *   This class is adapted from the book
 *     Class Construction in C and C++, Object Oriented Fundamentals
 *     by Roger Sessions, Copyright (c) 1992 Prentice Hall.
 *   Reprinted with permission.
 */


#ifndef SOM_txtEnvProcessor_h
#define SOM_txtEnvProcessor_h


/*
 * The SOM_STRICT_IDL macro means that we can ignore stars
 * in our declarations of objects.
 */
#define SOM_STRICT_IDL 1


#include <som.h>

/*
 * -- This emitter treats Method Tokens as Thunks by default.
 * -- Use the sc modifier "nothunks" to change this default
 */
#undef somresolve_
#define somresolve_(obj,mToken) ((somMethodProc*)((void)obj, mToken))

/*
 * Define the class name as an object type
 */
#ifndef txtEnvProcessor
#define txtEnvProcessor SOMObject
#endif

/*
 * Include Parent Bindings
 */
#ifndef SOM_envProcessor_h
#ifdef SOMLOCALINCLUDES
#include "ep.h"
#else
#include <ep.h>
#endif
#endif

/*
 * Start of bindings for IDL types
 */

#ifndef SOMClass
    #define SOMClass SOMObject
#endif /* SOMClass */
#ifndef page
    #define page SOMObject
#endif /* page */
#ifndef TPWord
    #define TPWord SOMObject
#endif /* TPWord */
#ifndef fileMgr
    #define fileMgr SOMObject
#endif /* fileMgr */
#ifndef textLine
    #define textLine SOMObject
#endif /* textLine */
#ifndef columnBlock
    #define columnBlock SOMObject
#endif /* columnBlock */

/*
 * End of bindings for IDL types.
 */

#define txtEnvProcessor_MajorVersion 0
#define txtEnvProcessor_MinorVersion 0

/*
 * Declare the class creation procedure
 */
SOMEXTERN 
#if defined(SOM_Module_txtep_Source)
        SOMDLLEXPORT
#else
    SOMDLLIMPORT
#endif
 SOMClass  SOMLINK txtEnvProcessorNewClass(integer4 somtmajorVersion,
		integer4 somtminorVersion);

/*
 * Declare the ABI 2 ClassData structure
 */
SOMEXTERN struct txtEnvProcessorClassDataStructure {
	SOMClass classObject;
	somMToken tpProcessWord;
	somMToken tpProcessBlanks;
	somMToken tpProcessLineBreak;
	somMToken tpProcessFullLine;
	somMToken tpProcessFullPage;
	somMToken tpProcessNewLine;
	somMToken tpProcessNewParagraph;
	somMToken _get_currentLine;
	somMToken _set_currentLine;
} 
#if defined(SOM_Module_txtep_Source)
        SOMDLLEXPORT
#else
    SOMDLLIMPORT
#endif
 SOMDLINK txtEnvProcessorClassData;

/*
 * Declare the ABI 2 CClassData structure
 */
SOMEXTERN struct txtEnvProcessorCClassDataStructure {
	somMethodTabs parentMtab;
	somDToken instanceDataToken;
} 
#if defined(SOM_Module_txtep_Source)
        SOMDLLEXPORT
#else
    SOMDLLIMPORT
#endif
 SOMDLINK txtEnvProcessorCClassData;

/*
 * Class Object and Method Token Macros
 */
#define _SOMCLASS_txtEnvProcessor (txtEnvProcessorClassData.classObject)
#ifndef SOMGD_txtEnvProcessor
    #if (defined(_txtEnvProcessor) || defined(__txtEnvProcessor))
        #undef _txtEnvProcessor
        #undef __txtEnvProcessor
        #define SOMGD_txtEnvProcessor 1
    #else
        #define _txtEnvProcessor _SOMCLASS_txtEnvProcessor
    #endif /* _txtEnvProcessor */
#endif /* SOMGD_txtEnvProcessor */
#define txtEnvProcessor_classObj _SOMCLASS_txtEnvProcessor
#define _SOMMTOKEN_txtEnvProcessor(method) ((somMToken)txtEnvProcessorClassData.method)

/*
 * New and Renew macros for txtEnvProcessor
 */
#define txtEnvProcessorNew() \
   ( _txtEnvProcessor ? \
	_somNew(_txtEnvProcessor) \
	: ( txtEnvProcessorNewClass(\
		txtEnvProcessor_MajorVersion, \
		txtEnvProcessor_MinorVersion),\
	   _somNew(_txtEnvProcessor)))
#define txtEnvProcessorRenew(buf) \
   ( _txtEnvProcessor ? \
	_somRenew(_txtEnvProcessor, buf) \
	: ( txtEnvProcessorNewClass(\
		txtEnvProcessor_MajorVersion, \
		txtEnvProcessor_MinorVersion),\
	   _somRenew(_txtEnvProcessor, buf)))

/*
 * New Method: tpProcessWord
 */
typedef void   SOMLINK somTP_txtEnvProcessor_tpProcessWord(txtEnvProcessor somSelf);
typedef somTP_txtEnvProcessor_tpProcessWord *somTD_txtEnvProcessor_tpProcessWord;
/*
 *  Default word processor: Add it to the current line, if
 *  space is available, otherwise create a new line.
 */
#define somMD_txtEnvProcessor_tpProcessWord "::txtEnvProcessor::tpProcessWord"
#define txtEnvProcessor_tpProcessWord(somSelf) \
    (SOM_Resolve(somSelf, txtEnvProcessor, tpProcessWord) \
	(somSelf))
#ifndef SOMGD_tpProcessWord
    #if (defined(_tpProcessWord) || defined(__tpProcessWord))
        #undef _tpProcessWord
        #undef __tpProcessWord
        #define SOMGD_tpProcessWord 1
    #else
        #define _tpProcessWord txtEnvProcessor_tpProcessWord
    #endif /* _tpProcessWord */
#endif /* SOMGD_tpProcessWord */

/*
 * New Method: tpProcessBlanks
 */
typedef void   SOMLINK somTP_txtEnvProcessor_tpProcessBlanks(txtEnvProcessor somSelf);
typedef somTP_txtEnvProcessor_tpProcessBlanks *somTD_txtEnvProcessor_tpProcessBlanks;
/*
 *  Default blank processor: Add to current line, if
 *  space is available, otherwise discard (ie don't
 *  use in a new line).
 */
#define somMD_txtEnvProcessor_tpProcessBlanks "::txtEnvProcessor::tpProcessBlanks"
#define txtEnvProcessor_tpProcessBlanks(somSelf) \
    (SOM_Resolve(somSelf, txtEnvProcessor, tpProcessBlanks) \
	(somSelf))
#ifndef SOMGD_tpProcessBlanks
    #if (defined(_tpProcessBlanks) || defined(__tpProcessBlanks))
        #undef _tpProcessBlanks
        #undef __tpProcessBlanks
        #define SOMGD_tpProcessBlanks 1
    #else
        #define _tpProcessBlanks txtEnvProcessor_tpProcessBlanks
    #endif /* _tpProcessBlanks */
#endif /* SOMGD_tpProcessBlanks */

/*
 * New Method: tpProcessLineBreak
 */
typedef void   SOMLINK somTP_txtEnvProcessor_tpProcessLineBreak(txtEnvProcessor somSelf);
typedef somTP_txtEnvProcessor_tpProcessLineBreak *somTD_txtEnvProcessor_tpProcessLineBreak;
/*
 *  Default line break processor: Treat line breaks as
 *  blanks (ie an input line break does not cause a line
 *  break in the output file).
 */
#define somMD_txtEnvProcessor_tpProcessLineBreak "::txtEnvProcessor::tpProcessLineBreak"
#define txtEnvProcessor_tpProcessLineBreak(somSelf) \
    (SOM_Resolve(somSelf, txtEnvProcessor, tpProcessLineBreak) \
	(somSelf))
#ifndef SOMGD_tpProcessLineBreak
    #if (defined(_tpProcessLineBreak) || defined(__tpProcessLineBreak))
        #undef _tpProcessLineBreak
        #undef __tpProcessLineBreak
        #define SOMGD_tpProcessLineBreak 1
    #else
        #define _tpProcessLineBreak txtEnvProcessor_tpProcessLineBreak
    #endif /* _tpProcessLineBreak */
#endif /* SOMGD_tpProcessLineBreak */

/*
 * New Method: tpProcessFullLine
 */
typedef void   SOMLINK somTP_txtEnvProcessor_tpProcessFullLine(txtEnvProcessor somSelf);
typedef somTP_txtEnvProcessor_tpProcessFullLine *somTD_txtEnvProcessor_tpProcessFullLine;
/*
 *  Default full line processor: Add full input line to
 *  columnBlock and start a new line.
 */
#define somMD_txtEnvProcessor_tpProcessFullLine "::txtEnvProcessor::tpProcessFullLine"
#define txtEnvProcessor_tpProcessFullLine(somSelf) \
    (SOM_Resolve(somSelf, txtEnvProcessor, tpProcessFullLine) \
	(somSelf))
#ifndef SOMGD_tpProcessFullLine
    #if (defined(_tpProcessFullLine) || defined(__tpProcessFullLine))
        #undef _tpProcessFullLine
        #undef __tpProcessFullLine
        #define SOMGD_tpProcessFullLine 1
    #else
        #define _tpProcessFullLine txtEnvProcessor_tpProcessFullLine
    #endif /* _tpProcessFullLine */
#endif /* SOMGD_tpProcessFullLine */

/*
 * New Method: tpProcessFullPage
 */
typedef void   SOMLINK somTP_txtEnvProcessor_tpProcessFullPage(txtEnvProcessor somSelf);
typedef somTP_txtEnvProcessor_tpProcessFullPage *somTD_txtEnvProcessor_tpProcessFullPage;
/*
 *  Default full page processor: Print the page and start
 *  another.
 */
#define somMD_txtEnvProcessor_tpProcessFullPage "::txtEnvProcessor::tpProcessFullPage"
#define txtEnvProcessor_tpProcessFullPage(somSelf) \
    (SOM_Resolve(somSelf, txtEnvProcessor, tpProcessFullPage) \
	(somSelf))
#ifndef SOMGD_tpProcessFullPage
    #if (defined(_tpProcessFullPage) || defined(__tpProcessFullPage))
        #undef _tpProcessFullPage
        #undef __tpProcessFullPage
        #define SOMGD_tpProcessFullPage 1
    #else
        #define _tpProcessFullPage txtEnvProcessor_tpProcessFullPage
    #endif /* _tpProcessFullPage */
#endif /* SOMGD_tpProcessFullPage */

/*
 * New Method: tpProcessNewLine
 */
typedef void   SOMLINK somTP_txtEnvProcessor_tpProcessNewLine(txtEnvProcessor somSelf);
typedef somTP_txtEnvProcessor_tpProcessNewLine *somTD_txtEnvProcessor_tpProcessNewLine;
/*
 *  Default new line processor: Handles a new output line.
 *  Default is indent line 2 characters.
 */
#define somMD_txtEnvProcessor_tpProcessNewLine "::txtEnvProcessor::tpProcessNewLine"
#define txtEnvProcessor_tpProcessNewLine(somSelf) \
    (SOM_Resolve(somSelf, txtEnvProcessor, tpProcessNewLine) \
	(somSelf))
#ifndef SOMGD_tpProcessNewLine
    #if (defined(_tpProcessNewLine) || defined(__tpProcessNewLine))
        #undef _tpProcessNewLine
        #undef __tpProcessNewLine
        #define SOMGD_tpProcessNewLine 1
    #else
        #define _tpProcessNewLine txtEnvProcessor_tpProcessNewLine
    #endif /* _tpProcessNewLine */
#endif /* SOMGD_tpProcessNewLine */

/*
 * New Method: tpProcessNewParagraph
 */
typedef void   SOMLINK somTP_txtEnvProcessor_tpProcessNewParagraph(txtEnvProcessor somSelf);
typedef somTP_txtEnvProcessor_tpProcessNewParagraph *somTD_txtEnvProcessor_tpProcessNewParagraph;
/*
 *  Default new paragraph processor: Breaks the output line.
 *  Starts a new output line.
 */
#define somMD_txtEnvProcessor_tpProcessNewParagraph "::txtEnvProcessor::tpProcessNewParagraph"
#define txtEnvProcessor_tpProcessNewParagraph(somSelf) \
    (SOM_Resolve(somSelf, txtEnvProcessor, tpProcessNewParagraph) \
	(somSelf))
#ifndef SOMGD_tpProcessNewParagraph
    #if (defined(_tpProcessNewParagraph) || defined(__tpProcessNewParagraph))
        #undef _tpProcessNewParagraph
        #undef __tpProcessNewParagraph
        #define SOMGD_tpProcessNewParagraph 1
    #else
        #define _tpProcessNewParagraph txtEnvProcessor_tpProcessNewParagraph
    #endif /* _tpProcessNewParagraph */
#endif /* SOMGD_tpProcessNewParagraph */

/*
 * New Method: _get_currentLine
 */
typedef textLine   SOMLINK somTP_txtEnvProcessor__get_currentLine(txtEnvProcessor somSelf);
typedef somTP_txtEnvProcessor__get_currentLine *somTD_txtEnvProcessor__get_currentLine;
/*
 *  The current line.
 */
#define somMD_txtEnvProcessor__get_currentLine "::txtEnvProcessor::_get_currentLine"
#define txtEnvProcessor__get_currentLine(somSelf) \
    (SOM_Resolve(somSelf, txtEnvProcessor, _get_currentLine) \
	(somSelf))
#ifndef SOMGD_get_currentLine
    #if (defined(_get_currentLine) || defined(__get_currentLine))
        #undef _get_currentLine
        #undef __get_currentLine
        #define SOMGD_get_currentLine 1
    #else
        #define __get_currentLine txtEnvProcessor__get_currentLine
    #endif /* __get_currentLine */
#endif /* SOMGD_get_currentLine */

/*
 * New Method: _set_currentLine
 */
typedef void   SOMLINK somTP_txtEnvProcessor__set_currentLine(txtEnvProcessor somSelf, 
		textLine currentLine);
typedef somTP_txtEnvProcessor__set_currentLine *somTD_txtEnvProcessor__set_currentLine;
/*
 *  The current line.
 */
#define somMD_txtEnvProcessor__set_currentLine "::txtEnvProcessor::_set_currentLine"
#define txtEnvProcessor__set_currentLine(somSelf,currentLine) \
    (SOM_Resolve(somSelf, txtEnvProcessor, _set_currentLine) \
	(somSelf,currentLine))
#ifndef SOMGD_set_currentLine
    #if (defined(_set_currentLine) || defined(__set_currentLine))
        #undef _set_currentLine
        #undef __set_currentLine
        #define SOMGD_set_currentLine 1
    #else
        #define __set_currentLine txtEnvProcessor__set_currentLine
    #endif /* __set_currentLine */
#endif /* SOMGD_set_currentLine */

/*
 * Full Names for Inherited Methods
 */
/* overridden methods */
#define txtEnvProcessor_epInit1 envProcessor_epInit1
#define txtEnvProcessor_epProcessEnvironment envProcessor_epProcessEnvironment
#define txtEnvProcessor_epInitializeEnvironment envProcessor_epInitializeEnvironment
#define txtEnvProcessor_epShutdownEnvironment envProcessor_epShutdownEnvironment
#define txtEnvProcessor_epPrepareForNewEnvironment envProcessor_epPrepareForNewEnvironment
#define txtEnvProcessor__get_paragraphIndentation envProcessor__get_paragraphIndentation
#define txtEnvProcessor__get_lineIndentation envProcessor__get_lineIndentation
#define txtEnvProcessor_somInit SOMObject_somInit
#define txtEnvProcessor_somUninit SOMObject_somUninit

#ifndef SOM_DONT_USE_INHERITED_MACROS
#define txtEnvProcessor_epStartUpNewEnvironment envProcessor_epStartUpNewEnvironment
#define txtEnvProcessor__get_currentPage envProcessor__get_currentPage
#define txtEnvProcessor__set_currentPage envProcessor__set_currentPage
#define txtEnvProcessor__get_currentFileMgr envProcessor__get_currentFileMgr
#define txtEnvProcessor__set_currentFileMgr envProcessor__set_currentFileMgr
#define txtEnvProcessor__get_previousEnv envProcessor__get_previousEnv
#define txtEnvProcessor_somDumpSelfInt SOMObject_somDumpSelfInt
#define txtEnvProcessor_somDefaultInit SOMObject_somDefaultInit
#define txtEnvProcessor_somDestruct SOMObject_somDestruct
#define txtEnvProcessor_somDefaultCopyInit SOMObject_somDefaultCopyInit
#define txtEnvProcessor_somDefaultAssign SOMObject_somDefaultAssign
#define txtEnvProcessor_somDefaultConstCopyInit SOMObject_somDefaultConstCopyInit
#define txtEnvProcessor_somDefaultVCopyInit SOMObject_somDefaultVCopyInit
#define txtEnvProcessor_somDefaultConstVCopyInit SOMObject_somDefaultConstVCopyInit
#define txtEnvProcessor_somDefaultConstAssign SOMObject_somDefaultConstAssign
#define txtEnvProcessor_somDefaultVAssign SOMObject_somDefaultVAssign
#define txtEnvProcessor_somDefaultConstVAssign SOMObject_somDefaultConstVAssign
#define txtEnvProcessor_somFree SOMObject_somFree
#define txtEnvProcessor_somGetClass SOMObject_somGetClass
#define txtEnvProcessor_somGetClassName SOMObject_somGetClassName
#define txtEnvProcessor_somGetSize SOMObject_somGetSize
#define txtEnvProcessor_somIsA SOMObject_somIsA
#define txtEnvProcessor_somIsInstanceOf SOMObject_somIsInstanceOf
#define txtEnvProcessor_somRespondsTo SOMObject_somRespondsTo
#define txtEnvProcessor_somDispatch SOMObject_somDispatch
#define txtEnvProcessor_somClassDispatch SOMObject_somClassDispatch
#define txtEnvProcessor_somCastObj SOMObject_somCastObj
#define txtEnvProcessor_somResetObj SOMObject_somResetObj
#define txtEnvProcessor_somPrintSelf SOMObject_somPrintSelf
#define txtEnvProcessor_somDumpSelf SOMObject_somDumpSelf
#endif /* SOM_DONT_USE_INHERITED_MACROS */

#endif       /* SOM_txtEnvProcessor_h */
