// -*- C++ -*-
//
// $Id$

// ****  Code generated by the The ACE ORB (TAO) IDL Compiler ****
// TAO and the TAO IDL Compiler have been developed by:
//       Center for Distributed Object Computing
//       Washington University
//       St. Louis, MO
//       USA
//       http://www.cs.wustl.edu/~schmidt/doc-center.html
// and
//       Distributed Object Computing Laboratory
//       University of California at Irvine
//       Irvine, CA
//       USA
//       http://doc.ece.uci.edu/
// and
//       Institute for Software Integrated Systems
//       Vanderbilt University
//       Nashville, TN
//       USA
//       http://www.isis.vanderbilt.edu/
//
// Information about TAO is available at:
//     http://www.cs.wustl.edu/~schmidt/TAO.html

// TAO_IDL - Generated from
// be/be_codegen.cpp:153

#ifndef _TAO_IDL_FTRTC_H_
#define _TAO_IDL_FTRTC_H_

#include /**/ "ace/pre.h"


#include "ace/config-all.h"

#if !defined (ACE_LACKS_PRAGMA_ONCE)
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */

#include "FtRtEvent/Utils/ftrtevent_export.h"
#include "tao/Valuetype/ValueBase.h"
#include "tao/Valuetype/Valuetype_Adapter_Impl.h"
#include "tao/ORB.h"
#include "tao/Environment.h"
#include "tao/Object.h"
#include "tao/Messaging/Messaging.h"
#include "tao/Sequence_T.h"
#include "tao/Valuetype/Value_VarOut_T.h"
#include "tao/Objref_VarOut_T.h"
#include "tao/Seq_Var_T.h"
#include "tao/Seq_Out_T.h"
#include "tao/VarOut_T.h"

#include "tao/IOPC.h"

#if defined (TAO_EXPORT_MACRO)
#undef TAO_EXPORT_MACRO
#endif
#define TAO_EXPORT_MACRO TAO_FtRtEvent_Export

#if defined (TAO_EXPORT_NESTED_CLASSES)
#  if defined (TAO_EXPORT_NESTED_MACRO)
#    undef TAO_EXPORT_NESTED_MACRO
#  endif /* defined (TAO_EXPORT_NESTED_MACRO) */
#  define TAO_EXPORT_NESTED_MACRO TAO_FtRtEvent_Export
#endif /* TAO_EXPORT_NESTED_CLASSES */

#if defined(_MSC_VER)
#if (_MSC_VER >= 1200)
#pragma warning(push)
#endif /* _MSC_VER >= 1200 */
#pragma warning(disable:4250)
#endif /* _MSC_VER */

#if defined (__BORLANDC__)
#pragma option push -w-rvl -w-rch -w-ccc -w-inl
#endif /* __BORLANDC__ */

// TAO_IDL - Generated from 
// be/be_visitor_root/root_ch.cpp:63

namespace TAO
{
  class Collocation_Proxy_Broker;
  
  template<typename T> class Narrow_Utils;
  template<typename T> class AbstractBase_Narrow_Utils;
}

// TAO_IDL - Generated from
// be/be_visitor_module/module_ch.cpp:48

namespace FTRT
{
  
  // TAO_IDL - Generated from
  // be/be_visitor_typedef/typedef_ch.cpp:342
  
  typedef CORBA::Long TransactionDepth;
  typedef CORBA::Long_out TransactionDepth_out;
  
  // TAO_IDL - Generated from
  // be/be_visitor_typecode/typecode_decl.cpp:44
  
  TAO_NAMESPACE_STORAGE_CLASS ::CORBA::TypeCode_ptr _tc_TransactionDepth;
  
  // TAO_IDL - Generated from
  // be/be_visitor_typedef/typedef_ch.cpp:342
  
  typedef CORBA::ULong SequenceNumber;
  typedef CORBA::ULong_out SequenceNumber_out;
  
  // TAO_IDL - Generated from
  // be/be_visitor_typecode/typecode_decl.cpp:44
  
  TAO_NAMESPACE_STORAGE_CLASS ::CORBA::TypeCode_ptr _tc_SequenceNumber;
  
  // TAO_IDL - Generated from
  // be/be_visitor_constant/constant_ch.cpp:52
  
  const IOP::ServiceId FT_TRANSACTION_DEPTH = 30U;
  
  // TAO_IDL - Generated from
  // be/be_visitor_constant/constant_ch.cpp:52
  
  const IOP::ServiceId FT_SEQUENCE_NUMBER = 31U;
  
  // TAO_IDL - Generated from
  // be/be_visitor_constant/constant_ch.cpp:52
  
  const IOP::ServiceId FT_FORWARD = 32U;
  
  // TAO_IDL - Generated from
  // be/be_type.cpp:258
  
  struct FTTransactionDepthServiceContext;
  
  typedef
    TAO_Fixed_Var_T<
        FTTransactionDepthServiceContext
      >
    FTTransactionDepthServiceContext_var;
  
  typedef
    FTTransactionDepthServiceContext &
    FTTransactionDepthServiceContext_out;
  
  // TAO_IDL - Generated from
  // be/be_visitor_structure/structure_ch.cpp:52
  
  struct TAO_FtRtEvent_Export FTTransactionDepthServiceContext
  {
    typedef FTTransactionDepthServiceContext_var _var_type;
    
    static void _tao_any_destructor (void *);
    FTRT::TransactionDepth transaction_depth;
  };
  
