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

#ifndef SOM_Module_somestio_somStream_defined
#define SOM_Module_somestio_somStream_defined 1

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

#include <som.h>

/*
 * Start of bindings for IDL types
 */

#ifndef SOMClass
    #define SOMClass SOMObject
#endif /* SOMClass */
#ifndef Container
    #define Container SOMObject
#endif /* Container */
#ifndef ExtendedNaming_PropertyBindingIterator
    #define ExtendedNaming_PropertyBindingIterator SOMObject
#endif /* ExtendedNaming_PropertyBindingIterator */
#ifndef ExtendedNaming_PropertyIterator
    #define ExtendedNaming_PropertyIterator SOMObject
#endif /* ExtendedNaming_PropertyIterator */
#ifndef ExtendedNaming_IndexIterator
    #define ExtendedNaming_IndexIterator SOMObject
#endif /* ExtendedNaming_IndexIterator */
#ifndef SOMDObject
    #define SOMDObject SOMObject
#endif /* SOMDObject */
#ifndef Principal
    #define Principal SOMObject
#endif /* Principal */
#ifndef ImplementationDef
    #define ImplementationDef SOMObject
#endif /* ImplementationDef */
#ifndef InterfaceDef
    #define InterfaceDef SOMObject
#endif /* InterfaceDef */
#ifndef NVList
    #define NVList SOMObject
#endif /* NVList */
#ifndef Context
    #define Context SOMObject
#endif /* Context */
#ifndef Request
    #define Request SOMObject
#endif /* Request */
#ifndef CosObjectIdentity_IdentifiableObject
    #define CosObjectIdentity_IdentifiableObject SOMObject
#endif /* CosObjectIdentity_IdentifiableObject */
#ifndef CosStream_Streamable
    #define CosStream_Streamable SOMObject
#endif /* CosStream_Streamable */
#ifndef CosStream_StreamableFactory
    #define CosStream_StreamableFactory SOMObject
#endif /* CosStream_StreamableFactory */
#ifndef _IDL_SEQUENCE_octet_defined
#define _IDL_SEQUENCE_octet_defined
typedef struct {
    unsigned long _maximum;
    unsigned long _length;
    octet *_buffer;
} _IDL_SEQUENCE_octet;
#endif /* _IDL_SEQUENCE_octet_defined */ 
#ifndef _IDL_SEQUENCE_octet_defined
#define _IDL_SEQUENCE_octet_defined
typedef struct {
    unsigned long _maximum;
    unsigned long _length;
    octet *_buffer;
} _IDL_SEQUENCE_octet;
#endif /* _IDL_SEQUENCE_octet_defined */ 
typedef
_IDL_SEQUENCE_octet somStream_seq_octet;
/*
 *  This sequence type is used whenever a block of bytes needs to be passed as
 *  a parameter or returned.
 */

#define somStream_GENERAL 54000 /* 54000+0 */
/*
 *  This is used when the exception id (name) is sufficiently descriptive.
 */

#define somStream_SEMAPHORE_CREATE 54001 /* 54000+1 */
#define somStream_SEMAPHORE_REQUEST 54002 /* 54000+2 */
#define somStream_SEMAPHORE_RELEASE 54003 /* 54000+3 */
/*
 *  an error occurred while using a semaphore.
 */

#define somStream_FACTORY_FINDER_LOAD 54004 /* 54000+4 */
/*
 *  unable to load somLifeCycle DLL
 */

#define somStream_FACTORY_FINDER_NEW 54005 /* 54000+5 */
/*
 *  unable to create a new factory finder
 */

#define somStream_FACTORY_FINDER_CLASS 54006 /* 54000+6 */
/*
 *  unable to get the class of the specified factory finder
 */

#define somStream_FACTORY_FINDER_METHOD 54007 /* 54000+7 */
/*
 *  unable to locate the 'find_factory' method in the class.
 */

#define somStream_FIND_FACTORY 54008 /* 54000+8 */
/*
 *  the find_factory method failed.
 */

#define somStream_NEW_NOT_STREAMABLE 54009 /* 54000+9 */
/*
 *  the new object does not support the CosStream::Streamable interface.
 */

#define somStream_OBJ_NOT_STREAMABLE 54010 /* 54000+10 */
/*
 *  the object does not support the CosStream::Streamable interface.
 */

#define somStream_FACTORY_FINDER 54011 /* 54000+11 */
/*
 *  the factory finder parameter is not correct.
 */

#define somStream_METHOD_IS_ABSTRACT 54012 /* 54000+12 */
/*
 *  The method is not implemented.
 */

#define somStream_OBJ_REPEAT_REF_MISMATCH 54013 /* 54000+13 */
/*
 *  The parm to internalize_existing does not match repeat ref in stream.
 */

#define somStream_UNABLE_TO_CREATE_STREAMIO 54014 /* 54000+14 */
/*
 *  The stream is unable to create a default streamio object.
 */

#define somStream_STREAM_CREATE_WITH_TYPES 54015 /* 54000+15 */
/*
 *  An error occured while creating a stream-streamio with the StreamFactory
 */

#define somStream_UNABLE_TO_CREATE_STREAM 54016 /* 54000+16 */
/*
 *  The streamio is unable to create a default stream object.
 */

#define somStream_INVALID_KEY_LENGTH 54017 /* 54000+17 */
/*
 *  The parameter to write_key or write_object_tag is not valid.
 */

#define somStream_ALREADY_STREAMED_PARMS 54018 /* 54000+18 */
/*
 *  Parameters to already_streamed are not valid.
 */

#define somStream_BAD_BUFFER_PARAMETER 54019 /* 54000+19 */
/*
 *  The parm to set_buffer has invalid length or the header is incorrect.
 */

#define somStream_ICONV_FAILURE 54020 /* 54000+20 */
/*
 *  An error occurred to convert the codepage of the stream data.
 */

#define somStream_READ_PASSED_END_OF_STREAM 54021 /* 54000+21 */
/*
 *  You attempted to read passed the end of the data in the streamio.
 */

#define somStream_REPEAT_REF_NUMBER_NOT_FOUND 54022 /* 54000+22 */
/*
 *  A repeat ref was read from the stream that has an invalid object number
 */

#define somStream_OBJ_NIL_DATA_MISMATCH 54023 /* 54000+23 */
/*
 *  A nil-data tag is found in the stream, but a non-nil object parm was passed.
 */

#define somStream_OBJ_STRINGIFIED_REF_MISMATCH 54024 /* 54000+24 */
/*
 *  A stringified ref found in the stream, but a non-nil object parm was passed.
 */

#define somStream_FOUND_UNKNOWN_TAG 54025 /* 54000+25 */
/*
 *  An unknown tag value is found in the stream.
 */

#define somStream_UNABLE_TO_READ_SHORT 54026 /* 54000+26 */
#define somStream_UNABLE_TO_READ_LONG 54027 /* 54000+27 */
#define somStream_UNABLE_TO_READ_USHORT 54028 /* 54000+28 */
#define somStream_UNABLE_TO_READ_ULONG 54029 /* 54000+29 */
#define somStream_UNABLE_TO_READ_STRING 54030 /* 54000+30 */
#define somStream_UNABLE_TO_READ_CHAR 54031 /* 54000+31 */
#define somStream_UNABLE_TO_READ_FLOAT 54032 /* 54000+32 */
#define somStream_UNABLE_TO_READ_DOUBLE 54033 /* 54000+33 */
#define somStream_UNABLE_TO_READ_OCTET 54034 /* 54000+34 */
#define somStream_UNABLE_TO_READ_BOOLEAN 54035 /* 54000+35 */
#define somStream_UNABLE_TO_READ_OBJECT 54036 /* 54000+36 */
/*
 *  The stream does not contain the correct delimiter for the specified data type.
 */

