/*
 *  MICO --- a free CORBA implementation
 *  Copyright (C) 1997-98 Kay Roemer & Arno Puder
 *
 *  This file was automatically generated. DO NOT EDIT!
 */

#if !defined(__SEQUENCES_H__) || defined(MICO_NO_TOPLEVEL_MODULES)
#define __SEQUENCES_H__

#ifndef MICO_NO_TOPLEVEL_MODULES
#include <CORBA.h>
#include <mico/throw.h>
#endif

class Sequences;
typedef Sequences *Sequences_ptr;
typedef Sequences_ptr SequencesRef;
typedef ObjVar<Sequences> Sequences_var;
typedef Sequences_var Sequences_out;


// Common definitions for interface Sequences
class Sequences : virtual public CORBA::Object
{
  public:
    virtual ~Sequences();
    static Sequences_ptr _duplicate( Sequences_ptr obj );
    static Sequences_ptr _narrow( CORBA::Object_ptr obj );
    static Sequences_ptr _nil();

    virtual void *_narrow_helper( const char *repoid );
    static vector<CORBA::Narrow_proto> *_narrow_helpers;
    static bool _narrow_helper2( CORBA::Object_ptr obj );

    typedef BoundedSequenceTmpl<CORBA::Short,MICO_TID_DEF,10> Ten_shorts;
    #ifdef _WINDOWS
    static Ten_shorts _dummy_Ten_shorts;
    #endif
    typedef TSeqVar<BoundedSequenceTmpl<CORBA::Short,MICO_TID_DEF,10> > Ten_shorts_var;
    typedef Ten_shorts_var Ten_shorts_out;

    typedef SequenceTmpl<CORBA::Long,MICO_TID_DEF> Longs;
    #ifdef _WINDOWS
    static Longs _dummy_Longs;
    #endif
    typedef TSeqVar<SequenceTmpl<CORBA::Long,MICO_TID_DEF> > Longs_var;
    typedef Longs_var Longs_out;

    virtual Longs* foo( const Ten_shorts& x, Ten_shorts*& y, Longs& z ) = 0;
  protected:
    Sequences() {};
  private:
    Sequences( const Sequences& );
    void operator=( const Sequences& );
};

// Stub for interface Sequences
class Sequences_stub:
  virtual public Sequences
{
  public:
    virtual ~Sequences_stub();
    Longs* foo( const Ten_shorts& x, Ten_shorts*& y, Longs& z );
  private:
    void operator=( const Sequences_stub& );
};

class Sequences_skel :
  virtual public StaticMethodDispatcher,
  virtual public Sequences
{
  public:
    Sequences_skel( const CORBA::BOA::ReferenceData & = CORBA::BOA::ReferenceData() );
    virtual ~Sequences_skel();
    Sequences_skel( CORBA::Object_ptr obj );
    virtual bool dispatch( CORBA::StaticServerRequest_ptr _req, CORBA::Environment &_env );
    Sequences_ptr _this();

};

#ifndef MICO_CONF_NO_POA

#endif // MICO_CONF_NO_POA

#if !defined(MICO_NO_TOPLEVEL_MODULES) || defined(MICO_MODULE__GLOBAL)

extern CORBA::StaticTypeInfo *_marshaller_Sequences;
extern CORBA::StaticTypeInfo *_marshaller__seq_10b_short;
#endif // !defined(MICO_NO_TOPLEVEL_MODULES) || defined(MICO_MODULE__GLOBAL)


#if !defined(MICO_NO_TOPLEVEL_MODULES) && !defined(MICO_IN_GENERATED_CODE)
#include <mico/template_impl.h>
#endif

#endif