  // TAO_IDL - Generated from
  // be/be_visitor_typecode/typecode_decl.cpp:44
  
  TAO_NAMESPACE_STORAGE_CLASS ::CORBA::TypeCode_ptr _tc_FTTransactionDepthServiceContext;
  
  // TAO_IDL - Generated from
  // be/be_type.cpp:258
  
  struct FTSequenceNumberServiceContext;
  
  typedef
    TAO_Fixed_Var_T<
        FTSequenceNumberServiceContext
      >
    FTSequenceNumberServiceContext_var;
  
  typedef
    FTSequenceNumberServiceContext &
    FTSequenceNumberServiceContext_out;
  
  // TAO_IDL - Generated from
  // be/be_visitor_structure/structure_ch.cpp:52
  
  struct TAO_FtRtEvent_Export FTSequenceNumberServiceContext
  {
    typedef FTSequenceNumberServiceContext_var _var_type;
    
    static void _tao_any_destructor (void *);
    FTRT::SequenceNumber sequence_number;
  };
  
  // TAO_IDL - Generated from
  // be/be_visitor_typecode/typecode_decl.cpp:44
  
  TAO_NAMESPACE_STORAGE_CLASS ::CORBA::TypeCode_ptr _tc_FTSequenceNumberServiceContext;
  
  // TAO_IDL - Generated from
  // be/be_type.cpp:258
  
  struct FTForwardServiceContext;
  
  typedef
    TAO_Var_Var_T<
        FTForwardServiceContext
      >
    FTForwardServiceContext_var;
  
  typedef
    TAO_Out_T<
        FTForwardServiceContext,
        FTForwardServiceContext_var
      >
    FTForwardServiceContext_out;
  
  // TAO_IDL - Generated from
  // be/be_visitor_structure/structure_ch.cpp:52
  
  struct TAO_FtRtEvent_Export FTForwardServiceContext
  {
    typedef FTForwardServiceContext_var _var_type;
    
    static void _tao_any_destructor (void *);
    CORBA::Object_var forward;
  };
  
  // TAO_IDL - Generated from
  // be/be_visitor_typecode/typecode_decl.cpp:44
  
  TAO_NAMESPACE_STORAGE_CLASS ::CORBA::TypeCode_ptr _tc_FTForwardServiceContext;
  
  // TAO_IDL - Generated from
  // be/be_visitor_exception/exception_ch.cpp:51

#if !defined (_FTRT_OUTOFSEQUENCE_CH_)
#define _FTRT_OUTOFSEQUENCE_CH_
  
  class TAO_FtRtEvent_Export OutOfSequence : public CORBA::UserException
  {
  public:
    
    FTRT::SequenceNumber current;
    OutOfSequence (void);
    OutOfSequence (const OutOfSequence &);
    ~OutOfSequence (void);

    OutOfSequence &operator= (const OutOfSequence &);
    
    static void _tao_any_destructor (void *);
    
    static OutOfSequence *_downcast (CORBA::Exception *);
    static CORBA::Exception *_alloc (void);

    virtual CORBA::Exception *_tao_duplicate (void) const;

    virtual void _raise (void) const;

    virtual void _tao_encode (
        TAO_OutputCDR &
        ACE_ENV_ARG_DECL
      ) const;
    
    virtual void _tao_decode (
        TAO_InputCDR &
        ACE_ENV_ARG_DECL
      );
    
    // TAO_IDL - Generated from
    // be/be_visitor_exception/exception_ctor.cpp:66
    
    OutOfSequence (
        ACE_NESTED_CLASS (FTRT, SequenceNumber) _tao_current
      );
    
    // TAO_IDL - Generated from
    // be/be_visitor_exception/exception_ch.cpp:125
    
    virtual CORBA::TypeCode_ptr _type (void) const;
  };
  
  // TAO_IDL - Generated from
  // be/be_visitor_typecode/typecode_decl.cpp:44
  
  TAO_NAMESPACE_STORAGE_CLASS ::CORBA::TypeCode_ptr _tc_OutOfSequence;

#endif /* end #if !defined */
  
  // TAO_IDL - Generated from
  // be/be_visitor_exception/exception_ch.cpp:51

#if !defined (_FTRT_TRANSACTIONDEPTHTOOHIGH_CH_)
#define _FTRT_TRANSACTIONDEPTHTOOHIGH_CH_
  
  class TAO_FtRtEvent_Export TransactionDepthTooHigh : public CORBA::UserException
  {
  public:
    
    TransactionDepthTooHigh (void);
    TransactionDepthTooHigh (const TransactionDepthTooHigh &);
    ~TransactionDepthTooHigh (void);

    TransactionDepthTooHigh &operator= (const TransactionDepthTooHigh &);
    
    static void _tao_any_destructor (void *);
    
    static TransactionDepthTooHigh *_downcast (CORBA::Exception *);
    static CORBA::Exception *_alloc (void);

    virtual CORBA::Exception *_tao_duplicate (void) const;

    virtual void _raise (void) const;

    virtual void _tao_encode (
        TAO_OutputCDR &
        ACE_ENV_ARG_DECL
      ) const;
    
    virtual void _tao_decode (
        TAO_InputCDR &
        ACE_ENV_ARG_DECL
      );
    
    // TAO_IDL - Generated from
    // be/be_visitor_exception/exception_ch.cpp:125
    
    virtual CORBA::TypeCode_ptr _type (void) const;
  };
  