#define somStream_READ_FROM_EMPTY_STREAM 54037 /* 54000+37 */
/*
 *  You tried to read data from a streamio that is empty.
 */


#ifndef SOM_DONT_USE_SHORT_NAMES

#ifndef SOM_DONT_USE_SHORT_NAMES
#ifndef SOMTGD_seq_octet
    #ifdef seq_octet
        #undef seq_octet
        #define SOMTGD_seq_octet 1
    #else
        #define seq_octet somStream_seq_octet
    #endif /* seq_octet */
#endif /* SOMTGD_seq_octet */
#endif /* SOM_DONT_USE_SHORT_NAMES */
#ifndef SOMTGD_GENERAL
    #ifdef GENERAL
        #undef GENERAL
        #define SOMTGD_GENERAL 1
    #else
        #define GENERAL somStream_GENERAL
    #endif /* GENERAL */
#endif /* SOMTGD_GENERAL */
#ifndef SOMTGD_SEMAPHORE_CREATE
    #ifdef SEMAPHORE_CREATE
        #undef SEMAPHORE_CREATE
        #define SOMTGD_SEMAPHORE_CREATE 1
    #else
        #define SEMAPHORE_CREATE somStream_SEMAPHORE_CREATE
    #endif /* SEMAPHORE_CREATE */
#endif /* SOMTGD_SEMAPHORE_CREATE */
#ifndef SOMTGD_SEMAPHORE_REQUEST
    #ifdef SEMAPHORE_REQUEST
        #undef SEMAPHORE_REQUEST
        #define SOMTGD_SEMAPHORE_REQUEST 1
    #else
        #define SEMAPHORE_REQUEST somStream_SEMAPHORE_REQUEST
    #endif /* SEMAPHORE_REQUEST */
#endif /* SOMTGD_SEMAPHORE_REQUEST */
#ifndef SOMTGD_SEMAPHORE_RELEASE
    #ifdef SEMAPHORE_RELEASE
        #undef SEMAPHORE_RELEASE
        #define SOMTGD_SEMAPHORE_RELEASE 1
    #else
        #define SEMAPHORE_RELEASE somStream_SEMAPHORE_RELEASE
    #endif /* SEMAPHORE_RELEASE */
#endif /* SOMTGD_SEMAPHORE_RELEASE */
#ifndef SOMTGD_FACTORY_FINDER_LOAD
    #ifdef FACTORY_FINDER_LOAD
        #undef FACTORY_FINDER_LOAD
        #define SOMTGD_FACTORY_FINDER_LOAD 1
    #else
        #define FACTORY_FINDER_LOAD somStream_FACTORY_FINDER_LOAD
    #endif /* FACTORY_FINDER_LOAD */
#endif /* SOMTGD_FACTORY_FINDER_LOAD */
#ifndef SOMTGD_FACTORY_FINDER_NEW
    #ifdef FACTORY_FINDER_NEW
        #undef FACTORY_FINDER_NEW
        #define SOMTGD_FACTORY_FINDER_NEW 1
    #else
        #define FACTORY_FINDER_NEW somStream_FACTORY_FINDER_NEW
    #endif /* FACTORY_FINDER_NEW */
#endif /* SOMTGD_FACTORY_FINDER_NEW */
#ifndef SOMTGD_FACTORY_FINDER_CLASS
    #ifdef FACTORY_FINDER_CLASS
        #undef FACTORY_FINDER_CLASS
        #define SOMTGD_FACTORY_FINDER_CLASS 1
    #else
        #define FACTORY_FINDER_CLASS somStream_FACTORY_FINDER_CLASS
    #endif /* FACTORY_FINDER_CLASS */
#endif /* SOMTGD_FACTORY_FINDER_CLASS */
#ifndef SOMTGD_FACTORY_FINDER_METHOD
    #ifdef FACTORY_FINDER_METHOD
        #undef FACTORY_FINDER_METHOD
        #define SOMTGD_FACTORY_FINDER_METHOD 1
    #else
        #define FACTORY_FINDER_METHOD somStream_FACTORY_FINDER_METHOD
    #endif /* FACTORY_FINDER_METHOD */
#endif /* SOMTGD_FACTORY_FINDER_METHOD */
#ifndef SOMTGD_FIND_FACTORY
    #ifdef FIND_FACTORY
        #undef FIND_FACTORY
        #define SOMTGD_FIND_FACTORY 1
    #else
        #define FIND_FACTORY somStream_FIND_FACTORY
    #endif /* FIND_FACTORY */
#endif /* SOMTGD_FIND_FACTORY */
#ifndef SOMTGD_NEW_NOT_STREAMABLE
    #ifdef NEW_NOT_STREAMABLE
        #undef NEW_NOT_STREAMABLE
        #define SOMTGD_NEW_NOT_STREAMABLE 1
    #else
        #define NEW_NOT_STREAMABLE somStream_NEW_NOT_STREAMABLE
    #endif /* NEW_NOT_STREAMABLE */
#endif /* SOMTGD_NEW_NOT_STREAMABLE */
#ifndef SOMTGD_OBJ_NOT_STREAMABLE
    #ifdef OBJ_NOT_STREAMABLE
        #undef OBJ_NOT_STREAMABLE
        #define SOMTGD_OBJ_NOT_STREAMABLE 1
    #else
        #define OBJ_NOT_STREAMABLE somStream_OBJ_NOT_STREAMABLE
    #endif /* OBJ_NOT_STREAMABLE */
#endif /* SOMTGD_OBJ_NOT_STREAMABLE */
#ifndef SOMTGD_FACTORY_FINDER
    #ifdef FACTORY_FINDER
        #undef FACTORY_FINDER
        #define SOMTGD_FACTORY_FINDER 1
    #else
        #define FACTORY_FINDER somStream_FACTORY_FINDER
    #endif /* FACTORY_FINDER */
#endif /* SOMTGD_FACTORY_FINDER */
#ifndef SOMTGD_METHOD_IS_ABSTRACT
    #ifdef METHOD_IS_ABSTRACT
        #undef METHOD_IS_ABSTRACT
        #define SOMTGD_METHOD_IS_ABSTRACT 1
    #else
        #define METHOD_IS_ABSTRACT somStream_METHOD_IS_ABSTRACT
    #endif /* METHOD_IS_ABSTRACT */
#endif /* SOMTGD_METHOD_IS_ABSTRACT */
#ifndef SOMTGD_OBJ_REPEAT_REF_MISMATCH
    #ifdef OBJ_REPEAT_REF_MISMATCH
        #undef OBJ_REPEAT_REF_MISMATCH
        #define SOMTGD_OBJ_REPEAT_REF_MISMATCH 1
    #else
        #define OBJ_REPEAT_REF_MISMATCH somStream_OBJ_REPEAT_REF_MISMATCH
    #endif /* OBJ_REPEAT_REF_MISMATCH */
#endif /* SOMTGD_OBJ_REPEAT_REF_MISMATCH */
#ifndef SOMTGD_UNABLE_TO_CREATE_STREAMIO
    #ifdef UNABLE_TO_CREATE_STREAMIO
        #undef UNABLE_TO_CREATE_STREAMIO
        #define SOMTGD_UNABLE_TO_CREATE_STREAMIO 1
    #else
        #define UNABLE_TO_CREATE_STREAMIO somStream_UNABLE_TO_CREATE_STREAMIO
    #endif /* UNABLE_TO_CREATE_STREAMIO */
