mirror of https://github.com/lianthony/NT4.0
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
891 lines
20 KiB
891 lines
20 KiB
/*++
|
|
|
|
Copyright (c) 1991 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
output.hxx
|
|
|
|
Abstract:
|
|
|
|
MIDL Compiler Output Manager Definition
|
|
|
|
This class manages output to specified header and source files.
|
|
|
|
Author:
|
|
|
|
Donna Liu (donnali) 09-Nov-1990
|
|
|
|
Revision History:
|
|
|
|
26-Feb-1992 donnali
|
|
|
|
Moved toward NT coding style.
|
|
|
|
--*/
|
|
|
|
|
|
#ifndef __OUTPUT_HXX__
|
|
#define __OUTPUT_HXX__
|
|
|
|
#include "nodeskl.hxx"
|
|
|
|
enum _bound_t {
|
|
ALLOC_BOUND,
|
|
ALLOC_PARAM,
|
|
VALID_BOUND
|
|
} ;
|
|
typedef enum _bound_t BOUND_T;
|
|
|
|
enum _param_t {
|
|
PARAM_IN = 0x0001,
|
|
PARAM_OUT = 0x0002,
|
|
PARAM_INOUT = 0x0003
|
|
} ;
|
|
typedef enum _param_t PARAM_T;
|
|
|
|
enum _pointer_t {
|
|
POINTER_REF,
|
|
POINTER_UNIQUE,
|
|
POINTER_PTR
|
|
} ;
|
|
typedef enum _pointer_t POINTER_T;
|
|
|
|
enum _format_t {
|
|
FORMAT_NONE,
|
|
FORMAT_TYPES,
|
|
FORMAT_CLASS,
|
|
FORMAT_VTABLE,
|
|
FORMAT_STATIC
|
|
} ;
|
|
typedef enum _format_t FORMAT_T;
|
|
|
|
|
|
struct _OutputElement
|
|
/*++
|
|
|
|
Struct Description:
|
|
|
|
This struct provides primitive output capabilities.
|
|
|
|
Fields:
|
|
|
|
szFileName - Contains the file name.
|
|
|
|
pFileHandle - Contains the file pointer.
|
|
|
|
usCurrIndent - Contains the current indentation.
|
|
|
|
--*/
|
|
{
|
|
char szFileName[_MAX_DRIVE+_MAX_DIR+_MAX_FNAME+_MAX_EXT+1];
|
|
FILE * pFileHandle;
|
|
unsigned short usCurrIndent;
|
|
STATUS_T Status;
|
|
|
|
_OutputElement(char *);
|
|
~_OutputElement();
|
|
void Delete (void);
|
|
void IndentInc (unsigned short);
|
|
void IndentDec (unsigned short);
|
|
void EmitFile (char *);
|
|
void EmitFile (BufferManager *);
|
|
void InitLine (void);
|
|
void NextLine (void);
|
|
void EmitLine (char * psz);
|
|
void InitIndent()
|
|
{
|
|
usCurrIndent = 0;
|
|
}
|
|
|
|
STATUS_T SetStatus( STATUS_T S )
|
|
{
|
|
return (Status = S);
|
|
}
|
|
|
|
STATUS_T GetStatus()
|
|
{
|
|
return Status;
|
|
}
|
|
|
|
void RemoveFileIfNecessary();
|
|
|
|
} ;
|
|
typedef struct _OutputElement OutputElement;
|
|
|
|
|
|
class OutputManager
|
|
/*++
|
|
|
|
Class Description:
|
|
|
|
This class provides abstract output capabilities.
|
|
|
|
Fields:
|
|
|
|
--*/
|
|
{
|
|
char aTempBuffer[16];
|
|
OutputElement * pTempHandle;
|
|
public:
|
|
OutputElement * aOutputHandles[MAX_SIDE];
|
|
unsigned short NumEndpoint;
|
|
BOOL TopPointer;
|
|
BOOL UsePointer;
|
|
POINTER_T DefPointer;
|
|
FORMAT_T OutputFormat;
|
|
BOOL IsEmitRemote;
|
|
BOOL IsEmitClient;
|
|
BOOL SafeAllocation;
|
|
BOOL CallBackProc;
|
|
BOOL IsCallBack;
|
|
unsigned short usUnitIndent;
|
|
unsigned short usICount;
|
|
unsigned short usOCount;
|
|
char * pSwitchPrefix;
|
|
char * pHeader;
|
|
char * pInterface;
|
|
char * pProcedure;
|
|
char * pErr;
|
|
char * pCom;
|
|
char * pModifier;
|
|
BOOL AlignBlock;
|
|
unsigned short usCurrLevel;
|
|
unsigned short usCurrAlign;
|
|
unsigned long ulCurrTotal;
|
|
unsigned short ZeePee;
|
|
BOOL NeedToInitHandle;
|
|
BOOL SafeToCompHandle;
|
|
BOOL UseAutomaticHandle;
|
|
BOOL UsePrimitiveHandle;
|
|
// BOOL IsExplicitHandle;
|
|
unsigned short NumGenericHandle;
|
|
unsigned short NumContextHandle;
|
|
unsigned short NumAllocBound;
|
|
unsigned short NumValidBound;
|
|
unsigned short AllocAlign;
|
|
#if 1
|
|
BOOL fNeedsGenHdlExceptions;
|
|
char * pGenHdlTypeName;
|
|
char * pGenHdlName;
|
|
PARAM_T GenHdlDirection;
|
|
|
|
BOOL fHasExplicitErrorStatus;
|
|
#endif // 1
|
|
|
|
public:
|
|
OutputManager(char *,unsigned short);
|
|
~OutputManager();
|
|
void InitFile (char *, POINTER_T, unsigned short, BOOL);
|
|
void ExitFile (BOOL);
|
|
void SwapFile (SIDE_T, SIDE_T);
|
|
void FileProlog (SIDE_T, char *, BOOL MopIncludeNeeded);
|
|
void FileEpilog (SIDE_T);
|
|
void DeleteFile (SIDE_T);
|
|
|
|
FILE * GetFileHandle( SIDE_T side ) { return aOutputHandles[ side ]->pFileHandle; }
|
|
|
|
void InitInterface (char *, BOOL, BOOL, BOOL, BOOL);
|
|
void InitInterface (FORMAT_T);
|
|
void ExitInterface (void);
|
|
void ExitInterface (FORMAT_T);
|
|
void InterfaceProlog (SIDE_T, char *, int, int, BOOL);
|
|
void InterfaceEpilog (SIDE_T, BufferManager *);
|
|
void EmitGuid (SIDE_T, char *);
|
|
void InitEndpointTable (SIDE_T);
|
|
void ExitEndpointTable (SIDE_T);
|
|
void EmitEndpoint (SIDE_T, char *, char *);
|
|
FORMAT_T CurrOutputFormat (void);
|
|
BOOL EmitRemoteCode (void);
|
|
BOOL EmitClientCode (void);
|
|
POINTER_T PointerDefault (void);
|
|
void SetTopPointer (BOOL);
|
|
BOOL GetTopPointer (void);
|
|
void SetUsePointer (BOOL);
|
|
BOOL GetUsePointer (void);
|
|
void SetCallBack (void);
|
|
BOOL HasCallBack (void);
|
|
void SetModifier (char *);
|
|
char * GetModifier (void);
|
|
|
|
void InitProcedure (char *, BOOL, unsigned short, unsigned short);
|
|
void ExitProcedure (void);
|
|
void ProcedureProlog (
|
|
SIDE_T, BOOL, BOOL, BOOL, BOOL, BOOL, BOOL, BOOL, BOOL, BOOL);
|
|
void ProcedureEpilog (SIDE_T, BOOL, BOOL);
|
|
void InitPrototype (SIDE_T, BufferManager *);
|
|
void ExitPrototype (SIDE_T);
|
|
void InitParameter (SIDE_T, BOOL);
|
|
void InitHandle (BOOL, BOOL, unsigned short, unsigned short);
|
|
BOOL InsideProcedure (void);
|
|
void InitRecv (SIDE_T);
|
|
void ExitRecv (SIDE_T);
|
|
|
|
void InitVector (SIDE_T);
|
|
void ExitVector (SIDE_T);
|
|
|
|
void InitSwitch (void);
|
|
void ExitSwitch (void);
|
|
void InitBlock (SIDE_T);
|
|
void ExitBlock (SIDE_T);
|
|
void InitLevel (SIDE_T);
|
|
void ExitLevel (SIDE_T);
|
|
|
|
void SetStatus (char *, char *);
|
|
void CatchException (SIDE_T, BOOL);
|
|
void RaiseException (SIDE_T, BOOL, char *);
|
|
void InitHandler (SIDE_T, BOOL);
|
|
void ExitHandler (SIDE_T, BOOL);
|
|
|
|
void EmitDefine (SIDE_T, char *, BufferManager *);
|
|
void EmitInclude (SIDE_T, char *);
|
|
void EmitAutoBind (SIDE_T);
|
|
void EmitStubType (SIDE_T, char *);
|
|
void EmitDispatch (BOOL);
|
|
void EmitCallApps (BufferManager *);
|
|
void EmitCallApps (BOOL, BOOL, BufferManager *, BufferManager *);
|
|
void EmitVar (SIDE_T, BufferManager *);
|
|
void EmitBoundVar (SIDE_T);
|
|
void EmitAllocVar (SIDE_T);
|
|
void EmitValidVar (SIDE_T);
|
|
|
|
void EmitAssign (SIDE_T, BufferManager *);
|
|
void EmitAssign (SIDE_T, char *, BufferManager *);
|
|
void EmitAssign (SIDE_T, char *, char *);
|
|
void EmitAssign (SIDE_T, char *, unsigned long);
|
|
|
|
void EmitMemset (SIDE_T, BufferManager *, unsigned long);
|
|
|
|
void EmitIf (SIDE_T, char *);
|
|
void EmitIf (SIDE_T, BufferManager *, char *);
|
|
void EmitElse (SIDE_T);
|
|
|
|
char * EmitTemp (SIDE_T, BOUND_T);
|
|
char * EmitTemp (SIDE_T, BufferManager *);
|
|
void InitLoop (SIDE_T, char *);
|
|
void InitLoop (SIDE_T, char *, char *);
|
|
void InitLoop (SIDE_T, char *, BOUND_T);
|
|
void InitLoop (SIDE_T, char *, BOUND_PAIR *, BufferManager *);
|
|
void InitLoopLowerPlusTotal( SIDE_T, char *, char * );
|
|
void ExitLoop (SIDE_T);
|
|
void ExitLoop (SIDE_T, BOUND_T);
|
|
|
|
void EmitBufferLength (SIDE_T, unsigned long);
|
|
void EmitGetBuffer (SIDE_T,
|
|
unsigned short,
|
|
BOOL,
|
|
BOOL fIdempotent,
|
|
BOOL fBroadcast,
|
|
BOOL fMaybe );
|
|
|
|
void EmitFreeBuffer (SIDE_T);
|
|
|
|
void CheckByteCount (SIDE_T, char *);
|
|
|
|
void CheckStubData (SIDE_T, BOOL);
|
|
|
|
void UserAlloc (SIDE_T, BufferManager *, BOOL);
|
|
void UserAlloc (node_skl *, NODE_T, SIDE_T, BufferManager *, BufferManager *);
|
|
void UserAlloc (SIDE_T, BufferManager *, unsigned long, unsigned long);
|
|
void UserFree (SIDE_T, BufferManager *);
|
|
|
|
void RpcAutomaticBind (SIDE_T);
|
|
void RpcPrimitiveBind (SIDE_T, char *, unsigned short);
|
|
void RpcContextBind (SIDE_T, char *, PARAM_T);
|
|
void RpcContextSend (SIDE_T, char *, char *, PARAM_T);
|
|
void RpcContextRecv (SIDE_T, char *, PARAM_T);
|
|
void ContextPrototype (char *);
|
|
void GenericPrototype (char *);
|
|
void GenericBindProlog (SIDE_T, PARAM_T, char *, char *, unsigned short);
|
|
void GenericBindEpilog (SIDE_T, PARAM_T, char *, char *);
|
|
|
|
void TransmitPrototype (char *, BufferManager *);
|
|
void XmitInto (SIDE_T, char *, BufferManager *, BufferManager *);
|
|
void XmitFrom (SIDE_T, char *, BufferManager *, BufferManager *);
|
|
void FreeInst (SIDE_T, char *, BufferManager *);
|
|
void FreeXmit (SIDE_T, char *, BufferManager *);
|
|
|
|
void InitUnion (SIDE_T);
|
|
void ExitUnion (SIDE_T);
|
|
void InitBranch (SIDE_T, BufferManager *);
|
|
void ExitBranch (SIDE_T);
|
|
void RecvBranch (SIDE_T, long, char *);
|
|
|
|
void PrintLabel (SIDE_T, char *, long);
|
|
void EnumOverflow (SIDE_T, BufferManager *);
|
|
void EnumCoersion (SIDE_T, BufferManager *);
|
|
|
|
void CheckBounds (SIDE_T, BOUND_PAIR *, BOUND_PAIR *);
|
|
void SizeString (SIDE_T, BufferManager *, unsigned short, BOOL);
|
|
void SizeBString (SIDE_T, BufferManager *, unsigned short, BOOL);
|
|
void SendString (SIDE_T, BufferManager *, unsigned short, BOOL);
|
|
void SendString (SIDE_T, BufferManager *, long, BOUND_PAIR *);
|
|
void SendBString (SIDE_T, BufferManager *, unsigned short, BOOL);
|
|
void SendBString (SIDE_T, BufferManager *, long, BOUND_PAIR *);
|
|
void SendAllocBounds (SIDE_T, BOUND_PAIR);
|
|
void SendValidBounds (SIDE_T, BOUND_PAIR);
|
|
void RecvByteString (SIDE_T, BufferManager *);
|
|
void RecvByteBString (SIDE_T, BufferManager *);
|
|
void RecvCharString (SIDE_T, BufferManager *, unsigned short);
|
|
void RecvCharBString (SIDE_T, BufferManager *, unsigned short);
|
|
void RecvAllocBounds (SIDE_T, char *); // need to know ptr_attr
|
|
void RecvValidBounds (SIDE_T, char *);
|
|
void PeekString (SIDE_T, unsigned short);
|
|
void PeekBString (SIDE_T, unsigned short);
|
|
|
|
void SizeStream (
|
|
SIDE_T,
|
|
BufferManager *,
|
|
BufferManager *);
|
|
|
|
void SendMemcpy (
|
|
SIDE_T,
|
|
unsigned short,
|
|
unsigned long,
|
|
unsigned long,
|
|
BOUND_PAIR *,
|
|
BufferManager *,
|
|
BOOL fCastToChar);
|
|
|
|
void SendAssign (
|
|
SIDE_T,
|
|
unsigned short,
|
|
unsigned long,
|
|
char *,
|
|
BufferManager *);
|
|
void SendAssign (
|
|
SIDE_T,
|
|
unsigned short,
|
|
unsigned long,
|
|
POINTER_T,
|
|
BufferManager *);
|
|
void SendStream (
|
|
SIDE_T,
|
|
BufferManager *,
|
|
BufferManager *);
|
|
void RecvAssign (
|
|
SIDE_T,
|
|
unsigned short,
|
|
unsigned long,
|
|
char *,
|
|
BufferManager *);
|
|
void RecvStream (
|
|
SIDE_T,
|
|
BufferManager *,
|
|
BufferManager *);
|
|
void RecvArray (
|
|
SIDE_T,
|
|
BufferManager *,
|
|
char *);
|
|
void RecvArray (
|
|
SIDE_T,
|
|
BufferManager *,
|
|
char *,
|
|
BOUND_T);
|
|
void RecvArray (
|
|
SIDE_T,
|
|
BufferManager *,
|
|
char *,
|
|
BOUND_PAIR *);
|
|
void PeekStream (
|
|
SIDE_T,
|
|
BOOL,
|
|
BufferManager *);
|
|
void InitAllocAlign (
|
|
void);
|
|
void ExitAllocAlign (
|
|
void);
|
|
|
|
void StorePointer (
|
|
SIDE_T,
|
|
char *);
|
|
|
|
void PatchPointer (
|
|
SIDE_T,
|
|
BufferManager *,
|
|
char *);
|
|
|
|
void DefineSizeNodeUnion (
|
|
SIDE_T,
|
|
char *,
|
|
BufferManager *,
|
|
char *);
|
|
|
|
void SizeNodeUnionProlog (
|
|
SIDE_T,
|
|
BOOL);
|
|
|
|
void SizeNodeUnionEpilog (
|
|
SIDE_T);
|
|
|
|
void DefineSizeTreeUnion (
|
|
SIDE_T,
|
|
char *,
|
|
BufferManager *,
|
|
char *);
|
|
|
|
void SizeTreeUnionProlog (
|
|
SIDE_T,
|
|
BOOL);
|
|
|
|
void SizeTreeUnionEpilog (
|
|
SIDE_T);
|
|
|
|
void DefineSendNodeUnion (
|
|
SIDE_T,
|
|
char *,
|
|
BufferManager *,
|
|
char *);
|
|
|
|
void SendNodeUnionProlog (
|
|
SIDE_T,
|
|
BOOL);
|
|
|
|
void SendNodeUnionEpilog (
|
|
SIDE_T);
|
|
|
|
void DefineSendTreeUnion (
|
|
SIDE_T,
|
|
char *,
|
|
BufferManager *,
|
|
char *);
|
|
|
|
void SendTreeUnionProlog (
|
|
SIDE_T,
|
|
BOOL);
|
|
|
|
void SendTreeUnionEpilog (
|
|
SIDE_T);
|
|
|
|
void DefineRecvNodeUnion (
|
|
SIDE_T,
|
|
char *,
|
|
BufferManager *,
|
|
char *);
|
|
|
|
void RecvNodeUnionProlog (
|
|
SIDE_T,
|
|
BOOL,
|
|
BOOL,
|
|
BOOL,
|
|
BOOL,
|
|
BOOL,
|
|
BOOL);
|
|
|
|
void RecvNodeUnionEpilog (
|
|
SIDE_T);
|
|
|
|
void DefineRecvTreeUnion (
|
|
SIDE_T,
|
|
char *,
|
|
BufferManager *,
|
|
BOOL,
|
|
char *);
|
|
|
|
void RecvTreeUnionProlog (
|
|
SIDE_T,
|
|
BOOL,
|
|
BOOL,
|
|
BOOL,
|
|
BOOL,
|
|
BOOL,
|
|
BOOL,
|
|
BOOL,
|
|
BOOL,
|
|
BOOL);
|
|
|
|
void RecvTreeUnionEpilog (
|
|
SIDE_T);
|
|
|
|
void DefinePeekNodeUnion (
|
|
SIDE_T,
|
|
char *,
|
|
BufferManager *);
|
|
|
|
void PeekNodeUnionProlog (
|
|
SIDE_T,
|
|
BOOL,
|
|
BOOL,
|
|
BOOL,
|
|
BOOL,
|
|
BOOL);
|
|
|
|
void PeekNodeUnionEpilog (
|
|
SIDE_T);
|
|
|
|
void DefinePeekTreeUnion (
|
|
SIDE_T,
|
|
char *,
|
|
BufferManager *);
|
|
|
|
void PeekTreeUnionProlog (
|
|
SIDE_T,
|
|
BOOL,
|
|
BOOL,
|
|
BOOL,
|
|
BOOL,
|
|
BOOL,
|
|
BOOL);
|
|
|
|
void PeekTreeUnionEpilog (
|
|
SIDE_T);
|
|
|
|
void DefineFreeTreeUnion (
|
|
SIDE_T,
|
|
char *,
|
|
BufferManager *,
|
|
char *);
|
|
|
|
void FreeTreeUnionProlog (
|
|
SIDE_T);
|
|
|
|
void FreeTreeUnionEpilog (
|
|
SIDE_T);
|
|
|
|
void DefineSizeNodeStruct (
|
|
SIDE_T,
|
|
char *,
|
|
char *);
|
|
|
|
void SizeNodeStructProlog (
|
|
SIDE_T,
|
|
BOOL);
|
|
|
|
void SizeNodeStructEpilog (
|
|
SIDE_T);
|
|
|
|
void DefineSizeTreeStruct (
|
|
SIDE_T,
|
|
char *,
|
|
char *);
|
|
|
|
void SizeTreeStructProlog (
|
|
SIDE_T,
|
|
BOOL);
|
|
|
|
void SizeTreeStructEpilog (
|
|
SIDE_T);
|
|
|
|
void DefineSendNodeStruct (
|
|
SIDE_T,
|
|
char *,
|
|
char *);
|
|
|
|
void SendNodeStructProlog (
|
|
SIDE_T,
|
|
BOOL);
|
|
|
|
void SendNodeStructEpilog (
|
|
SIDE_T);
|
|
|
|
void DefineSendTreeStruct (
|
|
SIDE_T,
|
|
char *,
|
|
char *);
|
|
|
|
void SendTreeStructProlog (
|
|
SIDE_T,
|
|
BOOL);
|
|
|
|
void SendTreeStructEpilog (
|
|
SIDE_T);
|
|
|
|
void DefineRecvNodeStruct (
|
|
SIDE_T,
|
|
char *,
|
|
BOOL,
|
|
char *);
|
|
|
|
void RecvNodeStructProlog (
|
|
SIDE_T,
|
|
BOOL,
|
|
BOOL,
|
|
BOOL,
|
|
BOOL,
|
|
BOOL,
|
|
BOOL);
|
|
|
|
void RecvNodeStructEpilog (
|
|
SIDE_T);
|
|
|
|
void DefineRecvTreeStruct (
|
|
SIDE_T,
|
|
char *,
|
|
BOOL,
|
|
char *);
|
|
|
|
void RecvTreeStructProlog (
|
|
SIDE_T,
|
|
BOOL,
|
|
BOOL,
|
|
BOOL,
|
|
BOOL,
|
|
BOOL,
|
|
BOOL,
|
|
BOOL,
|
|
BOOL,
|
|
BOOL);
|
|
|
|
void RecvTreeStructEpilog (
|
|
SIDE_T);
|
|
|
|
void DefinePeekNodeStruct (
|
|
SIDE_T,
|
|
char *,
|
|
BOOL);
|
|
|
|
void PeekNodeStructProlog (
|
|
SIDE_T,
|
|
BOOL,
|
|
BOOL,
|
|
BOOL,
|
|
BOOL,
|
|
BOOL);
|
|
|
|
void PeekNodeStructEpilog (
|
|
SIDE_T);
|
|
|
|
void DefinePeekTreeStruct (
|
|
SIDE_T,
|
|
char *,
|
|
BOOL);
|
|
|
|
void PeekTreeStructProlog (
|
|
SIDE_T,
|
|
BOOL,
|
|
BOOL,
|
|
BOOL,
|
|
BOOL,
|
|
BOOL,
|
|
BOOL);
|
|
|
|
void PeekTreeStructEpilog (
|
|
SIDE_T);
|
|
|
|
void DefineFreeTreeStruct (
|
|
SIDE_T,
|
|
char *,
|
|
char *);
|
|
|
|
void FreeTreeStructProlog (
|
|
SIDE_T);
|
|
|
|
void FreeTreeStructEpilog (
|
|
SIDE_T);
|
|
|
|
void InvokeSizeNodeUnion (
|
|
SIDE_T,
|
|
char *,
|
|
BufferManager *,
|
|
BufferManager *,
|
|
char *);
|
|
|
|
void InvokeSizeTreeUnion (
|
|
SIDE_T,
|
|
char *,
|
|
BufferManager *,
|
|
BufferManager *,
|
|
char *);
|
|
|
|
void InvokeSendNodeUnion (
|
|
SIDE_T,
|
|
char *,
|
|
BufferManager *,
|
|
BufferManager *,
|
|
char *);
|
|
|
|
void InvokeSendTreeUnion (
|
|
SIDE_T,
|
|
char *,
|
|
BufferManager *,
|
|
BufferManager *,
|
|
char *);
|
|
|
|
void InvokeRecvNodeUnion (
|
|
SIDE_T,
|
|
char *,
|
|
BufferManager *,
|
|
BufferManager *,
|
|
unsigned long,
|
|
char *);
|
|
|
|
void InvokeRecvTreeUnion (
|
|
SIDE_T,
|
|
char *,
|
|
BufferManager *,
|
|
BufferManager *,
|
|
BOOL,
|
|
BOOL,
|
|
unsigned long,
|
|
char *);
|
|
|
|
void InvokePeekNodeUnion (
|
|
SIDE_T,
|
|
char *,
|
|
// BufferManager *,
|
|
unsigned long);
|
|
|
|
void InvokePeekTreeUnion (
|
|
SIDE_T,
|
|
char *,
|
|
// BufferManager *,
|
|
BOOL,
|
|
unsigned long);
|
|
|
|
void InvokeFreeTreeUnion (
|
|
SIDE_T,
|
|
char *,
|
|
BufferManager *,
|
|
BufferManager *,
|
|
char *);
|
|
|
|
void InvokeSizeNodeStruct (
|
|
SIDE_T,
|
|
char *,
|
|
BufferManager *,
|
|
char *);
|
|
|
|
void InvokeSizeTreeStruct (
|
|
SIDE_T,
|
|
char *,
|
|
BufferManager *,
|
|
char *);
|
|
|
|
void InvokeSendNodeStruct (
|
|
SIDE_T,
|
|
char *,
|
|
BufferManager *,
|
|
unsigned short,
|
|
unsigned long,
|
|
char *);
|
|
|
|
void InvokeSendTreeStruct (
|
|
SIDE_T,
|
|
char *,
|
|
BufferManager *,
|
|
char *);
|
|
|
|
void InvokeRecvNodeStruct (
|
|
SIDE_T,
|
|
char *,
|
|
BufferManager *,
|
|
BOOL,
|
|
BOOL,
|
|
BOOL,
|
|
char *);
|
|
|
|
void InvokeRecvTreeStruct (
|
|
SIDE_T,
|
|
char *,
|
|
BufferManager *,
|
|
BOOL,
|
|
BOOL,
|
|
char *);
|
|
|
|
void InvokePeekNodeStruct (
|
|
SIDE_T,
|
|
char *,
|
|
BOOL,
|
|
BOOL,
|
|
BOOL);
|
|
|
|
void InvokePeekTreeStruct (
|
|
SIDE_T,
|
|
char *,
|
|
BOOL,
|
|
BOOL,
|
|
BOOL);
|
|
|
|
void InvokeFreeTreeStruct (
|
|
SIDE_T,
|
|
char *,
|
|
BufferManager *,
|
|
char *);
|
|
|
|
void Print (SIDE_T, char *);
|
|
void Print (SIDE_T, BufferManager *);
|
|
|
|
void WorstCase (void);
|
|
void Alignment (unsigned short);
|
|
void Alignment (SIDE_T, char *);
|
|
void Alignment (SIDE_T, char *, unsigned short);
|
|
#if 1
|
|
void ForceAlignForAllocTotal( SIDE_T, char *, unsigned short );
|
|
#endif // 1
|
|
void InitAlignment (unsigned short);
|
|
void ExitAlignment (void);
|
|
void Increment (unsigned long);
|
|
void Increment (SIDE_T, char *, unsigned long);
|
|
void Increment (SIDE_T, char *, BufferManager *);
|
|
void Increment (SIDE_T, char *, unsigned long, unsigned long, BOUND_T);
|
|
void Increment (SIDE_T, char *, unsigned long, unsigned long, BOUND_PAIR *);
|
|
void Increment( SIDE_T, BufferManager *, char * );
|
|
#if 1
|
|
void SetupForGenHdlExceptions( PARAM_T Dir, char *pHTName, char *pN )
|
|
{
|
|
GenHdlDirection = Dir;
|
|
pGenHdlTypeName = pHTName;
|
|
pGenHdlName = pN;
|
|
fNeedsGenHdlExceptions = TRUE;
|
|
}
|
|
|
|
void ResetGenHdlExceptions()
|
|
{
|
|
fNeedsGenHdlExceptions = FALSE;
|
|
}
|
|
|
|
BOOL NeedsGenHdlExceptions()
|
|
{
|
|
return fNeedsGenHdlExceptions;
|
|
}
|
|
|
|
char * GetGenHdlTypeName()
|
|
{
|
|
return pGenHdlTypeName;
|
|
}
|
|
|
|
char * GetGenHdlName()
|
|
{
|
|
return pGenHdlName;
|
|
}
|
|
|
|
PARAM_T GetGenHdlDirection()
|
|
{
|
|
return GenHdlDirection;
|
|
}
|
|
|
|
void GenHdlInitCore();
|
|
|
|
void SetHasExplicitErrorStatus()
|
|
{
|
|
fHasExplicitErrorStatus = TRUE;
|
|
}
|
|
void ResetHasExplicitErrorStatus()
|
|
{
|
|
fHasExplicitErrorStatus = FALSE;
|
|
}
|
|
BOOL HasExplicitErrorStatus()
|
|
{
|
|
return fHasExplicitErrorStatus;
|
|
}
|
|
unsigned short GetZeePee()
|
|
{
|
|
return ZeePee;
|
|
}
|
|
|
|
void VoidIt( SIDE_T, char *);
|
|
|
|
void CheckOutConfArraySize( SIDE_T, BufferManager * );
|
|
|
|
void SendAssignForDouble ( SIDE_T, unsigned short,
|
|
unsigned long, char *, BufferManager *);
|
|
void InitIndent( SIDE_T s )
|
|
{
|
|
aOutputHandles[ s ]->InitIndent();
|
|
}
|
|
#endif // 1
|
|
} ;
|
|
|
|
extern void CreateVersionMangling( char *, unsigned short, unsigned short );
|
|
|
|
#endif // __OUTPUT_HXX__
|