  // TAO_IDL - Generated from
  // be/be_visitor_typecode/typecode_decl.cpp:44
  
  TAO_NAMESPACE_STORAGE_CLASS ::CORBA::TypeCode_ptr _tc_TransactionDepthTooHigh;

#endif /* end #if !defined */
  
  // TAO_IDL - Generated from
  // be/be_visitor_sequence/sequence_ch.cpp:101

#if !defined (_FTRT_STATE_CH_)
#define _FTRT_STATE_CH_
  
  class State;
  
  typedef
    TAO_FixedSeq_Var_T<
        State,
        CORBA::Octet
      >
    State_var;
  
  typedef
    TAO_Seq_Out_T<
        State,
        State_var,
        CORBA::Octet
      >
    State_out;
  
  class TAO_FtRtEvent_Export State
    : public
        TAO_Unbounded_Sequence<
            CORBA::Octet
          >
  {
  public:
    State (void);
    State (CORBA::ULong max);
    State (
        CORBA::ULong max,
        CORBA::ULong length,
        CORBA::Octet* buffer, 
        CORBA::Boolean release = 0
      );
    State (const State &);
    ~State (void);
    
    static void _tao_any_destructor (void *);
    
    typedef State_var _var_type;

#if (TAO_NO_COPY_OCTET_SEQUENCES == 1)
    State (
        CORBA::ULong length,
        const ACE_Message_Block* mb
      )
      : TAO_Unbounded_Sequence<CORBA::Octet> (length, mb) {}
#endif /* TAO_NO_COPY_OCTET_SEQUENCE == 1 */
  };

#endif /* end #if !defined */
  
  // TAO_IDL - Generated from
  // be/be_visitor_typecode/typecode_decl.cpp:44
  
  TAO_NAMESPACE_STORAGE_CLASS ::CORBA::TypeCode_ptr _tc_State;
  
  // TAO_IDL - Generated from
  // be/be_visitor_exception/exception_ch.cpp:51

#if !defined (_FTRT_INVALIDUPDATE_CH_)
#define _FTRT_INVALIDUPDATE_CH_
  
  class TAO_FtRtEvent_Export InvalidUpdate : public CORBA::UserException
  {
  public:
    
    InvalidUpdate (void);
    InvalidUpdate (const InvalidUpdate &);
    ~InvalidUpdate (void);

    InvalidUpdate &operator= (const InvalidUpdate &);
    
    static void _tao_any_destructor (void *);
    
    static InvalidUpdate *_downcast (CORBA::Exception *);
    static CORBA::Exception *_alloc (void);

    virtual CORBA::Exception *_tao_duplicate (void) const;

    virtual void _raise (void) const;

    virtual void _tao_encode (
        TAO_OutputCDR &
        ACE_ENV_ARG_DECL
      ) const;
    
    virtual void _tao_decode (
        TAO_InputCDR &
        ACE_ENV_ARG_DECL
      );
    
    // TAO_IDL - Generated from
    // be/be_visitor_exception/exception_ch.cpp:125
    
    virtual CORBA::TypeCode_ptr _type (void) const;
  };
  
  // TAO_IDL - Generated from
  // be/be_visitor_typecode/typecode_decl.cpp:44
  
  TAO_NAMESPACE_STORAGE_CLASS ::CORBA::TypeCode_ptr _tc_InvalidUpdate;

#endif /* end #if !defined */

#if !defined (_FTRT_AMI_UPDATEABLEHANDLER___PTR_CH_)
#define _FTRT_AMI_UPDATEABLEHANDLER___PTR_CH_
  
  class AMI_UpdateableHandler;
  typedef AMI_UpdateableHandler *AMI_UpdateableHandler_ptr;

#endif /* end #if !defined */
  
  // TAO_IDL - Generated from
  // be/be_interface.cpp:613

#if !defined (_FTRT_UPDATEABLE__VAR_OUT_CH_)
#define _FTRT_UPDATEABLE__VAR_OUT_CH_
  
  class Updateable;
  typedef Updateable *Updateable_ptr;
  
  typedef
    TAO_Objref_Var_T<
        Updateable
      >
    Updateable_var;
  
  typedef
    TAO_Objref_Out_T<
        Updateable
      >
    Updateable_out;

#endif /* end #if !defined */
  
  // TAO_IDL - Generated from
  // be/be_visitor_interface/interface_ch.cpp:54

#if !defined (_FTRT_UPDATEABLE_CH_)
#define _FTRT_UPDATEABLE_CH_
  