#endif /* SOMTGD_UNABLE_TO_CREATE_STREAMIO */
#ifndef SOMTGD_STREAM_CREATE_WITH_TYPES
    #ifdef STREAM_CREATE_WITH_TYPES
        #undef STREAM_CREATE_WITH_TYPES
        #define SOMTGD_STREAM_CREATE_WITH_TYPES 1
    #else
        #define STREAM_CREATE_WITH_TYPES somStream_STREAM_CREATE_WITH_TYPES
    #endif /* STREAM_CREATE_WITH_TYPES */
#endif /* SOMTGD_STREAM_CREATE_WITH_TYPES */
#ifndef SOMTGD_UNABLE_TO_CREATE_STREAM
    #ifdef UNABLE_TO_CREATE_STREAM
        #undef UNABLE_TO_CREATE_STREAM
        #define SOMTGD_UNABLE_TO_CREATE_STREAM 1
    #else
        #define UNABLE_TO_CREATE_STREAM somStream_UNABLE_TO_CREATE_STREAM
    #endif /* UNABLE_TO_CREATE_STREAM */
#endif /* SOMTGD_UNABLE_TO_CREATE_STREAM */
#ifndef SOMTGD_INVALID_KEY_LENGTH
    #ifdef INVALID_KEY_LENGTH
        #undef INVALID_KEY_LENGTH
        #define SOMTGD_INVALID_KEY_LENGTH 1
    #else
        #define INVALID_KEY_LENGTH somStream_INVALID_KEY_LENGTH
    #endif /* INVALID_KEY_LENGTH */
#endif /* SOMTGD_INVALID_KEY_LENGTH */
#ifndef SOMTGD_ALREADY_STREAMED_PARMS
    #ifdef ALREADY_STREAMED_PARMS
        #undef ALREADY_STREAMED_PARMS
        #define SOMTGD_ALREADY_STREAMED_PARMS 1
    #else
        #define ALREADY_STREAMED_PARMS somStream_ALREADY_STREAMED_PARMS
    #endif /* ALREADY_STREAMED_PARMS */
#endif /* SOMTGD_ALREADY_STREAMED_PARMS */
#ifndef SOMTGD_BAD_BUFFER_PARAMETER
    #ifdef BAD_BUFFER_PARAMETER
        #undef BAD_BUFFER_PARAMETER
        #define SOMTGD_BAD_BUFFER_PARAMETER 1
    #else
        #define BAD_BUFFER_PARAMETER somStream_BAD_BUFFER_PARAMETER
    #endif /* BAD_BUFFER_PARAMETER */
#endif /* SOMTGD_BAD_BUFFER_PARAMETER */
#ifndef SOMTGD_ICONV_FAILURE
    #ifdef ICONV_FAILURE
        #undef ICONV_FAILURE
        #define SOMTGD_ICONV_FAILURE 1
    #else
        #define ICONV_FAILURE somStream_ICONV_FAILURE
    #endif /* ICONV_FAILURE */
#endif /* SOMTGD_ICONV_FAILURE */
#ifndef SOMTGD_READ_PASSED_END_OF_STREAM
    #ifdef READ_PASSED_END_OF_STREAM
        #undef READ_PASSED_END_OF_STREAM
        #define SOMTGD_READ_PASSED_END_OF_STREAM 1
    #else
        #define READ_PASSED_END_OF_STREAM somStream_READ_PASSED_END_OF_STREAM
    #endif /* READ_PASSED_END_OF_STREAM */
#endif /* SOMTGD_READ_PASSED_END_OF_STREAM */
#ifndef SOMTGD_REPEAT_REF_NUMBER_NOT_FOUND
    #ifdef REPEAT_REF_NUMBER_NOT_FOUND
        #undef REPEAT_REF_NUMBER_NOT_FOUND
        #define SOMTGD_REPEAT_REF_NUMBER_NOT_FOUND 1
    #else
        #define REPEAT_REF_NUMBER_NOT_FOUND somStream_REPEAT_REF_NUMBER_NOT_FOUND
    #endif /* REPEAT_REF_NUMBER_NOT_FOUND */
#endif /* SOMTGD_REPEAT_REF_NUMBER_NOT_FOUND */
#ifndef SOMTGD_OBJ_NIL_DATA_MISMATCH
    #ifdef OBJ_NIL_DATA_MISMATCH
        #undef OBJ_NIL_DATA_MISMATCH
        #define SOMTGD_OBJ_NIL_DATA_MISMATCH 1
    #else
        #define OBJ_NIL_DATA_MISMATCH somStream_OBJ_NIL_DATA_MISMATCH
    #endif /* OBJ_NIL_DATA_MISMATCH */
#endif /* SOMTGD_OBJ_NIL_DATA_MISMATCH */
#ifndef SOMTGD_OBJ_STRINGIFIED_REF_MISMATCH
    #ifdef OBJ_STRINGIFIED_REF_MISMATCH
        #undef OBJ_STRINGIFIED_REF_MISMATCH
        #define SOMTGD_OBJ_STRINGIFIED_REF_MISMATCH 1
    #else
        #define OBJ_STRINGIFIED_REF_MISMATCH somStream_OBJ_STRINGIFIED_REF_MISMATCH
    #endif /* OBJ_STRINGIFIED_REF_MISMATCH */
#endif /* SOMTGD_OBJ_STRINGIFIED_REF_MISMATCH */
#ifndef SOMTGD_FOUND_UNKNOWN_TAG
    #ifdef FOUND_UNKNOWN_TAG
        #undef FOUND_UNKNOWN_TAG
        #define SOMTGD_FOUND_UNKNOWN_TAG 1
    #else
        #define FOUND_UNKNOWN_TAG somStream_FOUND_UNKNOWN_TAG
    #endif /* FOUND_UNKNOWN_TAG */
#endif /* SOMTGD_FOUND_UNKNOWN_TAG */
#ifndef SOMTGD_UNABLE_TO_READ_SHORT
    #ifdef UNABLE_TO_READ_SHORT
        #undef UNABLE_TO_READ_SHORT
        #define SOMTGD_UNABLE_TO_READ_SHORT 1
    #else
        #define UNABLE_TO_READ_SHORT somStream_UNABLE_TO_READ_SHORT
    #endif /* UNABLE_TO_READ_SHORT */
#endif /* SOMTGD_UNABLE_TO_READ_SHORT */
#ifndef SOMTGD_UNABLE_TO_READ_LONG
    #ifdef UNABLE_TO_READ_LONG
        #undef UNABLE_TO_READ_LONG
        #define SOMTGD_UNABLE_TO_READ_LONG 1
    #else
        #define UNABLE_TO_READ_LONG somStream_UNABLE_TO_READ_LONG
    #endif /* UNABLE_TO_READ_LONG */
#endif /* SOMTGD_UNABLE_TO_READ_LONG */
#ifndef SOMTGD_UNABLE_TO_READ_USHORT
    #ifdef UNABLE_TO_READ_USHORT
        #undef UNABLE_TO_READ_USHORT
        #define SOMTGD_UNABLE_TO_READ_USHORT 1
    #else
        #define UNABLE_TO_READ_USHORT somStream_UNABLE_TO_READ_USHORT
    #endif /* UNABLE_TO_READ_USHORT */
