// **********************************************************************
//
// Generated by the ORBacus IDL-to-C++ Translator
//
// Copyright (c) 1998
// Object-Oriented Concepts, Inc.
// Billerica, MA, USA
//
// Copyright (c) 1998
// Object-Oriented Concepts GmbH
// Ettlingen, Germany
//
// All Rights Reserved
//
// **********************************************************************

// Version: 3.0.1
// License: non-commercial

#ifndef __bisupclient_h__
#define __bisupclient_h__

//
// IDL:bisupClientInterface:1.0
//
class bisupClientInterface;
typedef bisupClientInterface* bisupClientInterface_ptr;
typedef bisupClientInterface* bisupClientInterfaceRef;
void OBDuplicate(bisupClientInterface_ptr);
void OBRelease(bisupClientInterface_ptr);
typedef OBObjVar< bisupClientInterface > bisupClientInterface_var;

//
// IDL:msgSequence:1.0
//
typedef OBFixSeq< CORBA_Short > msgSequence;
typedef OBSeqVar< OBFixSeq< CORBA_Short > > msgSequence_var;
extern OBTypeCodeConst _tc_msgSequence;

//
// IDL:bisupClientInterface:1.0
//
class bisupClientInterface : virtual public CORBA_Object
{
    bisupClientInterface(const bisupClientInterface&);
    void operator=(const bisupClientInterface&);

protected:

    bisupClientInterface() { }

public:

    static inline bisupClientInterface_ptr
    _duplicate(bisupClientInterface_ptr p)
    {
        if(p)
            p -> _OB_incRef();
        return p;
    }

    static inline bisupClientInterface_ptr
    _nil()
    {
        return 0;
    }

    static bisupClientInterface_ptr _narrow(CORBA_Object_ptr);
    virtual void* _OB_narrowHelp(const char*) const;
    virtual const char* _OB_typeId() const;

    friend void OBUnmarshal(bisupClientInterface_ptr&, const CORBA_Octet*&, bool);

    friend CORBA_Boolean operator>>=(const CORBA_Any&, bisupClientInterface_ptr&);

    //
    // IDL:bisupClientInterface/start:1.0
    //
    virtual void start(CORBA_Long numberOfMessages);
};

extern OBTypeCodeConst _tc_bisupClientInterface;

//
// IDL:bisupClientInterface:1.0
//
inline void
CORBA_release(bisupClientInterface_ptr p)
{
    if(p)
        p -> _OB_decRef();
}

inline CORBA_Boolean
CORBA_is_nil(bisupClientInterface_ptr p)
{
    return p == 0;
}

inline void
OBMarshal(bisupClientInterface_ptr p, CORBA_Octet*& oct)
{
    OBMarshal((CORBA_Object_ptr)p, oct);
}

inline void
OBMarshalCount(bisupClientInterface_ptr p, CORBA_ULong& count)
{
    OBMarshalCount((CORBA_Object_ptr)p, count);
}

void OBUnmarshal(bisupClientInterface_ptr&, const CORBA_Octet*&, bool);

void operator<<=(CORBA_Any&, bisupClientInterface_ptr);
void operator<<=(CORBA_Any&, bisupClientInterface_ptr*);
CORBA_Boolean operator>>=(const CORBA_Any&, bisupClientInterface_ptr&);

inline void
operator<<=(CORBA_Any_var& any, bisupClientInterface_ptr val)
{
    any.inout() <<= val;
}

inline void
operator<<=(CORBA_Any_var& any, bisupClientInterface_ptr* val)
{
    any.inout() <<= val;
}

inline CORBA_Boolean
operator>>=(const CORBA_Any_var& any, bisupClientInterface_ptr& val)
{
    return any.in() >>= val;
}

//
// OBFixSeq< CORBA_Short >
//
#ifndef OB_use_OBFixSeq_CORBA__Short
#define OB_use_OBFixSeq_CORBA__Short
#define OB_use_OBFixSeq_CORBA__Short_from_bisupclient_h

void operator<<=(CORBA_Any&, OBFixSeq< CORBA_Short >*);
void operator<<=(CORBA_Any&, const OBFixSeq< CORBA_Short >&);
CORBA_Boolean operator>>=(const CORBA_Any&, OBFixSeq< CORBA_Short >*&);

inline void
operator<<=(CORBA_Any_var& any, OBFixSeq< CORBA_Short >* val)
{
    any.inout() <<= val;
}

inline void
operator<<=(CORBA_Any_var& any, const OBFixSeq< CORBA_Short >& val)
{
    any.inout() <<= val;
}

inline CORBA_Boolean
operator>>=(const CORBA_Any_var& any, OBFixSeq< CORBA_Short >*& val)
{
    return any.in() >>= val;
}

#endif

#endif