  class TAO_FtRtEvent_Export Updateable
    : public virtual CORBA::Object
  {
  public:
    friend class TAO::Narrow_Utils<Updateable>;
    typedef Updateable_ptr _ptr_type;
    typedef Updateable_var _var_type;
    
    // The static operations.
    static Updateable_ptr _duplicate (Updateable_ptr obj);
    
    static Updateable_ptr _narrow (
        CORBA::Object_ptr obj
        ACE_ENV_ARG_DECL_WITH_DEFAULTS
      );
    
    static Updateable_ptr _unchecked_narrow (
        CORBA::Object_ptr obj
        ACE_ENV_ARG_DECL_WITH_DEFAULTS
      );
    
    static Updateable_ptr _nil (void)
    {
      return (Updateable_ptr)0;
    }
    
    static void _tao_any_destructor (void *);
    
    // TAO_IDL - Generated from
    // be/be_visitor_operation/operation_ch.cpp:46
    
    virtual void set_update (
        const ::FTRT::State & s
        ACE_ENV_ARG_DECL_WITH_DEFAULTS
      )
      ACE_THROW_SPEC ((
        CORBA::SystemException,
        ::FTRT::InvalidUpdate,
        ::FTRT::OutOfSequence,
        ::FTRT::TransactionDepthTooHigh
      ));
    
    // TAO_IDL - Generated from
    // be/be_visitor_operation/ami_ch.cpp:55
    
    virtual void sendc_set_update (
        ::FTRT::AMI_UpdateableHandler_ptr ami_handler,
        const ::FTRT::State & s
        ACE_ENV_ARG_DECL_WITH_DEFAULTS
      )
      ACE_THROW_SPEC ((
        CORBA::SystemException
      ));
    
    // TAO_IDL - Generated from
    // be/be_visitor_operation/operation_ch.cpp:46
    
    virtual void oneway_set_update (
        const ::FTRT::State & s
        ACE_ENV_ARG_DECL_WITH_DEFAULTS
      )
      ACE_THROW_SPEC ((
        CORBA::SystemException
      ));
    
    // TAO_IDL - Generated from
    // be/be_visitor_interface/interface_ch.cpp:208
    
    virtual CORBA::Boolean _is_a (
        const char *type_id
        ACE_ENV_ARG_DECL_WITH_DEFAULTS
      );
    
    virtual const char* _interface_repository_id (void) const;
    virtual CORBA::Boolean marshal (TAO_OutputCDR &cdr);
  private:
    TAO::Collocation_Proxy_Broker *the_TAO_Updateable_Proxy_Broker_;
  
  protected:
    // Concrete interface only.
    Updateable (void);
    
    // These methods travese the inheritance tree and set the
    // parents piece of the given class in the right mode.
    virtual void FTRT_Updateable_setup_collocation (void);
    
    // Concrete non-local interface only.
    Updateable (
        IOP::IOR *ior,
        TAO_ORB_Core *orb_core = 0
      );
    
    // Non-local interface only.
    Updateable (
        TAO_Stub *objref,
        CORBA::Boolean _tao_collocated = 0,
        TAO_Abstract_ServantBase *servant = 0,
        TAO_ORB_Core *orb_core = 0
      );
    
    virtual ~Updateable (void);
  
  private:
    // Private and unimplemented for concrete interfaces.
    Updateable (const Updateable &);
    
    void operator= (const Updateable &);
  };

#endif /* end #if !defined */
  
  // TAO_IDL - Generated from
  // be/be_visitor_typecode/typecode_decl.cpp:44
  
  TAO_NAMESPACE_STORAGE_CLASS ::CORBA::TypeCode_ptr _tc_Updateable;
  
  // TAO_IDL - Generated from
  // be/be_valuetype.cpp:527
  
  

#if !defined (_FTRT_AMI_UPDATEABLEEXCEPTIONHOLDER__VAR_OUT_CH_)
#define _FTRT_AMI_UPDATEABLEEXCEPTIONHOLDER__VAR_OUT_CH_
  
  class AMI_UpdateableExceptionHolder;
  typedef
    TAO_Value_Var_T<
        AMI_UpdateableExceptionHolder
      >
    AMI_UpdateableExceptionHolder_var;
  
  typedef
    TAO_Value_Out_T<
        AMI_UpdateableExceptionHolder
      >
    AMI_UpdateableExceptionHolder_out;

#endif /* end #if !defined */
  
  // TAO_IDL - Generated from
  // be/be_visitor_valuetype/valuetype_ch.cpp:56

#if !defined (_FTRT_AMI_UPDATEABLEEXCEPTIONHOLDER_CH_)
#define _FTRT_AMI_UPDATEABLEEXCEPTIONHOLDER_CH_
  
  class TAO_FtRtEvent_Export AMI_UpdateableExceptionHolder
    : public virtual Messaging::ExceptionHolder
  {
  public:
    typedef AMI_UpdateableExceptionHolder_var _var_type;
    
    static AMI_UpdateableExceptionHolder* _downcast (CORBA::ValueBase *);
    
    // (TAO extensions or internals)
    static CORBA::Boolean _tao_unmarshal (
        TAO_InputCDR &,
        AMI_UpdateableExceptionHolder *&
      );
    
    virtual const char* _tao_obv_repository_id (void) const;
    
    static const char* _tao_obv_static_repository_id (void);
    
    static void _tao_any_destructor (void *);
    
    // TAO_IDL - Generated from
    // be/be_visitor_valuetype/valuetype_ch.cpp:402
    
  public:
    virtual void raise_set_update (
         ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS
      ) = 0;
    
    // TAO_IDL - Generated from
    // be/be_visitor_valuetype/valuetype_ch.cpp:250
  
  protected:
    AMI_UpdateableExceptionHolder (void);
    
    virtual ~AMI_UpdateableExceptionHolder (void);
    
    virtual CORBA::Boolean _tao_marshal_v (TAO_OutputCDR &);
    virtual CORBA::Boolean _tao_unmarshal_v (TAO_InputCDR &);
    
  private:
    AMI_UpdateableExceptionHolder (const AMI_UpdateableExceptionHolder &);
    void operator= (const AMI_UpdateableExceptionHolder &);
    
  protected:
    virtual CORBA::Boolean
    _tao_marshal__FTRT_AMI_UpdateableExceptionHolder (TAO_OutputCDR &) = 0;
    
    virtual CORBA::Boolean
    _tao_unmarshal__FTRT_AMI_UpdateableExceptionHolder (TAO_InputCDR &) = 0;
  };

#endif /* end #if !defined */
  