#endif /* SOMTGD_UNABLE_TO_READ_USHORT */
#ifndef SOMTGD_UNABLE_TO_READ_ULONG
    #ifdef UNABLE_TO_READ_ULONG
        #undef UNABLE_TO_READ_ULONG
        #define SOMTGD_UNABLE_TO_READ_ULONG 1
    #else
        #define UNABLE_TO_READ_ULONG somStream_UNABLE_TO_READ_ULONG
    #endif /* UNABLE_TO_READ_ULONG */
#endif /* SOMTGD_UNABLE_TO_READ_ULONG */
#ifndef SOMTGD_UNABLE_TO_READ_STRING
    #ifdef UNABLE_TO_READ_STRING
        #undef UNABLE_TO_READ_STRING
        #define SOMTGD_UNABLE_TO_READ_STRING 1
    #else
        #define UNABLE_TO_READ_STRING somStream_UNABLE_TO_READ_STRING
    #endif /* UNABLE_TO_READ_STRING */
#endif /* SOMTGD_UNABLE_TO_READ_STRING */
#ifndef SOMTGD_UNABLE_TO_READ_CHAR
    #ifdef UNABLE_TO_READ_CHAR
        #undef UNABLE_TO_READ_CHAR
        #define SOMTGD_UNABLE_TO_READ_CHAR 1
    #else
        #define UNABLE_TO_READ_CHAR somStream_UNABLE_TO_READ_CHAR
    #endif /* UNABLE_TO_READ_CHAR */
#endif /* SOMTGD_UNABLE_TO_READ_CHAR */
#ifndef SOMTGD_UNABLE_TO_READ_FLOAT
    #ifdef UNABLE_TO_READ_FLOAT
        #undef UNABLE_TO_READ_FLOAT
        #define SOMTGD_UNABLE_TO_READ_FLOAT 1
    #else
        #define UNABLE_TO_READ_FLOAT somStream_UNABLE_TO_READ_FLOAT
    #endif /* UNABLE_TO_READ_FLOAT */
#endif /* SOMTGD_UNABLE_TO_READ_FLOAT */
#ifndef SOMTGD_UNABLE_TO_READ_DOUBLE
    #ifdef UNABLE_TO_READ_DOUBLE
        #undef UNABLE_TO_READ_DOUBLE
        #define SOMTGD_UNABLE_TO_READ_DOUBLE 1
    #else
        #define UNABLE_TO_READ_DOUBLE somStream_UNABLE_TO_READ_DOUBLE
    #endif /* UNABLE_TO_READ_DOUBLE */
#endif /* SOMTGD_UNABLE_TO_READ_DOUBLE */
#ifndef SOMTGD_UNABLE_TO_READ_OCTET
    #ifdef UNABLE_TO_READ_OCTET
        #undef UNABLE_TO_READ_OCTET
        #define SOMTGD_UNABLE_TO_READ_OCTET 1
    #else
        #define UNABLE_TO_READ_OCTET somStream_UNABLE_TO_READ_OCTET
    #endif /* UNABLE_TO_READ_OCTET */
#endif /* SOMTGD_UNABLE_TO_READ_OCTET */
#ifndef SOMTGD_UNABLE_TO_READ_BOOLEAN
    #ifdef UNABLE_TO_READ_BOOLEAN
        #undef UNABLE_TO_READ_BOOLEAN
        #define SOMTGD_UNABLE_TO_READ_BOOLEAN 1
    #else
        #define UNABLE_TO_READ_BOOLEAN somStream_UNABLE_TO_READ_BOOLEAN
    #endif /* UNABLE_TO_READ_BOOLEAN */
#endif /* SOMTGD_UNABLE_TO_READ_BOOLEAN */
#ifndef SOMTGD_UNABLE_TO_READ_OBJECT
    #ifdef UNABLE_TO_READ_OBJECT
        #undef UNABLE_TO_READ_OBJECT
        #define SOMTGD_UNABLE_TO_READ_OBJECT 1
    #else
        #define UNABLE_TO_READ_OBJECT somStream_UNABLE_TO_READ_OBJECT
    #endif /* UNABLE_TO_READ_OBJECT */
#endif /* SOMTGD_UNABLE_TO_READ_OBJECT */
#ifndef SOMTGD_READ_FROM_EMPTY_STREAM
    #ifdef READ_FROM_EMPTY_STREAM
        #undef READ_FROM_EMPTY_STREAM
        #define SOMTGD_READ_FROM_EMPTY_STREAM 1
    #else
        #define READ_FROM_EMPTY_STREAM somStream_READ_FROM_EMPTY_STREAM
    #endif /* READ_FROM_EMPTY_STREAM */
#endif /* SOMTGD_READ_FROM_EMPTY_STREAM */
#endif /* SOM_DONT_USE_SHORT_NAMES */

/*
 * End of bindings for IDL types.
 */
#endif /* SOM_Module_somestio_somStream_defined */

#ifndef SOM_somStream_StreamIO_h
#define SOM_somStream_StreamIO_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>
#ifndef SOM_IMPORTEXPORT_somestrm_somestio
#ifdef SOM_DLL_somestrm
	/* export semantics */
	#if defined(SOM_DEFFILE_somestrm)\
	||(defined(SOM_DEFFILE_BY_DEFAULT)&&!defined(SOM_NODEFFILE_somestrm))\
	|| !defined(SOM_Module_somestio_Source)
	#define SOM_IMPORTEXPORT_somestrm_somestio
	#else
	#define SOM_IMPORTEXPORT_somestrm_somestio SOMDLLEXPORT
	#endif
#else
	#define SOM_IMPORTEXPORT_somestrm_somestio SOMDLLIMPORT
#endif
#endif

/*
 * -- 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 somStream_StreamIO
#define somStream_StreamIO SOMObject
#endif
/*
 *  The StreamIO interface defines a semi-abstract class.
 *  No objects of this class should be created, instead
 *  use one of the stream classes derived from the StreamIO class.
 *  The StreamIO interface implements the write_object and read_object methods
 *  and delegates them to Stream methods externalize_ref and internalize
 *  respectively.
 *  All other methods from CosStream::StreamIO must be implemented by subclasses.
 *  Subclasses must also implement some methods introduced by this StreamIO
 *  as noted in the comments below.
 *  Do not override the read/write_object/_value methods here.
 *  Instead, if necessary, you should override the Stream class methods.
 * 
 */

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

/*
 * Start of bindings for IDL types
 */

typedef unsigned long somStream_StreamIO_object_tags;
/*
 *  These tags have values 1..4.  Other tags are also allowed and they are
 *  defined by the Stream implementation.
 *  D23362
 *     readonly attribute SOMObject stream;
 *  If the streamio is created by the StreamFactory, then this attribute
 *  will point to the stream object that "owns" this streamio.  The calls
 *  to read/write_object are delegated to the containing stream.
 *  If the _get_stream() method is called, and the stream attribute is not
 *  set to anything (NULL), then a new somExternalization::Stream object is
 *  created and returned.  The allows the read/write_object methods to work
 *  even when the StreamIO has not been created by the StreamFactory.  The
 *  _get_stream method may be overridden to change this behavior.
 *  Note: the type of this attribute should be somExternalization::Stream,
 *  but because of circular dependencies, it isn't.
 *  D23362
 *     void write_object_tag(in octet tag, in long objnum, in CosLifeCycle::Key key);
 *  This method writes an object prefix to the StreamIO buffer.
 *  Subclasses may or may not override.
 *  The StreamIO writes key or object number for tag=1,2.
 *  If the Stream passes any other tag value, the StreamIO just writes the tag
 *  and ignores the other parameters.
 *  Tag is one of the following values
 *    1. Object is externalized with KEY and DATA. objnum is ignored.
 *    2. Repeated Reference, use objnum. key is ignored.
 *    3. NIL object. objnum and key are ignored.
 *    4. Stringified reference objnum and key are ignored.
 *  Any other value of tag: The tag is written and objnum and key are ignored.
 *  D23362
 *     octet read_object_tag(out long objnum, out CosLifeCycle::Key key);
 *  This method reads an object prefix from the StreamIO buffer.
 *  Subclasses may or may not override.
 */