  // TAO_IDL - Generated from
  // be/be_visitor_typecode/typecode_decl.cpp:44
  
  TAO_NAMESPACE_STORAGE_CLASS ::CORBA::TypeCode_ptr _tc_AMI_UpdateableExceptionHolder;
  
  // TAO_IDL - Generated from
  // be/be_interface.cpp:613

#if !defined (_FTRT_AMI_UPDATEABLEHANDLER__VAR_OUT_CH_)
#define _FTRT_AMI_UPDATEABLEHANDLER__VAR_OUT_CH_
  
  class AMI_UpdateableHandler;
  typedef AMI_UpdateableHandler *AMI_UpdateableHandler_ptr;
  
  typedef
    TAO_Objref_Var_T<
        AMI_UpdateableHandler
      >
    AMI_UpdateableHandler_var;
  
  typedef
    TAO_Objref_Out_T<
        AMI_UpdateableHandler
      >
    AMI_UpdateableHandler_out;

#endif /* end #if !defined */
  
  // TAO_IDL - Generated from
  // be/be_visitor_interface/interface_ch.cpp:54

#if !defined (_FTRT_AMI_UPDATEABLEHANDLER_CH_)
#define _FTRT_AMI_UPDATEABLEHANDLER_CH_
  
  class TAO_FtRtEvent_Export AMI_UpdateableHandler
    : public virtual ::Messaging::ReplyHandler
  {
  public:
    friend class TAO::Narrow_Utils<AMI_UpdateableHandler>;
    typedef AMI_UpdateableHandler_ptr _ptr_type;
    typedef AMI_UpdateableHandler_var _var_type;
    
    // The static operations.
    static AMI_UpdateableHandler_ptr _duplicate (AMI_UpdateableHandler_ptr obj);
    
    static AMI_UpdateableHandler_ptr _narrow (
        CORBA::Object_ptr obj
        ACE_ENV_ARG_DECL_WITH_DEFAULTS
      );
    
    static AMI_UpdateableHandler_ptr _unchecked_narrow (
        CORBA::Object_ptr obj
        ACE_ENV_ARG_DECL_WITH_DEFAULTS
      );
    
    static AMI_UpdateableHandler_ptr _nil (void)
    {
      return (AMI_UpdateableHandler_ptr)0;
    }
    
    static void _tao_any_destructor (void *);
    
    // TAO_IDL - Generated from
    // be/be_visitor_operation/operation_ch.cpp:46
    
    virtual void set_update (
        ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS
      )
      ACE_THROW_SPEC ((
        CORBA::SystemException
      ));
    
    static void set_update_reply_stub (
        TAO_InputCDR &_tao_reply_cdr,
        Messaging::ReplyHandler_ptr _tao_reply_handler,
        CORBA::ULong reply_status
        ACE_ENV_ARG_DECL_WITH_DEFAULTS
      );
    
    // TAO_IDL - Generated from
    // be/be_visitor_operation/operation_ch.cpp:46
    
    virtual void set_update_excep (
        ::FTRT::AMI_UpdateableExceptionHolder * excep_holder
        ACE_ENV_ARG_DECL_WITH_DEFAULTS
      )
      ACE_THROW_SPEC ((
        CORBA::SystemException
      ));
    
    // TAO_IDL - Generated from
    // be/be_visitor_interface/interface_ch.cpp:208
    
    virtual CORBA::Boolean _is_a (
        const char *type_id
        ACE_ENV_ARG_DECL_WITH_DEFAULTS
      );
    
    virtual const char* _interface_repository_id (void) const;
    virtual CORBA::Boolean marshal (TAO_OutputCDR &cdr);
  private:
    TAO::Collocation_Proxy_Broker *the_TAO_AMI_UpdateableHandler_Proxy_Broker_;
  
  protected:
    // Concrete interface only.
    AMI_UpdateableHandler (void);
    
    // These methods travese the inheritance tree and set the
    // parents piece of the given class in the right mode.
    virtual void FTRT_AMI_UpdateableHandler_setup_collocation (void);
    
    // Concrete non-local interface only.
    AMI_UpdateableHandler (
        IOP::IOR *ior,
        TAO_ORB_Core *orb_core = 0
      );
    
    // Non-local interface only.
    AMI_UpdateableHandler (
        TAO_Stub *objref,
        CORBA::Boolean _tao_collocated = 0,
        TAO_Abstract_ServantBase *servant = 0,
        TAO_ORB_Core *orb_core = 0
      );
    
    virtual ~AMI_UpdateableHandler (void);
  
  private:
    // Private and unimplemented for concrete interfaces.
    AMI_UpdateableHandler (const AMI_UpdateableHandler &);
    
    void operator= (const AMI_UpdateableHandler &);
  };

#endif /* end #if !defined */
  
  // TAO_IDL - Generated from
  // be/be_visitor_typecode/typecode_decl.cpp:44
  
  TAO_NAMESPACE_STORAGE_CLASS ::CORBA::TypeCode_ptr _tc_AMI_UpdateableHandler;

// TAO_IDL - Generated from
// be/be_visitor_module/module_ch.cpp:66

} // module FTRT

// Proxy Broker Factory function pointer declarations.

// TAO_IDL - Generated from
// be/be_visitor_root/root.cpp:120

extern TAO_FtRtEvent_Export
TAO::Collocation_Proxy_Broker *
(*FTRT__TAO_Updateable_Proxy_Broker_Factory_function_pointer) (
    CORBA::Object_ptr obj
  );

extern TAO_FtRtEvent_Export
TAO::Collocation_Proxy_Broker *
(*FTRT__TAO_AMI_UpdateableHandler_Proxy_Broker_Factory_function_pointer) (
    CORBA::Object_ptr obj
  );

// TAO_IDL - Generated from
// be/be_visitor_valuetype/obv_module.cpp:55

namespace OBV_FTRT
{
  
  // TAO_IDL - Generated from
  // be/be_visitor_valuetype/valuetype_obv_ch.cpp:58

#if !defined (_FTRT_AMI_UPDATEABLEEXCEPTIONHOLDER___OBV_CH_)
#define _FTRT_AMI_UPDATEABLEEXCEPTIONHOLDER___OBV_CH_
  
  // OBV_ class
  class TAO_FtRtEvent_Export AMI_UpdateableExceptionHolder
    : public virtual FTRT::AMI_UpdateableExceptionHolder,
      public virtual OBV_Messaging::ExceptionHolder
  {
  public:
    
  protected:
    AMI_UpdateableExceptionHolder (void);
    virtual ~AMI_UpdateableExceptionHolder (void);
    
  protected:
    virtual CORBA::Boolean
    _tao_marshal__FTRT_AMI_UpdateableExceptionHolder (TAO_OutputCDR &);
    
    virtual CORBA::Boolean
    _tao_unmarshal__FTRT_AMI_UpdateableExceptionHolder (TAO_InputCDR &);
    
    CORBA::Boolean _tao_marshal_state (TAO_OutputCDR &);
    CORBA::Boolean _tao_unmarshal_state (TAO_InputCDR &);
  
  private:
  };

#endif /* end #if !defined */
  
  class _tao_AMI_UpdateableExceptionHolder
    : public AMI_UpdateableExceptionHolder,
      public virtual OBV_Messaging::ExceptionHolder,
      public virtual CORBA::DefaultValueRefCountBase
  {
  public:
    _tao_AMI_UpdateableExceptionHolder ();
    
    ~_tao_AMI_UpdateableExceptionHolder ();
    
    virtual
    void raise_set_update (
        ACE_ENV_SINGLE_ARG_DECL
      );
  };
}

// TAO_IDL - Generated from
// be/be_visitor_traits.cpp:59

// Traits specializations.
namespace TAO
{

#if !defined (_FTRT_UPDATEABLE__TRAITS_CH_)
#define _FTRT_UPDATEABLE__TRAITS_CH_
  
  ACE_TEMPLATE_SPECIALIZATION
  struct TAO_FtRtEvent_Export Objref_Traits< ::FTRT::Updateable>
  {
    static ::FTRT::Updateable_ptr tao_duplicate (
        ::FTRT::Updateable_ptr
      );
    static void tao_release (
        ::FTRT::Updateable_ptr
      );
    static ::FTRT::Updateable_ptr tao_nil (void);
    static CORBA::Boolean tao_marshal (
        ::FTRT::Updateable_ptr p,
        TAO_OutputCDR & cdr
      );
  };

#endif /* end #if !defined */

#if !defined (_FTRT_AMI_UPDATEABLEEXCEPTIONHOLDER__TRAITS_CH_)
#define _FTRT_AMI_UPDATEABLEEXCEPTIONHOLDER__TRAITS_CH_
  
  ACE_TEMPLATE_SPECIALIZATION
  struct TAO_FtRtEvent_Export Value_Traits<FTRT::AMI_UpdateableExceptionHolder>
  {
    static void tao_add_ref (FTRT::AMI_UpdateableExceptionHolder *);
    static void tao_remove_ref (FTRT::AMI_UpdateableExceptionHolder *);
    static void tao_release (FTRT::AMI_UpdateableExceptionHolder *);
  };

#endif /* end #if !defined */

#if !defined (_FTRT_AMI_UPDATEABLEHANDLER__TRAITS_CH_)
#define _FTRT_AMI_UPDATEABLEHANDLER__TRAITS_CH_
  
  ACE_TEMPLATE_SPECIALIZATION
  struct TAO_FtRtEvent_Export Objref_Traits< ::FTRT::AMI_UpdateableHandler>
  {
    static ::FTRT::AMI_UpdateableHandler_ptr tao_duplicate (
        ::FTRT::AMI_UpdateableHandler_ptr
      );
    static void tao_release (
        ::FTRT::AMI_UpdateableHandler_ptr
      );
    static ::FTRT::AMI_UpdateableHandler_ptr tao_nil (void);
    static CORBA::Boolean tao_marshal (
        ::FTRT::AMI_UpdateableHandler_ptr p,
        TAO_OutputCDR & cdr
      );
  };

#endif /* end #if !defined */
}

// TAO_IDL - Generated from
// be/be_visitor_structure/any_op_ch.cpp:52

TAO_FtRtEvent_Export void operator<<= (CORBA::Any &, const FTRT::FTTransactionDepthServiceContext &); // copying version
TAO_FtRtEvent_Export void operator<<= (CORBA::Any &, FTRT::FTTransactionDepthServiceContext*); // noncopying version
TAO_FtRtEvent_Export CORBA::Boolean operator>>= (const CORBA::Any &, FTRT::FTTransactionDepthServiceContext *&); // deprecated
TAO_FtRtEvent_Export CORBA::Boolean operator>>= (const CORBA::Any &, const FTRT::FTTransactionDepthServiceContext *&);