#define somStream_StreamIO_KeyData 1UL
#define somStream_StreamIO_RepeatRef 2UL
#define somStream_StreamIO_NilData 3UL
#define somStream_StreamIO_StringifiedRef 4UL

#ifndef SOM_DONT_USE_SHORT_NAMES
#ifndef SOMTGD_object_tags
    #ifdef object_tags
        #undef object_tags
        #define SOMTGD_object_tags 1
    #else
        #define object_tags somStream_StreamIO_object_tags
    #endif /* object_tags */
#endif /* SOMTGD_object_tags */
#endif /* SOM_DONT_USE_SHORT_NAMES */

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

#define somStream_StreamIO_MajorVersion 3
#define somStream_StreamIO_MinorVersion 0

/*
 * Declare the class creation procedure
 */
SOMEXTERN SOM_IMPORTEXPORT_somestrm_somestio SOMClass  SOMLINK somStream_StreamIONewClass(integer4 somtmajorVersion,
		integer4 somtminorVersion);

/*
 * Declare the ABI 2 ClassData structure
 */
SOMEXTERN struct somStream_StreamIOClassDataStructure {
	SOMClass classObject;
	somMToken write_object_tag;
	somMToken read_object_tag;
	somMToken write_object_value;
	somMToken read_key;
	somMToken write_key;
	somMToken reset;
	somMToken get_buffer;
	somMToken set_buffer;
	somMToken clear_buffer;
	somMToken _get_stream;
	somMToken already_streamed;
	somMToken private1;
} SOM_IMPORTEXPORT_somestrm_somestio SOMDLINK somStream_StreamIOClassData;

/*
 * Declare the ABI 2 CClassData structure
 */
SOMEXTERN struct somStream_StreamIOCClassDataStructure {
	somMethodTabs parentMtab;
	somDToken instanceDataToken;
} SOM_IMPORTEXPORT_somestrm_somestio SOMDLINK somStream_StreamIOCClassData;

/*
 * Class Object and Method Token Macros
 */
#define _SOMCLASS_somStream_StreamIO (somStream_StreamIOClassData.classObject)
#ifndef SOMGD_somStream_StreamIO
    #if (defined(_somStream_StreamIO) || defined(__somStream_StreamIO))
        #undef _somStream_StreamIO
        #undef __somStream_StreamIO
        #define SOMGD_somStream_StreamIO 1
    #else
        #define _somStream_StreamIO _SOMCLASS_somStream_StreamIO
    #endif /* _somStream_StreamIO */
#endif /* SOMGD_somStream_StreamIO */
#define somStream_StreamIO_classObj _SOMCLASS_somStream_StreamIO
#define _SOMMTOKEN_somStream_StreamIO(method) ((somMToken)somStream_StreamIOClassData.method)

/*
 * New and Renew macros for somStream_StreamIO
 */
#define somStream_StreamIONew() \
   ( _somStream_StreamIO ? \
	_somNew(_somStream_StreamIO) \
	: ( somStream_StreamIONewClass(\
		somStream_StreamIO_MajorVersion, \
		somStream_StreamIO_MinorVersion),\
	   _somNew(_somStream_StreamIO)))
#define somStream_StreamIORenew(buf) \
   ( _somStream_StreamIO ? \
	_somRenew(_somStream_StreamIO, buf) \
	: ( somStream_StreamIONewClass(\
		somStream_StreamIO_MajorVersion, \
		somStream_StreamIO_MinorVersion),\
	   _somRenew(_somStream_StreamIO, buf)))

/*
 * New Method: already_streamed
 */
typedef boolean   SOMLINK somTP_somStream_StreamIO_already_streamed(somStream_StreamIO somSelf, Environment *ev, 
		SOMObject obj, 
		SOMObject class_obj);
typedef somTP_somStream_StreamIO_already_streamed *somTD_somStream_StreamIO_already_streamed;
/*
 *  This is called by Streamable objects to detect diamond top situations.
 *  D23362    void write_object_value(in CosStream::Streamable item);
 *  This method writes the data of an object to the StreamIO.  If you call
 *  write_object, the data may or may not be written to the StreamIO, depending
 *  on the implementation of externalize_ref that is being used.
 *  For example, if the object is has persistent references,then the Stream may
 *  just write a stringified reference.  However, write_object_value will always
 *  externalize the object data to the stream (using tag values 1, 2 or 3).
 *  The streamable object should call write_object_value only if it "owns"
 *  the object and wants to force the data to be written.
 *  Note: The default implementation of write_object simply calls write_object_value.
 *  More specialized Stream implementations may write something else, like
 *  a stringified reference.
 *  D23363
 *     void write_key(in CosLifeCycle::Key item);
 *     CosLifeCycle::Key read_key() raises(CosStream::StreamDataFormatError);
 *  The read/write key methods are used by read/write object tag methods
 *  An implementation is provided for these which uses the read/write long
 *  and string.  Subclasses may or may not override.
 */
#define somMD_somStream_StreamIO_already_streamed "::somStream::StreamIO::already_streamed"
#define somStream_StreamIO_already_streamed(somSelf,ev,obj,class_obj) \
    (SOM_Resolve(somSelf, somStream_StreamIO, already_streamed) \
	(somSelf,ev,obj,class_obj))
#ifndef SOMGD_already_streamed
    #if (defined(_already_streamed) || defined(__already_streamed))
        #undef _already_streamed
        #undef __already_streamed
        #define SOMGD_already_streamed 1
    #else
        #define _already_streamed somStream_StreamIO_already_streamed
    #endif /* _already_streamed */
#endif /* SOMGD_already_streamed */

/*
 * New Method: reset
 */
typedef void   SOMLINK somTP_somStream_StreamIO_reset(somStream_StreamIO somSelf, Environment *ev);
typedef somTP_somStream_StreamIO_reset *somTD_somStream_StreamIO_reset;
/*
 *  Reset current position in stream to the first byte.
 *  Subsequent reads or writes will begin with the first byte in
 *  the stream buffer.
 *  This MUST be overridden by subclasses.
 */
#define somMD_somStream_StreamIO_reset "::somStream::StreamIO::reset"
#define somStream_StreamIO_reset(somSelf,ev) \
    (SOM_Resolve(somSelf, somStream_StreamIO, reset) \
	(somSelf,ev))
#ifndef SOMGD_reset
    #if (defined(_reset) || defined(__reset))
        #undef _reset
        #undef __reset
        #define SOMGD_reset 1
    #else
        #define _reset somStream_StreamIO_reset
    #endif /* _reset */
#endif /* SOMGD_reset */

/*
 * New Method: set_buffer
 */
typedef void   SOMLINK somTP_somStream_StreamIO_set_buffer(somStream_StreamIO somSelf, Environment *ev, 
		somStream_seq_octet* buffer);
typedef somTP_somStream_StreamIO_set_buffer *somTD_somStream_StreamIO_set_buffer;
/*
 *  Set buffer to copy of this buffer. Client should deallocate buffer.
 *  The current position is reset to the first byte in the buffer.
 *  This MUST be overridden by subclasses.
 */