// TAO_IDL - Generated from
// be/be_visitor_structure/any_op_ch.cpp:52

TAO_FtRtEvent_Export void operator<<= (CORBA::Any &, const FTRT::FTSequenceNumberServiceContext &); // copying version
TAO_FtRtEvent_Export void operator<<= (CORBA::Any &, FTRT::FTSequenceNumberServiceContext*); // noncopying version
TAO_FtRtEvent_Export CORBA::Boolean operator>>= (const CORBA::Any &, FTRT::FTSequenceNumberServiceContext *&); // deprecated
TAO_FtRtEvent_Export CORBA::Boolean operator>>= (const CORBA::Any &, const FTRT::FTSequenceNumberServiceContext *&);

// TAO_IDL - Generated from
// be/be_visitor_structure/any_op_ch.cpp:52

TAO_FtRtEvent_Export void operator<<= (CORBA::Any &, const FTRT::FTForwardServiceContext &); // copying version
TAO_FtRtEvent_Export void operator<<= (CORBA::Any &, FTRT::FTForwardServiceContext*); // noncopying version
TAO_FtRtEvent_Export CORBA::Boolean operator>>= (const CORBA::Any &, FTRT::FTForwardServiceContext *&); // deprecated
TAO_FtRtEvent_Export CORBA::Boolean operator>>= (const CORBA::Any &, const FTRT::FTForwardServiceContext *&);

// TAO_IDL - Generated from
// be/be_visitor_exception/any_op_ch.cpp:52

TAO_FtRtEvent_Export void operator<<= (CORBA::Any &, const FTRT::OutOfSequence &); // copying version
TAO_FtRtEvent_Export void operator<<= (CORBA::Any &, FTRT::OutOfSequence*); // noncopying version
TAO_FtRtEvent_Export CORBA::Boolean operator>>= (const CORBA::Any &, FTRT::OutOfSequence *&); // deprecated
TAO_FtRtEvent_Export CORBA::Boolean operator>>= (const CORBA::Any &, const FTRT::OutOfSequence *&);

// TAO_IDL - Generated from
// be/be_visitor_exception/any_op_ch.cpp:52

TAO_FtRtEvent_Export void operator<<= (CORBA::Any &, const FTRT::TransactionDepthTooHigh &); // copying version
TAO_FtRtEvent_Export void operator<<= (CORBA::Any &, FTRT::TransactionDepthTooHigh*); // noncopying version
TAO_FtRtEvent_Export CORBA::Boolean operator>>= (const CORBA::Any &, FTRT::TransactionDepthTooHigh *&); // deprecated
TAO_FtRtEvent_Export CORBA::Boolean operator>>= (const CORBA::Any &, const FTRT::TransactionDepthTooHigh *&);

// TAO_IDL - Generated from
// be/be_visitor_sequence/any_op_ch.cpp:52

TAO_FtRtEvent_Export void operator<<= (CORBA::Any &, const FTRT::State &); // copying version
TAO_FtRtEvent_Export void operator<<= (CORBA::Any &, FTRT::State*); // noncopying version
TAO_FtRtEvent_Export CORBA::Boolean operator>>= (const CORBA::Any &, FTRT::State *&); // deprecated
TAO_FtRtEvent_Export CORBA::Boolean operator>>= (const CORBA::Any &, const FTRT::State *&);

// TAO_IDL - Generated from
// be/be_visitor_exception/any_op_ch.cpp:52

TAO_FtRtEvent_Export void operator<<= (CORBA::Any &, const FTRT::InvalidUpdate &); // copying version
TAO_FtRtEvent_Export void operator<<= (CORBA::Any &, FTRT::InvalidUpdate*); // noncopying version
TAO_FtRtEvent_Export CORBA::Boolean operator>>= (const CORBA::Any &, FTRT::InvalidUpdate *&); // deprecated
TAO_FtRtEvent_Export CORBA::Boolean operator>>= (const CORBA::Any &, const FTRT::InvalidUpdate *&);

// TAO_IDL - Generated from
// be/be_visitor_interface/any_op_ch.cpp:52

TAO_FtRtEvent_Export void operator<<= (CORBA::Any &, FTRT::Updateable_ptr); // copying
TAO_FtRtEvent_Export void operator<<= (CORBA::Any &, FTRT::Updateable_ptr *); // non-copying
TAO_FtRtEvent_Export CORBA::Boolean operator>>= (const CORBA::Any &, FTRT::Updateable_ptr &);

// TAO_IDL - Generated from
// be/be_visitor_valuetype/any_op_ch.cpp:54

TAO_FtRtEvent_Export void operator<<= (CORBA::Any &, FTRT::AMI_UpdateableExceptionHolder *); // copying
TAO_FtRtEvent_Export void operator<<= (CORBA::Any &, FTRT::AMI_UpdateableExceptionHolder **); // non-copying
TAO_FtRtEvent_Export CORBA::Boolean operator>>= (const CORBA::Any &, FTRT::AMI_UpdateableExceptionHolder *&);

// TAO_IDL - Generated from
// be/be_visitor_interface/any_op_ch.cpp:52

TAO_FtRtEvent_Export void operator<<= (CORBA::Any &, FTRT::AMI_UpdateableHandler_ptr); // copying
TAO_FtRtEvent_Export void operator<<= (CORBA::Any &, FTRT::AMI_UpdateableHandler_ptr *); // non-copying
TAO_FtRtEvent_Export CORBA::Boolean operator>>= (const CORBA::Any &, FTRT::AMI_UpdateableHandler_ptr &);

// TAO_IDL - Generated from
// be/be_visitor_structure/cdr_op_ch.cpp:54

TAO_FtRtEvent_Export CORBA::Boolean operator<< (TAO_OutputCDR &, const FTRT::FTTransactionDepthServiceContext &);
TAO_FtRtEvent_Export CORBA::Boolean operator>> (TAO_InputCDR &, FTRT::FTTransactionDepthServiceContext &);

// TAO_IDL - Generated from
// be/be_visitor_structure/cdr_op_ch.cpp:54

TAO_FtRtEvent_Export CORBA::Boolean operator<< (TAO_OutputCDR &, const FTRT::FTSequenceNumberServiceContext &);
TAO_FtRtEvent_Export CORBA::Boolean operator>> (TAO_InputCDR &, FTRT::FTSequenceNumberServiceContext &);

// TAO_IDL - Generated from
// be/be_visitor_structure/cdr_op_ch.cpp:54

TAO_FtRtEvent_Export CORBA::Boolean operator<< (TAO_OutputCDR &, const FTRT::FTForwardServiceContext &);
TAO_FtRtEvent_Export CORBA::Boolean operator>> (TAO_InputCDR &, FTRT::FTForwardServiceContext &);

// TAO_IDL - Generated from
// be/be_visitor_exception/cdr_op_ch.cpp:52

TAO_FtRtEvent_Export CORBA::Boolean operator<< (TAO_OutputCDR &, const FTRT::OutOfSequence &);
TAO_FtRtEvent_Export CORBA::Boolean operator>> (TAO_InputCDR &, FTRT::OutOfSequence &);

// TAO_IDL - Generated from
// be/be_visitor_exception/cdr_op_ch.cpp:52

TAO_FtRtEvent_Export CORBA::Boolean operator<< (TAO_OutputCDR &, const FTRT::TransactionDepthTooHigh &);
TAO_FtRtEvent_Export CORBA::Boolean operator>> (TAO_InputCDR &, FTRT::TransactionDepthTooHigh &);

// TAO_IDL - Generated from
// be/be_visitor_sequence/cdr_op_ch.cpp:71

#if !defined _TAO_CDR_OP_FTRT_State_H_
#define _TAO_CDR_OP_FTRT_State_H_

TAO_FtRtEvent_Export CORBA::Boolean operator<< (
    TAO_OutputCDR &,
    const FTRT::State &
  );
TAO_FtRtEvent_Export CORBA::Boolean operator>> (
    TAO_InputCDR &,
    FTRT::State &
  );

#endif /* _TAO_CDR_OP_FTRT_State_H_ */

// TAO_IDL - Generated from
// be/be_visitor_exception/cdr_op_ch.cpp:52

TAO_FtRtEvent_Export CORBA::Boolean operator<< (TAO_OutputCDR &, const FTRT::InvalidUpdate &);
TAO_FtRtEvent_Export CORBA::Boolean operator>> (TAO_InputCDR &, FTRT::InvalidUpdate &);

// TAO_IDL - Generated from
// be/be_visitor_interface/cdr_op_ch.cpp:55

TAO_FtRtEvent_Export CORBA::Boolean operator<< (TAO_OutputCDR &, const FTRT::Updateable_ptr );
TAO_FtRtEvent_Export CORBA::Boolean operator>> (TAO_InputCDR &, FTRT::Updateable_ptr &);

// TAO_IDL - Generated from
// be/be_valuetype.cpp:434

namespace CORBA
{
  TAO_NAMESPACE_STORAGE_CLASS void add_ref (FTRT::AMI_UpdateableExceptionHolder *);
  TAO_NAMESPACE_STORAGE_CLASS void remove_ref (FTRT::AMI_UpdateableExceptionHolder *);
}

// TAO_IDL - Generated from
// be/be_visitor_valuetype/cdr_op_ch.cpp:61

TAO_FtRtEvent_Export CORBA::Boolean operator<< (TAO_OutputCDR &, const FTRT::AMI_UpdateableExceptionHolder *);
TAO_FtRtEvent_Export CORBA::Boolean operator>> (TAO_InputCDR &, FTRT::AMI_UpdateableExceptionHolder *&);

// TAO_IDL - Generated from
// be/be_visitor_interface/cdr_op_ch.cpp:55

TAO_FtRtEvent_Export CORBA::Boolean operator<< (TAO_OutputCDR &, const FTRT::AMI_UpdateableHandler_ptr );
TAO_FtRtEvent_Export CORBA::Boolean operator>> (TAO_InputCDR &, FTRT::AMI_UpdateableHandler_ptr &);

// TAO_IDL - Generated from
// be/be_codegen.cpp:958

#if defined (__ACE_INLINE__)
#include "FTRTC.inl"
#endif /* defined __ACE_INLINE__ */

#if defined(_MSC_VER) && (_MSC_VER >= 1200)
#pragma warning(pop)
#endif /* _MSC_VER */

#if defined (__BORLANDC__)
#pragma option pop
#endif /* __BORLANDC__ */

#include /**/ "ace/post.h"

#endif /* ifndef */