#define somMD_somStream_StreamIO_set_buffer "::somStream::StreamIO::set_buffer"
#define somStream_StreamIO_set_buffer(somSelf,ev,buffer) \
    (SOM_Resolve(somSelf, somStream_StreamIO, set_buffer) \
	(somSelf,ev,buffer))
#ifndef SOMGD_set_buffer
    #if (defined(_set_buffer) || defined(__set_buffer))
        #undef _set_buffer
        #undef __set_buffer
        #define SOMGD_set_buffer 1
    #else
        #define _set_buffer somStream_StreamIO_set_buffer
    #endif /* _set_buffer */
#endif /* SOMGD_set_buffer */

/*
 * New Method: get_buffer
 */
typedef somStream_seq_octet   SOMLINK somTP_somStream_StreamIO_get_buffer(somStream_StreamIO somSelf, Environment *ev);
typedef somTP_somStream_StreamIO_get_buffer *somTD_somStream_StreamIO_get_buffer;
/*
 *  Returns copy of buffer. Client is responsible for deallocating.
 *  The size of the buffer returned to the client is also returned
 *  in the length parameter.
 *  This MUST be overridden by subclasses.
 */
#define somMD_somStream_StreamIO_get_buffer "::somStream::StreamIO::get_buffer"
#define somStream_StreamIO_get_buffer(somSelf,ev) \
    (SOM_Resolve(somSelf, somStream_StreamIO, get_buffer) \
	(somSelf,ev))
#ifndef SOMGD_get_buffer
    #if (defined(_get_buffer) || defined(__get_buffer))
        #undef _get_buffer
        #undef __get_buffer
        #define SOMGD_get_buffer 1
    #else
        #define _get_buffer somStream_StreamIO_get_buffer
    #endif /* _get_buffer */
#endif /* SOMGD_get_buffer */

/*
 * New Method: clear_buffer
 */
typedef void   SOMLINK somTP_somStream_StreamIO_clear_buffer(somStream_StreamIO somSelf, Environment *ev);
typedef somTP_somStream_StreamIO_clear_buffer *somTD_somStream_StreamIO_clear_buffer;
/*
 *  Empty the buffer.  Essentially makes the StreamIO just like a new one.
 *  This MUST be overridden by subclasses.
 */
#define somMD_somStream_StreamIO_clear_buffer "::somStream::StreamIO::clear_buffer"
#define somStream_StreamIO_clear_buffer(somSelf,ev) \
    (SOM_Resolve(somSelf, somStream_StreamIO, clear_buffer) \
	(somSelf,ev))
#ifndef SOMGD_clear_buffer
    #if (defined(_clear_buffer) || defined(__clear_buffer))
        #undef _clear_buffer
        #undef __clear_buffer
        #define SOMGD_clear_buffer 1
    #else
        #define _clear_buffer somStream_StreamIO_clear_buffer
    #endif /* _clear_buffer */
#endif /* SOMGD_clear_buffer */

/*
 * Full Names for Inherited Methods
 */
/* overridden methods */
#define somStream_StreamIO_somDefaultInit SOMObject_somDefaultInit
#define somStream_StreamIO_somDestruct SOMObject_somDestruct

#ifndef SOM_DONT_USE_INHERITED_MACROS
#define somStream_StreamIO_write_string CosStream_StreamIO_write_string
#define somStream_StreamIO_write_char CosStream_StreamIO_write_char
#define somStream_StreamIO_write_octet CosStream_StreamIO_write_octet
#define somStream_StreamIO_write_unsigned_long CosStream_StreamIO_write_unsigned_long
#define somStream_StreamIO_write_unsigned_short CosStream_StreamIO_write_unsigned_short
#define somStream_StreamIO_write_long CosStream_StreamIO_write_long
#define somStream_StreamIO_write_short CosStream_StreamIO_write_short
#define somStream_StreamIO_write_float CosStream_StreamIO_write_float
#define somStream_StreamIO_write_double CosStream_StreamIO_write_double
#define somStream_StreamIO_write_boolean CosStream_StreamIO_write_boolean
#define somStream_StreamIO_write_object CosStream_StreamIO_write_object
#define somStream_StreamIO_read_string CosStream_StreamIO_read_string
#define somStream_StreamIO_read_char CosStream_StreamIO_read_char
#define somStream_StreamIO_read_octet CosStream_StreamIO_read_octet
#define somStream_StreamIO_read_unsigned_long CosStream_StreamIO_read_unsigned_long
#define somStream_StreamIO_read_unsigned_short CosStream_StreamIO_read_unsigned_short
#define somStream_StreamIO_read_long CosStream_StreamIO_read_long
#define somStream_StreamIO_read_short CosStream_StreamIO_read_short
#define somStream_StreamIO_read_float CosStream_StreamIO_read_float
#define somStream_StreamIO_read_double CosStream_StreamIO_read_double
#define somStream_StreamIO_read_boolean CosStream_StreamIO_read_boolean
#define somStream_StreamIO_somDefaultCopyInit SOMObject_somDefaultCopyInit
#define somStream_StreamIO_somDefaultAssign SOMObject_somDefaultAssign
#define somStream_StreamIO_somDefaultConstCopyInit SOMObject_somDefaultConstCopyInit
#define somStream_StreamIO_somDefaultVCopyInit SOMObject_somDefaultVCopyInit
#define somStream_StreamIO_somDefaultConstVCopyInit SOMObject_somDefaultConstVCopyInit
#define somStream_StreamIO_somDefaultConstAssign SOMObject_somDefaultConstAssign
#define somStream_StreamIO_somDefaultVAssign SOMObject_somDefaultVAssign
#define somStream_StreamIO_somDefaultConstVAssign SOMObject_somDefaultConstVAssign
#define somStream_StreamIO_somInit SOMObject_somInit
#define somStream_StreamIO_somUninit SOMObject_somUninit
#define somStream_StreamIO_somFree SOMObject_somFree
#define somStream_StreamIO_somGetClass SOMObject_somGetClass
#define somStream_StreamIO_somGetClassName SOMObject_somGetClassName
#define somStream_StreamIO_somGetSize SOMObject_somGetSize
#define somStream_StreamIO_somIsA SOMObject_somIsA
#define somStream_StreamIO_somIsInstanceOf SOMObject_somIsInstanceOf
#define somStream_StreamIO_somRespondsTo SOMObject_somRespondsTo
#define somStream_StreamIO_somDispatch SOMObject_somDispatch
#define somStream_StreamIO_somClassDispatch SOMObject_somClassDispatch
#define somStream_StreamIO_somCastObj SOMObject_somCastObj
#define somStream_StreamIO_somResetObj SOMObject_somResetObj
#define somStream_StreamIO_somPrintSelf SOMObject_somPrintSelf
#define somStream_StreamIO_somDumpSelf SOMObject_somDumpSelf
#define somStream_StreamIO_somDumpSelfInt SOMObject_somDumpSelfInt
#endif /* SOM_DONT_USE_INHERITED_MACROS */

#endif       /* SOM_somStream_StreamIO_h */

#ifndef SOM_somStream_MemoryStreamIO_h
#define SOM_somStream_MemoryStreamIO_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 somStream_MemoryStreamIO
#define somStream_MemoryStreamIO SOMObject
#endif
/*
 *  The MemoryStreamIO interface implements two type of byte data streams.
 *  One with "Big Endian" numeric values and the other with "Little
 *  Endian" numeric values.  The "Little Endian" memory streams are
 *  created on Intel-like machines and the "Big Endian" memory streams
 *  are created on non-Intel-like machines.  These are the native
 *  formats for these machines.  Both type of memory streams are
 *  portable to the other machine type because byte flipping is
 *  performed by the transfer_in and transfer_out methods when the
 *  memory stream type is different from the native machine type.
 * 
 */

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

/*
 * Start of bindings for IDL types
 */


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

#define somStream_MemoryStreamIO_MajorVersion 3
#define somStream_MemoryStreamIO_MinorVersion 0

/*
 * Declare the class creation procedure
 */
SOMEXTERN SOM_IMPORTEXPORT_somestrm_somestio SOMClass  SOMLINK somStream_MemoryStreamIONewClass(integer4 somtmajorVersion,
		integer4 somtminorVersion);

/*
 * Declare the ABI 2 ClassData structure
 */
SOMEXTERN struct somStream_MemoryStreamIOClassDataStructure {
	SOMClass classObject;
} SOM_IMPORTEXPORT_somestrm_somestio SOMDLINK somStream_MemoryStreamIOClassData;

/*
 * Declare the ABI 2 CClassData structure
 */
SOMEXTERN struct somStream_MemoryStreamIOCClassDataStructure {
	somMethodTabs parentMtab;
	somDToken instanceDataToken;
} SOM_IMPORTEXPORT_somestrm_somestio SOMDLINK somStream_MemoryStreamIOCClassData;

/*
 * Class Object and Method Token Macros
 */
#define _SOMCLASS_somStream_MemoryStreamIO (somStream_MemoryStreamIOClassData.classObject)
#ifndef SOMGD_somStream_MemoryStreamIO
    #if (defined(_somStream_MemoryStreamIO) || defined(__somStream_MemoryStreamIO))
        #undef _somStream_MemoryStreamIO
        #undef __somStream_MemoryStreamIO
        #define SOMGD_somStream_MemoryStreamIO 1
    #else
        #define _somStream_MemoryStreamIO _SOMCLASS_somStream_MemoryStreamIO
    #endif /* _somStream_MemoryStreamIO */
#endif /* SOMGD_somStream_MemoryStreamIO */
#define somStream_MemoryStreamIO_classObj _SOMCLASS_somStream_MemoryStreamIO
#define _SOMMTOKEN_somStream_MemoryStreamIO(method) ((somMToken)somStream_MemoryStreamIOClassData.method)

/*
 * New and Renew macros for somStream_MemoryStreamIO
 */
#define somStream_MemoryStreamIONew() \
   ( _somStream_MemoryStreamIO ? \
	_somNew(_somStream_MemoryStreamIO) \
	: ( somStream_MemoryStreamIONewClass(\
		somStream_MemoryStreamIO_MajorVersion, \
		somStream_MemoryStreamIO_MinorVersion),\
	   _somNew(_somStream_MemoryStreamIO)))
#define somStream_MemoryStreamIORenew(buf) \
   ( _somStream_MemoryStreamIO ? \
	_somRenew(_somStream_MemoryStreamIO, buf) \
	: ( somStream_MemoryStreamIONewClass(\
		somStream_MemoryStreamIO_MajorVersion, \
		somStream_MemoryStreamIO_MinorVersion),\
	   _somRenew(_somStream_MemoryStreamIO, buf)))

/*
 * Full Names for Inherited Methods
 */
/* overridden methods */
#define somStream_MemoryStreamIO_reset somStream_StreamIO_reset
#define somStream_MemoryStreamIO_set_buffer somStream_StreamIO_set_buffer
#define somStream_MemoryStreamIO_get_buffer somStream_StreamIO_get_buffer
#define somStream_MemoryStreamIO_clear_buffer somStream_StreamIO_clear_buffer
#define somStream_MemoryStreamIO_somDefaultInit SOMObject_somDefaultInit
#define somStream_MemoryStreamIO_somDestruct SOMObject_somDestruct
#define somStream_MemoryStreamIO_write_string CosStream_StreamIO_write_string
#define somStream_MemoryStreamIO_write_char CosStream_StreamIO_write_char
#define somStream_MemoryStreamIO_write_octet CosStream_StreamIO_write_octet
#define somStream_MemoryStreamIO_write_unsigned_long CosStream_StreamIO_write_unsigned_long
#define somStream_MemoryStreamIO_write_unsigned_short CosStream_StreamIO_write_unsigned_short
#define somStream_MemoryStreamIO_write_long CosStream_StreamIO_write_long
#define somStream_MemoryStreamIO_write_short CosStream_StreamIO_write_short
#define somStream_MemoryStreamIO_write_float CosStream_StreamIO_write_float
#define somStream_MemoryStreamIO_write_double CosStream_StreamIO_write_double
#define somStream_MemoryStreamIO_write_boolean CosStream_StreamIO_write_boolean
#define somStream_MemoryStreamIO_read_string CosStream_StreamIO_read_string
#define somStream_MemoryStreamIO_read_char CosStream_StreamIO_read_char
#define somStream_MemoryStreamIO_read_octet CosStream_StreamIO_read_octet
#define somStream_MemoryStreamIO_read_unsigned_long CosStream_StreamIO_read_unsigned_long
#define somStream_MemoryStreamIO_read_unsigned_short CosStream_StreamIO_read_unsigned_short
#define somStream_MemoryStreamIO_read_long CosStream_StreamIO_read_long
#define somStream_MemoryStreamIO_read_short CosStream_StreamIO_read_short
#define somStream_MemoryStreamIO_read_float CosStream_StreamIO_read_float
#define somStream_MemoryStreamIO_read_double CosStream_StreamIO_read_double
#define somStream_MemoryStreamIO_read_boolean CosStream_StreamIO_read_boolean

#ifndef SOM_DONT_USE_INHERITED_MACROS
#define somStream_MemoryStreamIO_already_streamed somStream_StreamIO_already_streamed
#define somStream_MemoryStreamIO_write_object CosStream_StreamIO_write_object
#define somStream_MemoryStreamIO_somDefaultCopyInit SOMObject_somDefaultCopyInit
#define somStream_MemoryStreamIO_somDefaultAssign SOMObject_somDefaultAssign
#define somStream_MemoryStreamIO_somDefaultConstCopyInit SOMObject_somDefaultConstCopyInit
#define somStream_MemoryStreamIO_somDefaultVCopyInit SOMObject_somDefaultVCopyInit
#define somStream_MemoryStreamIO_somDefaultConstVCopyInit SOMObject_somDefaultConstVCopyInit
#define somStream_MemoryStreamIO_somDefaultConstAssign SOMObject_somDefaultConstAssign
#define somStream_MemoryStreamIO_somDefaultVAssign SOMObject_somDefaultVAssign
#define somStream_MemoryStreamIO_somDefaultConstVAssign SOMObject_somDefaultConstVAssign
#define somStream_MemoryStreamIO_somInit SOMObject_somInit
#define somStream_MemoryStreamIO_somUninit SOMObject_somUninit
#define somStream_MemoryStreamIO_somFree SOMObject_somFree
#define somStream_MemoryStreamIO_somGetClass SOMObject_somGetClass
#define somStream_MemoryStreamIO_somGetClassName SOMObject_somGetClassName
#define somStream_MemoryStreamIO_somGetSize SOMObject_somGetSize
#define somStream_MemoryStreamIO_somIsA SOMObject_somIsA
#define somStream_MemoryStreamIO_somIsInstanceOf SOMObject_somIsInstanceOf
#define somStream_MemoryStreamIO_somRespondsTo SOMObject_somRespondsTo
#define somStream_MemoryStreamIO_somDispatch SOMObject_somDispatch
#define somStream_MemoryStreamIO_somClassDispatch SOMObject_somClassDispatch
#define somStream_MemoryStreamIO_somCastObj SOMObject_somCastObj
#define somStream_MemoryStreamIO_somResetObj SOMObject_somResetObj
#define somStream_MemoryStreamIO_somPrintSelf SOMObject_somPrintSelf
#define somStream_MemoryStreamIO_somDumpSelf SOMObject_somDumpSelf
#define somStream_MemoryStreamIO_somDumpSelfInt SOMObject_somDumpSelfInt
#endif /* SOM_DONT_USE_INHERITED_MACROS */

#endif       /* SOM_somStream_MemoryStreamIO_h */

#ifndef SOM_somStream_Streamable_h
#define SOM_somStream_Streamable_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 somStream_Streamable
#define somStream_Streamable SOMObject
#endif
/*
 *  The Streamable interface provides an implementation of the
 *  CosStream::Streamable interface.  It inherits first from ServiceBase
 *  in order to get an implementation of the IdentifiableObject interface.
 *   The following minor codes are used whenever the Externalization Service
 *   raises a system exception (a CORBA standard exception).
 */

/*
 * Include Parent Bindings
 */
#ifndef SOM_somOS_ServiceBase_h
#ifdef SOMLOCALINCLUDES
#include "somos.h"
#else
#include <somos.h>
#endif
#endif
#ifndef SOM_CosStream_Streamable_h
#ifdef SOMLOCALINCLUDES
#include "omgestio.h"
#else
#include <omgestio.h>
#endif
#endif

/*
 * Start of bindings for IDL types
 */


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

#define somStream_Streamable_MajorVersion 3
#define somStream_Streamable_MinorVersion 0

/*
 * Declare the class creation procedure
 */
SOMEXTERN SOM_IMPORTEXPORT_somestrm_somestio SOMClass  SOMLINK somStream_StreamableNewClass(integer4 somtmajorVersion,
		integer4 somtminorVersion);

/*
 * Declare the ABI 2 ClassData structure
 */
SOMEXTERN struct somStream_StreamableClassDataStructure {
	SOMClass classObject;
} SOM_IMPORTEXPORT_somestrm_somestio SOMDLINK somStream_StreamableClassData;

/*
 * Declare the ABI 2 CClassData structure
 */
SOMEXTERN struct somStream_StreamableCClassDataStructure {
	somMethodTabs parentMtab;
	somDToken instanceDataToken;
} SOM_IMPORTEXPORT_somestrm_somestio SOMDLINK somStream_StreamableCClassData;

/*
 * Class Object and Method Token Macros
 */
#define _SOMCLASS_somStream_Streamable (somStream_StreamableClassData.classObject)
#ifndef SOMGD_somStream_Streamable
    #if (defined(_somStream_Streamable) || defined(__somStream_Streamable))
        #undef _somStream_Streamable
        #undef __somStream_Streamable
        #define SOMGD_somStream_Streamable 1
    #else
        #define _somStream_Streamable _SOMCLASS_somStream_Streamable
    #endif /* _somStream_Streamable */
#endif /* SOMGD_somStream_Streamable */
#define somStream_Streamable_classObj _SOMCLASS_somStream_Streamable
#define _SOMMTOKEN_somStream_Streamable(method) ((somMToken)somStream_StreamableClassData.method)

/*
 * New and Renew macros for somStream_Streamable
 */
#define somStream_StreamableNew() \
   ( _somStream_Streamable ? \
	_somNew(_somStream_Streamable) \
	: ( somStream_StreamableNewClass(\
		somStream_Streamable_MajorVersion, \
		somStream_Streamable_MinorVersion),\
	   _somNew(_somStream_Streamable)))
#define somStream_StreamableRenew(buf) \
   ( _somStream_Streamable ? \
	_somRenew(_somStream_Streamable, buf) \
	: ( somStream_StreamableNewClass(\
		somStream_Streamable_MajorVersion, \
		somStream_Streamable_MinorVersion),\
	   _somRenew(_somStream_Streamable, buf)))

/*
 * Full Names for Inherited Methods
 */
/* overridden methods */
#define somStream_Streamable_somDefaultInit SOMObject_somDefaultInit
#define somStream_Streamable_somDestruct SOMObject_somDestruct

#ifndef SOM_DONT_USE_INHERITED_MACROS
#define somStream_Streamable_reinit somOS_ServiceBase_reinit
#define somStream_Streamable_capture somOS_ServiceBase_capture
#define somStream_Streamable_GetInstanceManager somOS_ServiceBase_GetInstanceManager
#define somStream_Streamable_init_for_object_creation somOS_ServiceBase_init_for_object_creation
#define somStream_Streamable_init_for_object_reactivation somOS_ServiceBase_init_for_object_reactivation
#define somStream_Streamable_init_for_object_copy somOS_ServiceBase_init_for_object_copy
#define somStream_Streamable_uninit_for_object_move somOS_ServiceBase_uninit_for_object_move
#define somStream_Streamable_uninit_for_object_passivation somOS_ServiceBase_uninit_for_object_passivation
#define somStream_Streamable_uninit_for_object_destruction somOS_ServiceBase_uninit_for_object_destruction
#define somStream_Streamable_is_identical CosObjectIdentity_IdentifiableObject_is_identical
#define somStream_Streamable__get_constant_random_id CosObjectIdentity_IdentifiableObject__get_constant_random_id
#define somStream_Streamable_somDefaultCopyInit SOMObject_somDefaultCopyInit
#define somStream_Streamable_somDefaultAssign SOMObject_somDefaultAssign
#define somStream_Streamable_somDefaultConstCopyInit SOMObject_somDefaultConstCopyInit
#define somStream_Streamable_somDefaultVCopyInit SOMObject_somDefaultVCopyInit
#define somStream_Streamable_somDefaultConstVCopyInit SOMObject_somDefaultConstVCopyInit
#define somStream_Streamable_somDefaultConstAssign SOMObject_somDefaultConstAssign
#define somStream_Streamable_somDefaultVAssign SOMObject_somDefaultVAssign
#define somStream_Streamable_somDefaultConstVAssign SOMObject_somDefaultConstVAssign
#define somStream_Streamable_somInit SOMObject_somInit
#define somStream_Streamable_somUninit SOMObject_somUninit
#define somStream_Streamable_somFree SOMObject_somFree
#define somStream_Streamable_somGetClass SOMObject_somGetClass
#define somStream_Streamable_somGetClassName SOMObject_somGetClassName
#define somStream_Streamable_somGetSize SOMObject_somGetSize
#define somStream_Streamable_somIsA SOMObject_somIsA
#define somStream_Streamable_somIsInstanceOf SOMObject_somIsInstanceOf
#define somStream_Streamable_somRespondsTo SOMObject_somRespondsTo
#define somStream_Streamable_somDispatch SOMObject_somDispatch
#define somStream_Streamable_somClassDispatch SOMObject_somClassDispatch
#define somStream_Streamable_somCastObj SOMObject_somCastObj
#define somStream_Streamable_somResetObj SOMObject_somResetObj
#define somStream_Streamable_somPrintSelf SOMObject_somPrintSelf
#define somStream_Streamable_somDumpSelf SOMObject_somDumpSelf
#define somStream_Streamable_somDumpSelfInt SOMObject_somDumpSelfInt
#define somStream_Streamable_externalize_to_stream CosStream_Streamable_externalize_to_stream
#define somStream_Streamable_internalize_from_stream CosStream_Streamable_internalize_from_stream
#endif /* SOM_DONT_USE_INHERITED_MACROS */

#endif       /* SOM_somStream_Streamable_h */
