// This file is generated by omniidl (C++ backend)- omniORB_4_1. Do not edit.
#ifndef __SALOMEDS_hh__
#define __SALOMEDS_hh__

#ifndef __CORBA_H_EXTERNAL_GUARD__
#include <omniORB4/CORBA.h>
#endif

#ifndef  USE_stub_in_nt_dll
# define USE_stub_in_nt_dll_NOT_DEFINED_SALOMEDS
#endif
#ifndef  USE_core_stub_in_nt_dll
# define USE_core_stub_in_nt_dll_NOT_DEFINED_SALOMEDS
#endif
#ifndef  USE_dyn_stub_in_nt_dll
# define USE_dyn_stub_in_nt_dll_NOT_DEFINED_SALOMEDS
#endif



#ifndef __SALOME__Exception_hh_EXTERNAL_GUARD__
#define __SALOME__Exception_hh_EXTERNAL_GUARD__
#include <SALOME_Exception.hh>
#endif
#ifndef __SALOME__GenericObj_hh_EXTERNAL_GUARD__
#define __SALOME__GenericObj_hh_EXTERNAL_GUARD__
#include <SALOME_GenericObj.hh>
#endif



#ifdef USE_stub_in_nt_dll
# ifndef USE_core_stub_in_nt_dll
#  define USE_core_stub_in_nt_dll
# endif
# ifndef USE_dyn_stub_in_nt_dll
#  define USE_dyn_stub_in_nt_dll
# endif
#endif

#ifdef _core_attr
# error "A local CPP macro _core_attr has already been defined."
#else
# ifdef  USE_core_stub_in_nt_dll
#  define _core_attr _OMNIORB_NTDLL_IMPORT
# else
#  define _core_attr
# endif
#endif

#ifdef _dyn_attr
# error "A local CPP macro _dyn_attr has already been defined."
#else
# ifdef  USE_dyn_stub_in_nt_dll
#  define _dyn_attr _OMNIORB_NTDLL_IMPORT
# else
#  define _dyn_attr
# endif
#endif





_CORBA_MODULE SALOMEDS

_CORBA_MODULE_BEG

  _CORBA_MODULE_VAR _dyn_attr const ::CORBA::TypeCode_ptr _tc_URL;

  typedef char* URL;
  typedef ::CORBA::String_var URL_var;
  typedef ::CORBA::String_out URL_out;

  _CORBA_MODULE_VAR _dyn_attr const ::CORBA::TypeCode_ptr _tc_ID;

  typedef char* ID;
  typedef ::CORBA::String_var ID_var;
  typedef ::CORBA::String_out ID_out;

  _CORBA_MODULE_VAR _dyn_attr const ::CORBA::TypeCode_ptr _tc_PersistentReference;

  typedef char* PersistentReference;
  typedef ::CORBA::String_var PersistentReference_var;
  typedef ::CORBA::String_out PersistentReference_out;

  _CORBA_MODULE_VAR _dyn_attr const ::CORBA::TypeCode_ptr _tc_SalomeReference;

  typedef char* SalomeReference;
  typedef ::CORBA::String_var SalomeReference_var;
  typedef ::CORBA::String_out SalomeReference_out;

  _CORBA_MODULE_VAR _dyn_attr const ::CORBA::TypeCode_ptr _tc_ListOfOpenStudies;

  class ListOfOpenStudies_var;

  class ListOfOpenStudies : public _CORBA_Unbounded_Sequence_String {
  public:
    typedef ListOfOpenStudies_var _var_type;
    inline ListOfOpenStudies() {}
    inline ListOfOpenStudies(const ListOfOpenStudies& _s)
      : _CORBA_Unbounded_Sequence_String(_s) {}

    inline ListOfOpenStudies(_CORBA_ULong _max)
      : _CORBA_Unbounded_Sequence_String(_max) {}
    inline ListOfOpenStudies(_CORBA_ULong _max, _CORBA_ULong _len, char** _val, _CORBA_Boolean _rel=0)
      : _CORBA_Unbounded_Sequence_String(_max, _len, _val, _rel) {}

  

    inline ListOfOpenStudies& operator = (const ListOfOpenStudies& _s) {
      _CORBA_Unbounded_Sequence_String::operator=(_s);
      return *this;
    }
  };

  class ListOfOpenStudies_out;

  class ListOfOpenStudies_var {
  public:
    inline ListOfOpenStudies_var() : _pd_seq(0) {}
    inline ListOfOpenStudies_var(ListOfOpenStudies* _s) : _pd_seq(_s) {}
    inline ListOfOpenStudies_var(const ListOfOpenStudies_var& _s) {
      if( _s._pd_seq )  _pd_seq = new ListOfOpenStudies(*_s._pd_seq);
      else              _pd_seq = 0;
    }
    inline ~ListOfOpenStudies_var() { if( _pd_seq )  delete _pd_seq; }
      
    inline ListOfOpenStudies_var& operator = (ListOfOpenStudies* _s) {
      if( _pd_seq )  delete _pd_seq;
      _pd_seq = _s;
      return *this;
    }
    inline ListOfOpenStudies_var& operator = (const ListOfOpenStudies_var& _s) {
      if( _s._pd_seq ) {
        if( !_pd_seq )  _pd_seq = new ListOfOpenStudies;
        *_pd_seq = *_s._pd_seq;
      } else if( _pd_seq ) {
        delete _pd_seq;
        _pd_seq = 0;
      }
      return *this;
    }
    inline _CORBA_String_element operator [] (_CORBA_ULong _s) {
      return (*_pd_seq)[_s];
    }

  

    inline ListOfOpenStudies* operator -> () { return _pd_seq; }
    inline const ListOfOpenStudies* operator -> () const { return _pd_seq; }
#if defined(__GNUG__)
    inline operator ListOfOpenStudies& () const { return *_pd_seq; }
#else
    inline operator const ListOfOpenStudies& () const { return *_pd_seq; }
    inline operator ListOfOpenStudies& () { return *_pd_seq; }
#endif
      
    inline const ListOfOpenStudies& in() const { return *_pd_seq; }
    inline ListOfOpenStudies&       inout()    { return *_pd_seq; }
    inline ListOfOpenStudies*&      out() {
      if( _pd_seq ) { delete _pd_seq; _pd_seq = 0; }
      return _pd_seq;
    }
    inline ListOfOpenStudies* _retn() { ListOfOpenStudies* tmp = _pd_seq; _pd_seq = 0; return tmp; }
      
    friend class ListOfOpenStudies_out;
    
  private:
    ListOfOpenStudies* _pd_seq;
  };

  class ListOfOpenStudies_out {
  public:
    inline ListOfOpenStudies_out(ListOfOpenStudies*& _s) : _data(_s) { _data = 0; }
    inline ListOfOpenStudies_out(ListOfOpenStudies_var& _s)
      : _data(_s._pd_seq) { _s = (ListOfOpenStudies*) 0; }
    inline ListOfOpenStudies_out(const ListOfOpenStudies_out& _s) : _data(_s._data) {}
    inline ListOfOpenStudies_out& operator = (const ListOfOpenStudies_out& _s) {
      _data = _s._data;
      return *this;
    }
    inline ListOfOpenStudies_out& operator = (ListOfOpenStudies* _s) {
      _data = _s;
      return *this;
    }
    inline operator ListOfOpenStudies*&()  { return _data; }
    inline ListOfOpenStudies*& ptr()       { return _data; }
    inline ListOfOpenStudies* operator->() { return _data; }

    inline _CORBA_String_element operator [] (_CORBA_ULong _i) {
      return (*_data)[_i];
    }

  

    ListOfOpenStudies*& _data;

  private:
    ListOfOpenStudies_out();
    ListOfOpenStudies_out& operator=(const ListOfOpenStudies_var&);
  };

  _CORBA_MODULE_VAR _dyn_attr const ::CORBA::TypeCode_ptr _tc_ListOfFileNames;

  class ListOfFileNames_var;

  class ListOfFileNames : public _CORBA_Unbounded_Sequence_String {
  public:
    typedef ListOfFileNames_var _var_type;
    inline ListOfFileNames() {}
    inline ListOfFileNames(const ListOfFileNames& _s)
      : _CORBA_Unbounded_Sequence_String(_s) {}

    inline ListOfFileNames(_CORBA_ULong _max)
      : _CORBA_Unbounded_Sequence_String(_max) {}
    inline ListOfFileNames(_CORBA_ULong _max, _CORBA_ULong _len, char** _val, _CORBA_Boolean _rel=0)
      : _CORBA_Unbounded_Sequence_String(_max, _len, _val, _rel) {}

  

    inline ListOfFileNames& operator = (const ListOfFileNames& _s) {
      _CORBA_Unbounded_Sequence_String::operator=(_s);
      return *this;
    }
  };

  class ListOfFileNames_out;

  class ListOfFileNames_var {
  public:
    inline ListOfFileNames_var() : _pd_seq(0) {}
    inline ListOfFileNames_var(ListOfFileNames* _s) : _pd_seq(_s) {}
    inline ListOfFileNames_var(const ListOfFileNames_var& _s) {
      if( _s._pd_seq )  _pd_seq = new ListOfFileNames(*_s._pd_seq);
      else              _pd_seq = 0;
    }
    inline ~ListOfFileNames_var() { if( _pd_seq )  delete _pd_seq; }
      
    inline ListOfFileNames_var& operator = (ListOfFileNames* _s) {
      if( _pd_seq )  delete _pd_seq;
      _pd_seq = _s;
      return *this;
    }
    inline ListOfFileNames_var& operator = (const ListOfFileNames_var& _s) {
      if( _s._pd_seq ) {
        if( !_pd_seq )  _pd_seq = new ListOfFileNames;
        *_pd_seq = *_s._pd_seq;
      } else if( _pd_seq ) {
        delete _pd_seq;
        _pd_seq = 0;
      }
      return *this;
    }
    inline _CORBA_String_element operator [] (_CORBA_ULong _s) {
      return (*_pd_seq)[_s];
    }

  

    inline ListOfFileNames* operator -> () { return _pd_seq; }
    inline const ListOfFileNames* operator -> () const { return _pd_seq; }
#if defined(__GNUG__)
    inline operator ListOfFileNames& () const { return *_pd_seq; }
#else
    inline operator const ListOfFileNames& () const { return *_pd_seq; }
    inline operator ListOfFileNames& () { return *_pd_seq; }
#endif
      
    inline const ListOfFileNames& in() const { return *_pd_seq; }
    inline ListOfFileNames&       inout()    { return *_pd_seq; }
    inline ListOfFileNames*&      out() {
      if( _pd_seq ) { delete _pd_seq; _pd_seq = 0; }
      return _pd_seq;
    }
    inline ListOfFileNames* _retn() { ListOfFileNames* tmp = _pd_seq; _pd_seq = 0; return tmp; }
      
    friend class ListOfFileNames_out;
    
  private:
    ListOfFileNames* _pd_seq;
  };

  class ListOfFileNames_out {
  public:
    inline ListOfFileNames_out(ListOfFileNames*& _s) : _data(_s) { _data = 0; }
    inline ListOfFileNames_out(ListOfFileNames_var& _s)
      : _data(_s._pd_seq) { _s = (ListOfFileNames*) 0; }
    inline ListOfFileNames_out(const ListOfFileNames_out& _s) : _data(_s._data) {}
    inline ListOfFileNames_out& operator = (const ListOfFileNames_out& _s) {
      _data = _s._data;
      return *this;
    }
    inline ListOfFileNames_out& operator = (ListOfFileNames* _s) {
      _data = _s;
      return *this;
    }
    inline operator ListOfFileNames*&()  { return _data; }
    inline ListOfFileNames*& ptr()       { return _data; }
    inline ListOfFileNames* operator->() { return _data; }

    inline _CORBA_String_element operator [] (_CORBA_ULong _i) {
      return (*_data)[_i];
    }

  

    ListOfFileNames*& _data;

  private:
    ListOfFileNames_out();
    ListOfFileNames_out& operator=(const ListOfFileNames_var&);
  };

  _CORBA_MODULE_VAR _dyn_attr const ::CORBA::TypeCode_ptr _tc_ListOfDates;

  class ListOfDates_var;

  class ListOfDates : public _CORBA_Unbounded_Sequence_String {
  public:
    typedef ListOfDates_var _var_type;
    inline ListOfDates() {}
    inline ListOfDates(const ListOfDates& _s)
      : _CORBA_Unbounded_Sequence_String(_s) {}

    inline ListOfDates(_CORBA_ULong _max)
      : _CORBA_Unbounded_Sequence_String(_max) {}
    inline ListOfDates(_CORBA_ULong _max, _CORBA_ULong _len, char** _val, _CORBA_Boolean _rel=0)
      : _CORBA_Unbounded_Sequence_String(_max, _len, _val, _rel) {}

  

    inline ListOfDates& operator = (const ListOfDates& _s) {
      _CORBA_Unbounded_Sequence_String::operator=(_s);
      return *this;
    }
  };

  class ListOfDates_out;

  class ListOfDates_var {
  public:
    inline ListOfDates_var() : _pd_seq(0) {}
    inline ListOfDates_var(ListOfDates* _s) : _pd_seq(_s) {}
    inline ListOfDates_var(const ListOfDates_var& _s) {
      if( _s._pd_seq )  _pd_seq = new ListOfDates(*_s._pd_seq);
      else              _pd_seq = 0;
    }
    inline ~ListOfDates_var() { if( _pd_seq )  delete _pd_seq; }
      
    inline ListOfDates_var& operator = (ListOfDates* _s) {
      if( _pd_seq )  delete _pd_seq;
      _pd_seq = _s;
      return *this;
    }
    inline ListOfDates_var& operator = (const ListOfDates_var& _s) {
      if( _s._pd_seq ) {
        if( !_pd_seq )  _pd_seq = new ListOfDates;
        *_pd_seq = *_s._pd_seq;
      } else if( _pd_seq ) {
        delete _pd_seq;
        _pd_seq = 0;
      }
      return *this;
    }
    inline _CORBA_String_element operator [] (_CORBA_ULong _s) {
      return (*_pd_seq)[_s];
    }

  

    inline ListOfDates* operator -> () { return _pd_seq; }
    inline const ListOfDates* operator -> () const { return _pd_seq; }
#if defined(__GNUG__)
    inline operator ListOfDates& () const { return *_pd_seq; }
#else
    inline operator const ListOfDates& () const { return *_pd_seq; }
    inline operator ListOfDates& () { return *_pd_seq; }
#endif
      
    inline const ListOfDates& in() const { return *_pd_seq; }
    inline ListOfDates&       inout()    { return *_pd_seq; }
    inline ListOfDates*&      out() {
      if( _pd_seq ) { delete _pd_seq; _pd_seq = 0; }
      return _pd_seq;
    }
    inline ListOfDates* _retn() { ListOfDates* tmp = _pd_seq; _pd_seq = 0; return tmp; }
      
    friend class ListOfDates_out;
    
  private:
    ListOfDates* _pd_seq;
  };

  class ListOfDates_out {
  public:
    inline ListOfDates_out(ListOfDates*& _s) : _data(_s) { _data = 0; }
    inline ListOfDates_out(ListOfDates_var& _s)
      : _data(_s._pd_seq) { _s = (ListOfDates*) 0; }
    inline ListOfDates_out(const ListOfDates_out& _s) : _data(_s._data) {}
    inline ListOfDates_out& operator = (const ListOfDates_out& _s) {
      _data = _s._data;
      return *this;
    }
    inline ListOfDates_out& operator = (ListOfDates* _s) {
      _data = _s;
      return *this;
    }
    inline operator ListOfDates*&()  { return _data; }
    inline ListOfDates*& ptr()       { return _data; }
    inline ListOfDates* operator->() { return _data; }

    inline _CORBA_String_element operator [] (_CORBA_ULong _i) {
      return (*_data)[_i];
    }

  

    ListOfDates*& _data;

  private:
    ListOfDates_out();
    ListOfDates_out& operator=(const ListOfDates_var&);
  };

  _CORBA_MODULE_VAR _dyn_attr const ::CORBA::TypeCode_ptr _tc_ListOfStrings;

  class ListOfStrings_var;

  class ListOfStrings : public _CORBA_Unbounded_Sequence_String {
  public:
    typedef ListOfStrings_var _var_type;
    inline ListOfStrings() {}
    inline ListOfStrings(const ListOfStrings& _s)
      : _CORBA_Unbounded_Sequence_String(_s) {}

    inline ListOfStrings(_CORBA_ULong _max)
      : _CORBA_Unbounded_Sequence_String(_max) {}
    inline ListOfStrings(_CORBA_ULong _max, _CORBA_ULong _len, char** _val, _CORBA_Boolean _rel=0)
      : _CORBA_Unbounded_Sequence_String(_max, _len, _val, _rel) {}

  

    inline ListOfStrings& operator = (const ListOfStrings& _s) {
      _CORBA_Unbounded_Sequence_String::operator=(_s);
      return *this;
    }
  };

  class ListOfStrings_out;

  class ListOfStrings_var {
  public:
    inline ListOfStrings_var() : _pd_seq(0) {}
    inline ListOfStrings_var(ListOfStrings* _s) : _pd_seq(_s) {}
    inline ListOfStrings_var(const ListOfStrings_var& _s) {
      if( _s._pd_seq )  _pd_seq = new ListOfStrings(*_s._pd_seq);
      else              _pd_seq = 0;
    }
    inline ~ListOfStrings_var() { if( _pd_seq )  delete _pd_seq; }
      
    inline ListOfStrings_var& operator = (ListOfStrings* _s) {
      if( _pd_seq )  delete _pd_seq;
      _pd_seq = _s;
      return *this;
    }
    inline ListOfStrings_var& operator = (const ListOfStrings_var& _s) {
      if( _s._pd_seq ) {
        if( !_pd_seq )  _pd_seq = new ListOfStrings;
        *_pd_seq = *_s._pd_seq;
      } else if( _pd_seq ) {
        delete _pd_seq;
        _pd_seq = 0;
      }
      return *this;
    }
    inline _CORBA_String_element operator [] (_CORBA_ULong _s) {
      return (*_pd_seq)[_s];
    }

  

    inline ListOfStrings* operator -> () { return _pd_seq; }
    inline const ListOfStrings* operator -> () const { return _pd_seq; }
#if defined(__GNUG__)
    inline operator ListOfStrings& () const { return *_pd_seq; }
#else
    inline operator const ListOfStrings& () const { return *_pd_seq; }
    inline operator ListOfStrings& () { return *_pd_seq; }
#endif
      
    inline const ListOfStrings& in() const { return *_pd_seq; }
    inline ListOfStrings&       inout()    { return *_pd_seq; }
    inline ListOfStrings*&      out() {
      if( _pd_seq ) { delete _pd_seq; _pd_seq = 0; }
      return _pd_seq;
    }
    inline ListOfStrings* _retn() { ListOfStrings* tmp = _pd_seq; _pd_seq = 0; return tmp; }
      
    friend class ListOfStrings_out;
    
  private:
    ListOfStrings* _pd_seq;
  };

  class ListOfStrings_out {
  public:
    inline ListOfStrings_out(ListOfStrings*& _s) : _data(_s) { _data = 0; }
    inline ListOfStrings_out(ListOfStrings_var& _s)
      : _data(_s._pd_seq) { _s = (ListOfStrings*) 0; }
    inline ListOfStrings_out(const ListOfStrings_out& _s) : _data(_s._data) {}
    inline ListOfStrings_out& operator = (const ListOfStrings_out& _s) {
      _data = _s._data;
      return *this;
    }
    inline ListOfStrings_out& operator = (ListOfStrings* _s) {
      _data = _s;
      return *this;
    }
    inline operator ListOfStrings*&()  { return _data; }
    inline ListOfStrings*& ptr()       { return _data; }
    inline ListOfStrings* operator->() { return _data; }

    inline _CORBA_String_element operator [] (_CORBA_ULong _i) {
      return (*_data)[_i];
    }

  

    ListOfStrings*& _data;

  private:
    ListOfStrings_out();
    ListOfStrings_out& operator=(const ListOfStrings_var&);
  };

  _CORBA_MODULE_VAR _dyn_attr const ::CORBA::TypeCode_ptr _tc_ListOfListOfStrings;

  class ListOfListOfStrings_var;

  class ListOfListOfStrings : public _CORBA_Unbounded_Sequence< ListOfStrings >  {
  public:
    typedef ListOfListOfStrings_var _var_type;
    inline ListOfListOfStrings() {}
    inline ListOfListOfStrings(const ListOfListOfStrings& _s)
      : _CORBA_Unbounded_Sequence< ListOfStrings > (_s) {}

    inline ListOfListOfStrings(_CORBA_ULong _max)
      : _CORBA_Unbounded_Sequence< ListOfStrings > (_max) {}
    inline ListOfListOfStrings(_CORBA_ULong _max, _CORBA_ULong _len, ListOfStrings* _val, _CORBA_Boolean _rel=0)
      : _CORBA_Unbounded_Sequence< ListOfStrings > (_max, _len, _val, _rel) {}

  

    inline ListOfListOfStrings& operator = (const ListOfListOfStrings& _s) {
      _CORBA_Unbounded_Sequence< ListOfStrings > ::operator=(_s);
      return *this;
    }
  };

  class ListOfListOfStrings_out;

  class ListOfListOfStrings_var {
  public:
    inline ListOfListOfStrings_var() : _pd_seq(0) {}
    inline ListOfListOfStrings_var(ListOfListOfStrings* _s) : _pd_seq(_s) {}
    inline ListOfListOfStrings_var(const ListOfListOfStrings_var& _s) {
      if( _s._pd_seq )  _pd_seq = new ListOfListOfStrings(*_s._pd_seq);
      else              _pd_seq = 0;
    }
    inline ~ListOfListOfStrings_var() { if( _pd_seq )  delete _pd_seq; }
      
    inline ListOfListOfStrings_var& operator = (ListOfListOfStrings* _s) {
      if( _pd_seq )  delete _pd_seq;
      _pd_seq = _s;
      return *this;
    }
    inline ListOfListOfStrings_var& operator = (const ListOfListOfStrings_var& _s) {
      if( _s._pd_seq ) {
        if( !_pd_seq )  _pd_seq = new ListOfListOfStrings;
        *_pd_seq = *_s._pd_seq;
      } else if( _pd_seq ) {
        delete _pd_seq;
        _pd_seq = 0;
      }
      return *this;
    }
    inline ListOfStrings& operator [] (_CORBA_ULong _s) {
      return (*_pd_seq)[_s];
    }

  

    inline ListOfListOfStrings* operator -> () { return _pd_seq; }
    inline const ListOfListOfStrings* operator -> () const { return _pd_seq; }
#if defined(__GNUG__)
    inline operator ListOfListOfStrings& () const { return *_pd_seq; }
#else
    inline operator const ListOfListOfStrings& () const { return *_pd_seq; }
    inline operator ListOfListOfStrings& () { return *_pd_seq; }
#endif
      
    inline const ListOfListOfStrings& in() const { return *_pd_seq; }
    inline ListOfListOfStrings&       inout()    { return *_pd_seq; }
    inline ListOfListOfStrings*&      out() {
      if( _pd_seq ) { delete _pd_seq; _pd_seq = 0; }
      return _pd_seq;
    }
    inline ListOfListOfStrings* _retn() { ListOfListOfStrings* tmp = _pd_seq; _pd_seq = 0; return tmp; }
      
    friend class ListOfListOfStrings_out;
    
  private:
    ListOfListOfStrings* _pd_seq;
  };

  class ListOfListOfStrings_out {
  public:
    inline ListOfListOfStrings_out(ListOfListOfStrings*& _s) : _data(_s) { _data = 0; }
    inline ListOfListOfStrings_out(ListOfListOfStrings_var& _s)
      : _data(_s._pd_seq) { _s = (ListOfListOfStrings*) 0; }
    inline ListOfListOfStrings_out(const ListOfListOfStrings_out& _s) : _data(_s._data) {}
    inline ListOfListOfStrings_out& operator = (const ListOfListOfStrings_out& _s) {
      _data = _s._data;
      return *this;
    }
    inline ListOfListOfStrings_out& operator = (ListOfListOfStrings* _s) {
      _data = _s;
      return *this;
    }
    inline operator ListOfListOfStrings*&()  { return _data; }
    inline ListOfListOfStrings*& ptr()       { return _data; }
    inline ListOfListOfStrings* operator->() { return _data; }

    inline ListOfStrings& operator [] (_CORBA_ULong _i) {
      return (*_data)[_i];
    }

  

    ListOfListOfStrings*& _data;

  private:
    ListOfListOfStrings_out();
    ListOfListOfStrings_out& operator=(const ListOfListOfStrings_var&);
  };

  _CORBA_MODULE_VAR _dyn_attr const ::CORBA::TypeCode_ptr _tc_TMPFile;

  class TMPFile_var;

  class TMPFile : public _CORBA_Unbounded_Sequence_Octet {
  public:
    typedef TMPFile_var _var_type;
    inline TMPFile() {}
    inline TMPFile(const TMPFile& _s)
      : _CORBA_Unbounded_Sequence_Octet(_s) {}

    inline TMPFile(_CORBA_ULong _max)
      : _CORBA_Unbounded_Sequence_Octet(_max) {}
    inline TMPFile(_CORBA_ULong _max, _CORBA_ULong _len, ::CORBA::Octet* _val, _CORBA_Boolean _rel=0)
      : _CORBA_Unbounded_Sequence_Octet(_max, _len, _val, _rel) {}

  

    inline TMPFile& operator = (const TMPFile& _s) {
      _CORBA_Unbounded_Sequence_Octet::operator=(_s);
      return *this;
    }
  };

  class TMPFile_out;

  class TMPFile_var {
  public:
    inline TMPFile_var() : _pd_seq(0) {}
    inline TMPFile_var(TMPFile* _s) : _pd_seq(_s) {}
    inline TMPFile_var(const TMPFile_var& _s) {
      if( _s._pd_seq )  _pd_seq = new TMPFile(*_s._pd_seq);
      else              _pd_seq = 0;
    }
    inline ~TMPFile_var() { if( _pd_seq )  delete _pd_seq; }
      
    inline TMPFile_var& operator = (TMPFile* _s) {
      if( _pd_seq )  delete _pd_seq;
      _pd_seq = _s;
      return *this;
    }
    inline TMPFile_var& operator = (const TMPFile_var& _s) {
      if( _s._pd_seq ) {
        if( !_pd_seq )  _pd_seq = new TMPFile;
        *_pd_seq = *_s._pd_seq;
      } else if( _pd_seq ) {
        delete _pd_seq;
        _pd_seq = 0;
      }
      return *this;
    }
    inline ::CORBA::Octet& operator [] (_CORBA_ULong _s) {
      return (*_pd_seq)[_s];
    }

  

    inline TMPFile* operator -> () { return _pd_seq; }
    inline const TMPFile* operator -> () const { return _pd_seq; }
#if defined(__GNUG__)
    inline operator TMPFile& () const { return *_pd_seq; }
#else
    inline operator const TMPFile& () const { return *_pd_seq; }
    inline operator TMPFile& () { return *_pd_seq; }
#endif
      
    inline const TMPFile& in() const { return *_pd_seq; }
    inline TMPFile&       inout()    { return *_pd_seq; }
    inline TMPFile*&      out() {
      if( _pd_seq ) { delete _pd_seq; _pd_seq = 0; }
      return _pd_seq;
    }
    inline TMPFile* _retn() { TMPFile* tmp = _pd_seq; _pd_seq = 0; return tmp; }
      
    friend class TMPFile_out;
    
  private:
    TMPFile* _pd_seq;
  };

  class TMPFile_out {
  public:
    inline TMPFile_out(TMPFile*& _s) : _data(_s) { _data = 0; }
    inline TMPFile_out(TMPFile_var& _s)
      : _data(_s._pd_seq) { _s = (TMPFile*) 0; }
    inline TMPFile_out(const TMPFile_out& _s) : _data(_s._data) {}
    inline TMPFile_out& operator = (const TMPFile_out& _s) {
      _data = _s._data;
      return *this;
    }
    inline TMPFile_out& operator = (TMPFile* _s) {
      _data = _s;
      return *this;
    }
    inline operator TMPFile*&()  { return _data; }
    inline TMPFile*& ptr()       { return _data; }
    inline TMPFile* operator->() { return _data; }

    inline ::CORBA::Octet& operator [] (_CORBA_ULong _i) {
      return (*_data)[_i];
    }

  

    TMPFile*& _data;

  private:
    TMPFile_out();
    TMPFile_out& operator=(const TMPFile_var&);
  };

#ifndef __SALOMEDS_mGenericAttribute__
#define __SALOMEDS_mGenericAttribute__

  class GenericAttribute;
  class _objref_GenericAttribute;
  class _impl_GenericAttribute;
  
  typedef _objref_GenericAttribute* GenericAttribute_ptr;
  typedef GenericAttribute_ptr GenericAttributeRef;

  class GenericAttribute_Helper {
  public:
    typedef GenericAttribute_ptr _ptr_type;

    static _ptr_type _nil();
    static _CORBA_Boolean is_nil(_ptr_type);
    static void release(_ptr_type);
    static void duplicate(_ptr_type);
    static void marshalObjRef(_ptr_type, cdrStream&);
    static _ptr_type unmarshalObjRef(cdrStream&);
  };

  typedef _CORBA_ObjRef_Var<_objref_GenericAttribute, GenericAttribute_Helper> GenericAttribute_var;
  typedef _CORBA_ObjRef_OUT_arg<_objref_GenericAttribute,GenericAttribute_Helper > GenericAttribute_out;

#endif

#ifndef __SALOMEDS_mStudy__
#define __SALOMEDS_mStudy__

  class Study;
  class _objref_Study;
  class _impl_Study;
  
  typedef _objref_Study* Study_ptr;
  typedef Study_ptr StudyRef;

  class Study_Helper {
  public:
    typedef Study_ptr _ptr_type;

    static _ptr_type _nil();
    static _CORBA_Boolean is_nil(_ptr_type);
    static void release(_ptr_type);
    static void duplicate(_ptr_type);
    static void marshalObjRef(_ptr_type, cdrStream&);
    static _ptr_type unmarshalObjRef(cdrStream&);
  };

  typedef _CORBA_ObjRef_Var<_objref_Study, Study_Helper> Study_var;
  typedef _CORBA_ObjRef_OUT_arg<_objref_Study,Study_Helper > Study_out;

#endif

#ifndef __SALOMEDS_mStudyManager__
#define __SALOMEDS_mStudyManager__

  class StudyManager;
  class _objref_StudyManager;
  class _impl_StudyManager;
  
  typedef _objref_StudyManager* StudyManager_ptr;
  typedef StudyManager_ptr StudyManagerRef;

  class StudyManager_Helper {
  public:
    typedef StudyManager_ptr _ptr_type;

    static _ptr_type _nil();
    static _CORBA_Boolean is_nil(_ptr_type);
    static void release(_ptr_type);
    static void duplicate(_ptr_type);
    static void marshalObjRef(_ptr_type, cdrStream&);
    static _ptr_type unmarshalObjRef(cdrStream&);
  };

  typedef _CORBA_ObjRef_Var<_objref_StudyManager, StudyManager_Helper> StudyManager_var;
  typedef _CORBA_ObjRef_OUT_arg<_objref_StudyManager,StudyManager_Helper > StudyManager_out;

#endif

#ifndef __SALOMEDS_mStudyBuilder__
#define __SALOMEDS_mStudyBuilder__

  class StudyBuilder;
  class _objref_StudyBuilder;
  class _impl_StudyBuilder;
  
  typedef _objref_StudyBuilder* StudyBuilder_ptr;
  typedef StudyBuilder_ptr StudyBuilderRef;

  class StudyBuilder_Helper {
  public:
    typedef StudyBuilder_ptr _ptr_type;

    static _ptr_type _nil();
    static _CORBA_Boolean is_nil(_ptr_type);
    static void release(_ptr_type);
    static void duplicate(_ptr_type);
    static void marshalObjRef(_ptr_type, cdrStream&);
    static _ptr_type unmarshalObjRef(cdrStream&);
  };

  typedef _CORBA_ObjRef_Var<_objref_StudyBuilder, StudyBuilder_Helper> StudyBuilder_var;
  typedef _CORBA_ObjRef_OUT_arg<_objref_StudyBuilder,StudyBuilder_Helper > StudyBuilder_out;

#endif

#ifndef __SALOMEDS_mSObject__
#define __SALOMEDS_mSObject__

  class SObject;
  class _objref_SObject;
  class _impl_SObject;
  
  typedef _objref_SObject* SObject_ptr;
  typedef SObject_ptr SObjectRef;

  class SObject_Helper {
  public:
    typedef SObject_ptr _ptr_type;

    static _ptr_type _nil();
    static _CORBA_Boolean is_nil(_ptr_type);
    static void release(_ptr_type);
    static void duplicate(_ptr_type);
    static void marshalObjRef(_ptr_type, cdrStream&);
    static _ptr_type unmarshalObjRef(cdrStream&);
  };

  typedef _CORBA_ObjRef_Var<_objref_SObject, SObject_Helper> SObject_var;
  typedef _CORBA_ObjRef_OUT_arg<_objref_SObject,SObject_Helper > SObject_out;

#endif

#ifndef __SALOMEDS_mSComponent__
#define __SALOMEDS_mSComponent__

  class SComponent;
  class _objref_SComponent;
  class _impl_SComponent;
  
  typedef _objref_SComponent* SComponent_ptr;
  typedef SComponent_ptr SComponentRef;

  class SComponent_Helper {
  public:
    typedef SComponent_ptr _ptr_type;

    static _ptr_type _nil();
    static _CORBA_Boolean is_nil(_ptr_type);
    static void release(_ptr_type);
    static void duplicate(_ptr_type);
    static void marshalObjRef(_ptr_type, cdrStream&);
    static _ptr_type unmarshalObjRef(cdrStream&);
  };

  typedef _CORBA_ObjRef_Var<_objref_SComponent, SComponent_Helper> SComponent_var;
  typedef _CORBA_ObjRef_OUT_arg<_objref_SComponent,SComponent_Helper > SComponent_out;

#endif

#ifndef __SALOMEDS_mSComponentIterator__
#define __SALOMEDS_mSComponentIterator__

  class SComponentIterator;
  class _objref_SComponentIterator;
  class _impl_SComponentIterator;
  
  typedef _objref_SComponentIterator* SComponentIterator_ptr;
  typedef SComponentIterator_ptr SComponentIteratorRef;

  class SComponentIterator_Helper {
  public:
    typedef SComponentIterator_ptr _ptr_type;

    static _ptr_type _nil();
    static _CORBA_Boolean is_nil(_ptr_type);
    static void release(_ptr_type);
    static void duplicate(_ptr_type);
    static void marshalObjRef(_ptr_type, cdrStream&);
    static _ptr_type unmarshalObjRef(cdrStream&);
  };

  typedef _CORBA_ObjRef_Var<_objref_SComponentIterator, SComponentIterator_Helper> SComponentIterator_var;
  typedef _CORBA_ObjRef_OUT_arg<_objref_SComponentIterator,SComponentIterator_Helper > SComponentIterator_out;

#endif

#ifndef __SALOMEDS_mChildIterator__
#define __SALOMEDS_mChildIterator__

  class ChildIterator;
  class _objref_ChildIterator;
  class _impl_ChildIterator;
  
  typedef _objref_ChildIterator* ChildIterator_ptr;
  typedef ChildIterator_ptr ChildIteratorRef;

  class ChildIterator_Helper {
  public:
    typedef ChildIterator_ptr _ptr_type;

    static _ptr_type _nil();
    static _CORBA_Boolean is_nil(_ptr_type);
    static void release(_ptr_type);
    static void duplicate(_ptr_type);
    static void marshalObjRef(_ptr_type, cdrStream&);
    static _ptr_type unmarshalObjRef(cdrStream&);
  };

  typedef _CORBA_ObjRef_Var<_objref_ChildIterator, ChildIterator_Helper> ChildIterator_var;
  typedef _CORBA_ObjRef_OUT_arg<_objref_ChildIterator,ChildIterator_Helper > ChildIterator_out;

#endif

#ifndef __SALOMEDS_mDriver__
#define __SALOMEDS_mDriver__

  class Driver;
  class _objref_Driver;
  class _impl_Driver;
  
  typedef _objref_Driver* Driver_ptr;
  typedef Driver_ptr DriverRef;

  class Driver_Helper {
  public:
    typedef Driver_ptr _ptr_type;

    static _ptr_type _nil();
    static _CORBA_Boolean is_nil(_ptr_type);
    static void release(_ptr_type);
    static void duplicate(_ptr_type);
    static void marshalObjRef(_ptr_type, cdrStream&);
    static _ptr_type unmarshalObjRef(cdrStream&);
  };

  typedef _CORBA_ObjRef_Var<_objref_Driver, Driver_Helper> Driver_var;
  typedef _CORBA_ObjRef_OUT_arg<_objref_Driver,Driver_Helper > Driver_out;

#endif

#ifndef __SALOMEDS_mAttributeStudyProperties__
#define __SALOMEDS_mAttributeStudyProperties__

  class AttributeStudyProperties;
  class _objref_AttributeStudyProperties;
  class _impl_AttributeStudyProperties;
  
  typedef _objref_AttributeStudyProperties* AttributeStudyProperties_ptr;
  typedef AttributeStudyProperties_ptr AttributeStudyPropertiesRef;

  class AttributeStudyProperties_Helper {
  public:
    typedef AttributeStudyProperties_ptr _ptr_type;

    static _ptr_type _nil();
    static _CORBA_Boolean is_nil(_ptr_type);
    static void release(_ptr_type);
    static void duplicate(_ptr_type);
    static void marshalObjRef(_ptr_type, cdrStream&);
    static _ptr_type unmarshalObjRef(cdrStream&);
  };

  typedef _CORBA_ObjRef_Var<_objref_AttributeStudyProperties, AttributeStudyProperties_Helper> AttributeStudyProperties_var;
  typedef _CORBA_ObjRef_OUT_arg<_objref_AttributeStudyProperties,AttributeStudyProperties_Helper > AttributeStudyProperties_out;

#endif

#ifndef __SALOMEDS_mAttributeParameter__
#define __SALOMEDS_mAttributeParameter__

  class AttributeParameter;
  class _objref_AttributeParameter;
  class _impl_AttributeParameter;
  
  typedef _objref_AttributeParameter* AttributeParameter_ptr;
  typedef AttributeParameter_ptr AttributeParameterRef;

  class AttributeParameter_Helper {
  public:
    typedef AttributeParameter_ptr _ptr_type;

    static _ptr_type _nil();
    static _CORBA_Boolean is_nil(_ptr_type);
    static void release(_ptr_type);
    static void duplicate(_ptr_type);
    static void marshalObjRef(_ptr_type, cdrStream&);
    static _ptr_type unmarshalObjRef(cdrStream&);
  };

  typedef _CORBA_ObjRef_Var<_objref_AttributeParameter, AttributeParameter_Helper> AttributeParameter_var;
  typedef _CORBA_ObjRef_OUT_arg<_objref_AttributeParameter,AttributeParameter_Helper > AttributeParameter_out;

#endif

#ifndef __SALOMEDS_mUseCaseIterator__
#define __SALOMEDS_mUseCaseIterator__

  class UseCaseIterator;
  class _objref_UseCaseIterator;
  class _impl_UseCaseIterator;
  
  typedef _objref_UseCaseIterator* UseCaseIterator_ptr;
  typedef UseCaseIterator_ptr UseCaseIteratorRef;

  class UseCaseIterator_Helper {
  public:
    typedef UseCaseIterator_ptr _ptr_type;

    static _ptr_type _nil();
    static _CORBA_Boolean is_nil(_ptr_type);
    static void release(_ptr_type);
    static void duplicate(_ptr_type);
    static void marshalObjRef(_ptr_type, cdrStream&);
    static _ptr_type unmarshalObjRef(cdrStream&);
  };

  typedef _CORBA_ObjRef_Var<_objref_UseCaseIterator, UseCaseIterator_Helper> UseCaseIterator_var;
  typedef _CORBA_ObjRef_OUT_arg<_objref_UseCaseIterator,UseCaseIterator_Helper > UseCaseIterator_out;

#endif

#ifndef __SALOMEDS_mUseCaseBuilder__
#define __SALOMEDS_mUseCaseBuilder__

  class UseCaseBuilder;
  class _objref_UseCaseBuilder;
  class _impl_UseCaseBuilder;
  
  typedef _objref_UseCaseBuilder* UseCaseBuilder_ptr;
  typedef UseCaseBuilder_ptr UseCaseBuilderRef;

  class UseCaseBuilder_Helper {
  public:
    typedef UseCaseBuilder_ptr _ptr_type;

    static _ptr_type _nil();
    static _CORBA_Boolean is_nil(_ptr_type);
    static void release(_ptr_type);
    static void duplicate(_ptr_type);
    static void marshalObjRef(_ptr_type, cdrStream&);
    static _ptr_type unmarshalObjRef(cdrStream&);
  };

  typedef _CORBA_ObjRef_Var<_objref_UseCaseBuilder, UseCaseBuilder_Helper> UseCaseBuilder_var;
  typedef _CORBA_ObjRef_OUT_arg<_objref_UseCaseBuilder,UseCaseBuilder_Helper > UseCaseBuilder_out;

#endif

  _CORBA_MODULE_VAR _dyn_attr const ::CORBA::TypeCode_ptr _tc_ListOfAttributes;

  class ListOfAttributes_var;

  class ListOfAttributes : public _CORBA_Unbounded_Sequence_ObjRef< _objref_GenericAttribute, _CORBA_ObjRef_Element< _objref_GenericAttribute, GenericAttribute_Helper> , GenericAttribute_Helper >  {
  public:
    typedef ListOfAttributes_var _var_type;
    inline ListOfAttributes() {}
    inline ListOfAttributes(const ListOfAttributes& _s)
      : _CORBA_Unbounded_Sequence_ObjRef< _objref_GenericAttribute, _CORBA_ObjRef_Element< _objref_GenericAttribute, GenericAttribute_Helper> , GenericAttribute_Helper > (_s) {}

    inline ListOfAttributes(_CORBA_ULong _max)
      : _CORBA_Unbounded_Sequence_ObjRef< _objref_GenericAttribute, _CORBA_ObjRef_Element< _objref_GenericAttribute, GenericAttribute_Helper> , GenericAttribute_Helper > (_max) {}
    inline ListOfAttributes(_CORBA_ULong _max, _CORBA_ULong _len, GenericAttribute_ptr* _val, _CORBA_Boolean _rel=0)
      : _CORBA_Unbounded_Sequence_ObjRef< _objref_GenericAttribute, _CORBA_ObjRef_Element< _objref_GenericAttribute, GenericAttribute_Helper> , GenericAttribute_Helper > (_max, _len, _val, _rel) {}

  

    inline ListOfAttributes& operator = (const ListOfAttributes& _s) {
      _CORBA_Unbounded_Sequence_ObjRef< _objref_GenericAttribute, _CORBA_ObjRef_Element< _objref_GenericAttribute, GenericAttribute_Helper> , GenericAttribute_Helper > ::operator=(_s);
      return *this;
    }
  };

  class ListOfAttributes_out;

  class ListOfAttributes_var {
  public:
    inline ListOfAttributes_var() : _pd_seq(0) {}
    inline ListOfAttributes_var(ListOfAttributes* _s) : _pd_seq(_s) {}
    inline ListOfAttributes_var(const ListOfAttributes_var& _s) {
      if( _s._pd_seq )  _pd_seq = new ListOfAttributes(*_s._pd_seq);
      else              _pd_seq = 0;
    }
    inline ~ListOfAttributes_var() { if( _pd_seq )  delete _pd_seq; }
      
    inline ListOfAttributes_var& operator = (ListOfAttributes* _s) {
      if( _pd_seq )  delete _pd_seq;
      _pd_seq = _s;
      return *this;
    }
    inline ListOfAttributes_var& operator = (const ListOfAttributes_var& _s) {
      if( _s._pd_seq ) {
        if( !_pd_seq )  _pd_seq = new ListOfAttributes;
        *_pd_seq = *_s._pd_seq;
      } else if( _pd_seq ) {
        delete _pd_seq;
        _pd_seq = 0;
      }
      return *this;
    }
    inline _CORBA_ObjRef_Element< _objref_GenericAttribute, GenericAttribute_Helper>  operator [] (_CORBA_ULong _s) {
      return (*_pd_seq)[_s];
    }

  

    inline ListOfAttributes* operator -> () { return _pd_seq; }
    inline const ListOfAttributes* operator -> () const { return _pd_seq; }
#if defined(__GNUG__)
    inline operator ListOfAttributes& () const { return *_pd_seq; }
#else
    inline operator const ListOfAttributes& () const { return *_pd_seq; }
    inline operator ListOfAttributes& () { return *_pd_seq; }
#endif
      
    inline const ListOfAttributes& in() const { return *_pd_seq; }
    inline ListOfAttributes&       inout()    { return *_pd_seq; }
    inline ListOfAttributes*&      out() {
      if( _pd_seq ) { delete _pd_seq; _pd_seq = 0; }
      return _pd_seq;
    }
    inline ListOfAttributes* _retn() { ListOfAttributes* tmp = _pd_seq; _pd_seq = 0; return tmp; }
      
    friend class ListOfAttributes_out;
    
  private:
    ListOfAttributes* _pd_seq;
  };

  class ListOfAttributes_out {
  public:
    inline ListOfAttributes_out(ListOfAttributes*& _s) : _data(_s) { _data = 0; }
    inline ListOfAttributes_out(ListOfAttributes_var& _s)
      : _data(_s._pd_seq) { _s = (ListOfAttributes*) 0; }
    inline ListOfAttributes_out(const ListOfAttributes_out& _s) : _data(_s._data) {}
    inline ListOfAttributes_out& operator = (const ListOfAttributes_out& _s) {
      _data = _s._data;
      return *this;
    }
    inline ListOfAttributes_out& operator = (ListOfAttributes* _s) {
      _data = _s;
      return *this;
    }
    inline operator ListOfAttributes*&()  { return _data; }
    inline ListOfAttributes*& ptr()       { return _data; }
    inline ListOfAttributes* operator->() { return _data; }

    inline _CORBA_ObjRef_Element< _objref_GenericAttribute, GenericAttribute_Helper>  operator [] (_CORBA_ULong _i) {
      return (*_data)[_i];
    }

  

    ListOfAttributes*& _data;

  private:
    ListOfAttributes_out();
    ListOfAttributes_out& operator=(const ListOfAttributes_var&);
  };

  class NotImplemented : public ::CORBA::UserException {
  public:
    
    

    inline NotImplemented() {
      pd_insertToAnyFn    = insertToAnyFn;
      pd_insertToAnyFnNCP = insertToAnyFnNCP;
    }
    NotImplemented(const NotImplemented&);
    
    NotImplemented& operator=(const NotImplemented&);
    virtual ~NotImplemented();
    virtual void _raise() const;
    static NotImplemented* _downcast(::CORBA::Exception*);
    static const NotImplemented* _downcast(const ::CORBA::Exception*);
    static inline NotImplemented* _narrow(::CORBA::Exception* _e) {
      return _downcast(_e);
    }
    
    inline void operator>>=(cdrStream&) const { }
    inline void operator<<=(cdrStream&) { }

    static _core_attr insertExceptionToAny    insertToAnyFn;
    static _core_attr insertExceptionToAnyNCP insertToAnyFnNCP;

    virtual ::CORBA::Exception* _NP_duplicate() const;

    static _core_attr const char* _PD_repoId;
    static _core_attr const char* _PD_typeId;

  private:
    virtual const char* _NP_typeId() const;
    virtual const char* _NP_repoId(int*) const;
    virtual void _NP_marshal(cdrStream&) const;
  };

  _CORBA_MODULE_VAR _dyn_attr const ::CORBA::TypeCode_ptr _tc_NotImplemented;

#ifndef __SALOMEDS_mStudy__
#define __SALOMEDS_mStudy__

  class Study;
  class _objref_Study;
  class _impl_Study;
  
  typedef _objref_Study* Study_ptr;
  typedef Study_ptr StudyRef;

  class Study_Helper {
  public:
    typedef Study_ptr _ptr_type;

    static _ptr_type _nil();
    static _CORBA_Boolean is_nil(_ptr_type);
    static void release(_ptr_type);
    static void duplicate(_ptr_type);
    static void marshalObjRef(_ptr_type, cdrStream&);
    static _ptr_type unmarshalObjRef(cdrStream&);
  };

  typedef _CORBA_ObjRef_Var<_objref_Study, Study_Helper> Study_var;
  typedef _CORBA_ObjRef_OUT_arg<_objref_Study,Study_Helper > Study_out;

#endif

  // interface Study
  class Study {
  public:
    // Declarations for this interface type.
    typedef Study_ptr _ptr_type;
    typedef Study_var _var_type;

    static _ptr_type _duplicate(_ptr_type);
    static _ptr_type _narrow(::CORBA::Object_ptr);
    static _ptr_type _unchecked_narrow(::CORBA::Object_ptr);
    
    static _ptr_type _nil();

    static inline void _marshalObjRef(_ptr_type, cdrStream&);

    static inline _ptr_type _unmarshalObjRef(cdrStream& s) {
      omniObjRef* o = omniObjRef::_unMarshal(_PD_repoId,s);
      if (o)
        return (_ptr_type) o->_ptrToObjRef(_PD_repoId);
      else
        return _nil();
    }

    static _core_attr const char* _PD_repoId;

    // Other IDL defined within this scope.
    class StudyInvalidContext : public ::CORBA::UserException {
    public:
      
      

      inline StudyInvalidContext() {
        pd_insertToAnyFn    = insertToAnyFn;
        pd_insertToAnyFnNCP = insertToAnyFnNCP;
      }
      StudyInvalidContext(const StudyInvalidContext&);
      
      StudyInvalidContext& operator=(const StudyInvalidContext&);
      virtual ~StudyInvalidContext();
      virtual void _raise() const;
      static StudyInvalidContext* _downcast(::CORBA::Exception*);
      static const StudyInvalidContext* _downcast(const ::CORBA::Exception*);
      static inline StudyInvalidContext* _narrow(::CORBA::Exception* _e) {
        return _downcast(_e);
      }
      
      inline void operator>>=(cdrStream&) const { }
      inline void operator<<=(cdrStream&) { }

      static _core_attr insertExceptionToAny    insertToAnyFn;
      static _core_attr insertExceptionToAnyNCP insertToAnyFnNCP;

      virtual ::CORBA::Exception* _NP_duplicate() const;

      static _core_attr const char* _PD_repoId;
      static _core_attr const char* _PD_typeId;

    private:
      virtual const char* _NP_typeId() const;
      virtual const char* _NP_repoId(int*) const;
      virtual void _NP_marshal(cdrStream&) const;
    };

    static _dyn_attr const ::CORBA::TypeCode_ptr _tc_StudyInvalidContext;

    class StudyInvalidComponent : public ::CORBA::UserException {
    public:
      
      

      inline StudyInvalidComponent() {
        pd_insertToAnyFn    = insertToAnyFn;
        pd_insertToAnyFnNCP = insertToAnyFnNCP;
      }
      StudyInvalidComponent(const StudyInvalidComponent&);
      
      StudyInvalidComponent& operator=(const StudyInvalidComponent&);
      virtual ~StudyInvalidComponent();
      virtual void _raise() const;
      static StudyInvalidComponent* _downcast(::CORBA::Exception*);
      static const StudyInvalidComponent* _downcast(const ::CORBA::Exception*);
      static inline StudyInvalidComponent* _narrow(::CORBA::Exception* _e) {
        return _downcast(_e);
      }
      
      inline void operator>>=(cdrStream&) const { }
      inline void operator<<=(cdrStream&) { }

      static _core_attr insertExceptionToAny    insertToAnyFn;
      static _core_attr insertExceptionToAnyNCP insertToAnyFnNCP;

      virtual ::CORBA::Exception* _NP_duplicate() const;

      static _core_attr const char* _PD_repoId;
      static _core_attr const char* _PD_typeId;

    private:
      virtual const char* _NP_typeId() const;
      virtual const char* _NP_repoId(int*) const;
      virtual void _NP_marshal(cdrStream&) const;
    };

    static _dyn_attr const ::CORBA::TypeCode_ptr _tc_StudyInvalidComponent;

    class StudyInvalidDirectory : public ::CORBA::UserException {
    public:
      
      

      inline StudyInvalidDirectory() {
        pd_insertToAnyFn    = insertToAnyFn;
        pd_insertToAnyFnNCP = insertToAnyFnNCP;
      }
      StudyInvalidDirectory(const StudyInvalidDirectory&);
      
      StudyInvalidDirectory& operator=(const StudyInvalidDirectory&);
      virtual ~StudyInvalidDirectory();
      virtual void _raise() const;
      static StudyInvalidDirectory* _downcast(::CORBA::Exception*);
      static const StudyInvalidDirectory* _downcast(const ::CORBA::Exception*);
      static inline StudyInvalidDirectory* _narrow(::CORBA::Exception* _e) {
        return _downcast(_e);
      }
      
      inline void operator>>=(cdrStream&) const { }
      inline void operator<<=(cdrStream&) { }

      static _core_attr insertExceptionToAny    insertToAnyFn;
      static _core_attr insertExceptionToAnyNCP insertToAnyFnNCP;

      virtual ::CORBA::Exception* _NP_duplicate() const;

      static _core_attr const char* _PD_repoId;
      static _core_attr const char* _PD_typeId;

    private:
      virtual const char* _NP_typeId() const;
      virtual const char* _NP_repoId(int*) const;
      virtual void _NP_marshal(cdrStream&) const;
    };

    static _dyn_attr const ::CORBA::TypeCode_ptr _tc_StudyInvalidDirectory;

    class StudyNameAlreadyUsed : public ::CORBA::UserException {
    public:
      
      

      inline StudyNameAlreadyUsed() {
        pd_insertToAnyFn    = insertToAnyFn;
        pd_insertToAnyFnNCP = insertToAnyFnNCP;
      }
      StudyNameAlreadyUsed(const StudyNameAlreadyUsed&);
      
      StudyNameAlreadyUsed& operator=(const StudyNameAlreadyUsed&);
      virtual ~StudyNameAlreadyUsed();
      virtual void _raise() const;
      static StudyNameAlreadyUsed* _downcast(::CORBA::Exception*);
      static const StudyNameAlreadyUsed* _downcast(const ::CORBA::Exception*);
      static inline StudyNameAlreadyUsed* _narrow(::CORBA::Exception* _e) {
        return _downcast(_e);
      }
      
      inline void operator>>=(cdrStream&) const { }
      inline void operator<<=(cdrStream&) { }

      static _core_attr insertExceptionToAny    insertToAnyFn;
      static _core_attr insertExceptionToAnyNCP insertToAnyFnNCP;

      virtual ::CORBA::Exception* _NP_duplicate() const;

      static _core_attr const char* _PD_repoId;
      static _core_attr const char* _PD_typeId;

    private:
      virtual const char* _NP_typeId() const;
      virtual const char* _NP_repoId(int*) const;
      virtual void _NP_marshal(cdrStream&) const;
    };

    static _dyn_attr const ::CORBA::TypeCode_ptr _tc_StudyNameAlreadyUsed;

    class StudyObjectAlreadyExists : public ::CORBA::UserException {
    public:
      
      

      inline StudyObjectAlreadyExists() {
        pd_insertToAnyFn    = insertToAnyFn;
        pd_insertToAnyFnNCP = insertToAnyFnNCP;
      }
      StudyObjectAlreadyExists(const StudyObjectAlreadyExists&);
      
      StudyObjectAlreadyExists& operator=(const StudyObjectAlreadyExists&);
      virtual ~StudyObjectAlreadyExists();
      virtual void _raise() const;
      static StudyObjectAlreadyExists* _downcast(::CORBA::Exception*);
      static const StudyObjectAlreadyExists* _downcast(const ::CORBA::Exception*);
      static inline StudyObjectAlreadyExists* _narrow(::CORBA::Exception* _e) {
        return _downcast(_e);
      }
      
      inline void operator>>=(cdrStream&) const { }
      inline void operator<<=(cdrStream&) { }

      static _core_attr insertExceptionToAny    insertToAnyFn;
      static _core_attr insertExceptionToAnyNCP insertToAnyFnNCP;

      virtual ::CORBA::Exception* _NP_duplicate() const;

      static _core_attr const char* _PD_repoId;
      static _core_attr const char* _PD_typeId;

    private:
      virtual const char* _NP_typeId() const;
      virtual const char* _NP_repoId(int*) const;
      virtual void _NP_marshal(cdrStream&) const;
    };

    static _dyn_attr const ::CORBA::TypeCode_ptr _tc_StudyObjectAlreadyExists;

    class StudyNameError : public ::CORBA::UserException {
    public:
      
      

      inline StudyNameError() {
        pd_insertToAnyFn    = insertToAnyFn;
        pd_insertToAnyFnNCP = insertToAnyFnNCP;
      }
      StudyNameError(const StudyNameError&);
      
      StudyNameError& operator=(const StudyNameError&);
      virtual ~StudyNameError();
      virtual void _raise() const;
      static StudyNameError* _downcast(::CORBA::Exception*);
      static const StudyNameError* _downcast(const ::CORBA::Exception*);
      static inline StudyNameError* _narrow(::CORBA::Exception* _e) {
        return _downcast(_e);
      }
      
      inline void operator>>=(cdrStream&) const { }
      inline void operator<<=(cdrStream&) { }

      static _core_attr insertExceptionToAny    insertToAnyFn;
      static _core_attr insertExceptionToAnyNCP insertToAnyFnNCP;

      virtual ::CORBA::Exception* _NP_duplicate() const;

      static _core_attr const char* _PD_repoId;
      static _core_attr const char* _PD_typeId;

    private:
      virtual const char* _NP_typeId() const;
      virtual const char* _NP_repoId(int*) const;
      virtual void _NP_marshal(cdrStream&) const;
    };

    static _dyn_attr const ::CORBA::TypeCode_ptr _tc_StudyNameError;

    class StudyCommentError : public ::CORBA::UserException {
    public:
      
      

      inline StudyCommentError() {
        pd_insertToAnyFn    = insertToAnyFn;
        pd_insertToAnyFnNCP = insertToAnyFnNCP;
      }
      StudyCommentError(const StudyCommentError&);
      
      StudyCommentError& operator=(const StudyCommentError&);
      virtual ~StudyCommentError();
      virtual void _raise() const;
      static StudyCommentError* _downcast(::CORBA::Exception*);
      static const StudyCommentError* _downcast(const ::CORBA::Exception*);
      static inline StudyCommentError* _narrow(::CORBA::Exception* _e) {
        return _downcast(_e);
      }
      
      inline void operator>>=(cdrStream&) const { }
      inline void operator<<=(cdrStream&) { }

      static _core_attr insertExceptionToAny    insertToAnyFn;
      static _core_attr insertExceptionToAnyNCP insertToAnyFnNCP;

      virtual ::CORBA::Exception* _NP_duplicate() const;

      static _core_attr const char* _PD_repoId;
      static _core_attr const char* _PD_typeId;

    private:
      virtual const char* _NP_typeId() const;
      virtual const char* _NP_repoId(int*) const;
      virtual void _NP_marshal(cdrStream&) const;
    };

    static _dyn_attr const ::CORBA::TypeCode_ptr _tc_StudyCommentError;

    static _dyn_attr const ::CORBA::TypeCode_ptr _tc_ListOfSObject;

    class ListOfSObject_var;

    class ListOfSObject : public _CORBA_Unbounded_Sequence_ObjRef< _objref_SObject, _CORBA_ObjRef_Element< _objref_SObject, SObject_Helper> , SObject_Helper >  {
    public:
      typedef ListOfSObject_var _var_type;
      inline ListOfSObject() {}
      inline ListOfSObject(const ListOfSObject& _s)
        : _CORBA_Unbounded_Sequence_ObjRef< _objref_SObject, _CORBA_ObjRef_Element< _objref_SObject, SObject_Helper> , SObject_Helper > (_s) {}

      inline ListOfSObject(_CORBA_ULong _max)
        : _CORBA_Unbounded_Sequence_ObjRef< _objref_SObject, _CORBA_ObjRef_Element< _objref_SObject, SObject_Helper> , SObject_Helper > (_max) {}
      inline ListOfSObject(_CORBA_ULong _max, _CORBA_ULong _len, SObject_ptr* _val, _CORBA_Boolean _rel=0)
        : _CORBA_Unbounded_Sequence_ObjRef< _objref_SObject, _CORBA_ObjRef_Element< _objref_SObject, SObject_Helper> , SObject_Helper > (_max, _len, _val, _rel) {}

    

      inline ListOfSObject& operator = (const ListOfSObject& _s) {
        _CORBA_Unbounded_Sequence_ObjRef< _objref_SObject, _CORBA_ObjRef_Element< _objref_SObject, SObject_Helper> , SObject_Helper > ::operator=(_s);
        return *this;
      }
    };

    class ListOfSObject_out;

    class ListOfSObject_var {
    public:
      inline ListOfSObject_var() : _pd_seq(0) {}
      inline ListOfSObject_var(ListOfSObject* _s) : _pd_seq(_s) {}
      inline ListOfSObject_var(const ListOfSObject_var& _s) {
        if( _s._pd_seq )  _pd_seq = new ListOfSObject(*_s._pd_seq);
        else              _pd_seq = 0;
      }
      inline ~ListOfSObject_var() { if( _pd_seq )  delete _pd_seq; }
        
      inline ListOfSObject_var& operator = (ListOfSObject* _s) {
        if( _pd_seq )  delete _pd_seq;
        _pd_seq = _s;
        return *this;
      }
      inline ListOfSObject_var& operator = (const ListOfSObject_var& _s) {
        if( _s._pd_seq ) {
          if( !_pd_seq )  _pd_seq = new ListOfSObject;
          *_pd_seq = *_s._pd_seq;
        } else if( _pd_seq ) {
          delete _pd_seq;
          _pd_seq = 0;
        }
        return *this;
      }
      inline _CORBA_ObjRef_Element< _objref_SObject, SObject_Helper>  operator [] (_CORBA_ULong _s) {
        return (*_pd_seq)[_s];
      }

    

      inline ListOfSObject* operator -> () { return _pd_seq; }
      inline const ListOfSObject* operator -> () const { return _pd_seq; }
#if defined(__GNUG__)
      inline operator ListOfSObject& () const { return *_pd_seq; }
#else
      inline operator const ListOfSObject& () const { return *_pd_seq; }
      inline operator ListOfSObject& () { return *_pd_seq; }
#endif
        
      inline const ListOfSObject& in() const { return *_pd_seq; }
      inline ListOfSObject&       inout()    { return *_pd_seq; }
      inline ListOfSObject*&      out() {
        if( _pd_seq ) { delete _pd_seq; _pd_seq = 0; }
        return _pd_seq;
      }
      inline ListOfSObject* _retn() { ListOfSObject* tmp = _pd_seq; _pd_seq = 0; return tmp; }
        
      friend class ListOfSObject_out;
      
    private:
      ListOfSObject* _pd_seq;
    };

    class ListOfSObject_out {
    public:
      inline ListOfSObject_out(ListOfSObject*& _s) : _data(_s) { _data = 0; }
      inline ListOfSObject_out(ListOfSObject_var& _s)
        : _data(_s._pd_seq) { _s = (ListOfSObject*) 0; }
      inline ListOfSObject_out(const ListOfSObject_out& _s) : _data(_s._data) {}
      inline ListOfSObject_out& operator = (const ListOfSObject_out& _s) {
        _data = _s._data;
        return *this;
      }
      inline ListOfSObject_out& operator = (ListOfSObject* _s) {
        _data = _s;
        return *this;
      }
      inline operator ListOfSObject*&()  { return _data; }
      inline ListOfSObject*& ptr()       { return _data; }
      inline ListOfSObject* operator->() { return _data; }

      inline _CORBA_ObjRef_Element< _objref_SObject, SObject_Helper>  operator [] (_CORBA_ULong _i) {
        return (*_data)[_i];
      }

    

      ListOfSObject*& _data;

    private:
      ListOfSObject_out();
      ListOfSObject_out& operator=(const ListOfSObject_var&);
    };

  
  };

  class _objref_Study :
    public virtual ::CORBA::Object,
    public virtual omniObjRef
  {
  public:
    char* GetPersistentReference();
    char* GetTransientReference();
    ::CORBA::Boolean IsEmpty();
    SComponent_ptr FindComponent(const char* aComponentName);
    SComponent_ptr FindComponentID(const char* aComponentID);
    SObject_ptr FindObject(const char* anObjectName);
    SObject_ptr FindObjectID(const char* aObjectID);
    SObject_ptr CreateObjectID(const char* aObjectID);
    SObject_ptr FindObjectIOR(const char* aObjectIOR);
    Study::ListOfSObject* FindObjectByName(const char* anObjectName, const char* aComponentName);
    SObject_ptr FindObjectByPath(const char* thePath);
    char* GetObjectPath(::CORBA::Object_ptr theObject);
    void SetContext(const char* thePath);
    char* GetContext();
    ListOfStrings* GetObjectNames(const char* theContext);
    ListOfStrings* GetDirectoryNames(const char* theContext);
    ListOfStrings* GetFileNames(const char* theContext);
    ListOfStrings* GetComponentNames(const char* theContext);
    ChildIterator_ptr NewChildIterator(::SALOMEDS::SObject_ptr aSO);
    SComponentIterator_ptr NewComponentIterator();
    StudyBuilder_ptr NewBuilder();
    void UpdateIORLabelMap(const char* anIOR, const char* anEntry);
    AttributeStudyProperties_ptr GetProperties();
    ::CORBA::Boolean IsModified();
    void Modified();
    Study::ListOfSObject* FindDependances(::SALOMEDS::SObject_ptr anObject);
    char* GetLastModificationDate();
    ListOfDates* GetModificationsDate();
    char* ConvertObjectToIOR(::CORBA::Object_ptr theObject);
    ::CORBA::Object_ptr ConvertIORToObject(const char* theIOR);
    UseCaseBuilder_ptr GetUseCaseBuilder();
    void Close();
    void EnableUseCaseAutoFilling(::CORBA::Boolean isEnabled);
    void AddPostponed(const char* theIOR);
    void AddCreatedPostponed(const char* theIOR);
    void RemovePostponed(::CORBA::Long theUndoLimit);
    void UndoPostponed(::CORBA::Long theWay);
    ::CORBA::Boolean DumpStudy(const char* thePath, const char* theBaseName, ::CORBA::Boolean isPublished);
    AttributeParameter_ptr GetCommonParameters(const char* theID, ::CORBA::Long theSavePoint);
    AttributeParameter_ptr GetModuleParameters(const char* theID, const char* theModuleName, ::CORBA::Long theSavePoint);
    char* GetDefaultScript(const char* theID, const char* theModuleName);
    ::CORBA::LongLong GetLocalImpl(const char* theHostname, ::CORBA::Long thePID, ::CORBA::Boolean& isLocal);
    void SetStudyLock(const char* theLockerID);
    ::CORBA::Boolean IsStudyLocked();
    void UnLockStudy(const char* theLockerID);
    ListOfStrings* GetLockerID();
    void SetReal(const char* theVarName, ::CORBA::Double theValue);
    void SetInteger(const char* theVarName, ::CORBA::Long theValue);
    void SetBoolean(const char* theVarName, ::CORBA::Boolean theValue);
    void SetString(const char* theVarName, const char* theValue);
    void SetStringAsDouble(const char* theVarName, ::CORBA::Double theValue);
    ::CORBA::Double GetReal(const char* theVarName);
    ::CORBA::Long GetInteger(const char* theVarName);
    ::CORBA::Boolean GetBoolean(const char* theVarName);
    char* GetString(const char* theVarName);
    ::CORBA::Boolean IsReal(const char* theVarName);
    ::CORBA::Boolean IsInteger(const char* theVarName);
    ::CORBA::Boolean IsBoolean(const char* theVarName);
    ::CORBA::Boolean IsString(const char* theVarName);
    ::CORBA::Boolean IsVariable(const char* theVarName);
    ListOfStrings* GetVariableNames();
    ::CORBA::Boolean RemoveVariable(const char* theVarName);
    ::CORBA::Boolean RenameVariable(const char* theVarName, const char* theNewVarName);
    ::CORBA::Boolean IsVariableUsed(const char* theVarName);
    ListOfListOfStrings* ParseVariables(const char* theVars);
    char* Name();
    void Name(const char* _v);
    ::CORBA::Short StudyId();
    void StudyId(::CORBA::Short _v);
    ::CORBA::Boolean IsSaved();
    void IsSaved(::CORBA::Boolean _v);
    char* URL();
    void URL(const char* _v);

    inline _objref_Study()  { _PR_setobj(0); }  // nil
    _objref_Study(omniIOR*, omniIdentity*);

  protected:
    virtual ~_objref_Study();

    
  private:
    virtual void* _ptrToObjRef(const char*);

    _objref_Study(const _objref_Study&);
    _objref_Study& operator = (const _objref_Study&);
    // not implemented

    friend class Study;
  };

  class _pof_Study : public _OMNI_NS(proxyObjectFactory) {
  public:
    inline _pof_Study() : _OMNI_NS(proxyObjectFactory)(Study::_PD_repoId) {}
    virtual ~_pof_Study();

    virtual omniObjRef* newObjRef(omniIOR*,omniIdentity*);
    virtual _CORBA_Boolean is_a(const char*) const;
  };

  class _impl_Study :
    public virtual omniServant
  {
  public:
    virtual ~_impl_Study();

    virtual char* GetPersistentReference() = 0;
    virtual char* GetTransientReference() = 0;
    virtual ::CORBA::Boolean IsEmpty() = 0;
    virtual SComponent_ptr FindComponent(const char* aComponentName) = 0;
    virtual SComponent_ptr FindComponentID(const char* aComponentID) = 0;
    virtual SObject_ptr FindObject(const char* anObjectName) = 0;
    virtual SObject_ptr FindObjectID(const char* aObjectID) = 0;
    virtual SObject_ptr CreateObjectID(const char* aObjectID) = 0;
    virtual SObject_ptr FindObjectIOR(const char* aObjectIOR) = 0;
    virtual Study::ListOfSObject* FindObjectByName(const char* anObjectName, const char* aComponentName) = 0;
    virtual SObject_ptr FindObjectByPath(const char* thePath) = 0;
    virtual char* GetObjectPath(::CORBA::Object_ptr theObject) = 0;
    virtual void SetContext(const char* thePath) = 0;
    virtual char* GetContext() = 0;
    virtual ListOfStrings* GetObjectNames(const char* theContext) = 0;
    virtual ListOfStrings* GetDirectoryNames(const char* theContext) = 0;
    virtual ListOfStrings* GetFileNames(const char* theContext) = 0;
    virtual ListOfStrings* GetComponentNames(const char* theContext) = 0;
    virtual ChildIterator_ptr NewChildIterator(::SALOMEDS::SObject_ptr aSO) = 0;
    virtual SComponentIterator_ptr NewComponentIterator() = 0;
    virtual StudyBuilder_ptr NewBuilder() = 0;
    virtual void UpdateIORLabelMap(const char* anIOR, const char* anEntry) = 0;
    virtual AttributeStudyProperties_ptr GetProperties() = 0;
    virtual ::CORBA::Boolean IsModified() = 0;
    virtual void Modified() = 0;
    virtual Study::ListOfSObject* FindDependances(::SALOMEDS::SObject_ptr anObject) = 0;
    virtual char* GetLastModificationDate() = 0;
    virtual ListOfDates* GetModificationsDate() = 0;
    virtual char* ConvertObjectToIOR(::CORBA::Object_ptr theObject) = 0;
    virtual ::CORBA::Object_ptr ConvertIORToObject(const char* theIOR) = 0;
    virtual UseCaseBuilder_ptr GetUseCaseBuilder() = 0;
    virtual void Close() = 0;
    virtual void EnableUseCaseAutoFilling(::CORBA::Boolean isEnabled) = 0;
    virtual void AddPostponed(const char* theIOR) = 0;
    virtual void AddCreatedPostponed(const char* theIOR) = 0;
    virtual void RemovePostponed(::CORBA::Long theUndoLimit) = 0;
    virtual void UndoPostponed(::CORBA::Long theWay) = 0;
    virtual ::CORBA::Boolean DumpStudy(const char* thePath, const char* theBaseName, ::CORBA::Boolean isPublished) = 0;
    virtual AttributeParameter_ptr GetCommonParameters(const char* theID, ::CORBA::Long theSavePoint) = 0;
    virtual AttributeParameter_ptr GetModuleParameters(const char* theID, const char* theModuleName, ::CORBA::Long theSavePoint) = 0;
    virtual char* GetDefaultScript(const char* theID, const char* theModuleName) = 0;
    virtual ::CORBA::LongLong GetLocalImpl(const char* theHostname, ::CORBA::Long thePID, ::CORBA::Boolean& isLocal) = 0;
    virtual void SetStudyLock(const char* theLockerID) = 0;
    virtual ::CORBA::Boolean IsStudyLocked() = 0;
    virtual void UnLockStudy(const char* theLockerID) = 0;
    virtual ListOfStrings* GetLockerID() = 0;
    virtual void SetReal(const char* theVarName, ::CORBA::Double theValue) = 0;
    virtual void SetInteger(const char* theVarName, ::CORBA::Long theValue) = 0;
    virtual void SetBoolean(const char* theVarName, ::CORBA::Boolean theValue) = 0;
    virtual void SetString(const char* theVarName, const char* theValue) = 0;
    virtual void SetStringAsDouble(const char* theVarName, ::CORBA::Double theValue) = 0;
    virtual ::CORBA::Double GetReal(const char* theVarName) = 0;
    virtual ::CORBA::Long GetInteger(const char* theVarName) = 0;
    virtual ::CORBA::Boolean GetBoolean(const char* theVarName) = 0;
    virtual char* GetString(const char* theVarName) = 0;
    virtual ::CORBA::Boolean IsReal(const char* theVarName) = 0;
    virtual ::CORBA::Boolean IsInteger(const char* theVarName) = 0;
    virtual ::CORBA::Boolean IsBoolean(const char* theVarName) = 0;
    virtual ::CORBA::Boolean IsString(const char* theVarName) = 0;
    virtual ::CORBA::Boolean IsVariable(const char* theVarName) = 0;
    virtual ListOfStrings* GetVariableNames() = 0;
    virtual ::CORBA::Boolean RemoveVariable(const char* theVarName) = 0;
    virtual ::CORBA::Boolean RenameVariable(const char* theVarName, const char* theNewVarName) = 0;
    virtual ::CORBA::Boolean IsVariableUsed(const char* theVarName) = 0;
    virtual ListOfListOfStrings* ParseVariables(const char* theVars) = 0;
    virtual char* Name() = 0;
    virtual void Name(const char* _v) = 0;
    virtual ::CORBA::Short StudyId() = 0;
    virtual void StudyId(::CORBA::Short _v) = 0;
    virtual ::CORBA::Boolean IsSaved() = 0;
    virtual void IsSaved(::CORBA::Boolean _v) = 0;
    virtual char* URL() = 0;
    virtual void URL(const char* _v) = 0;
    
  public:  // Really protected, workaround for xlC
    virtual _CORBA_Boolean _dispatch(omniCallHandle&);

  private:
    virtual void* _ptrToInterface(const char*);
    virtual const char* _mostDerivedRepoId();
    
  };


  _CORBA_MODULE_VAR _dyn_attr const ::CORBA::TypeCode_ptr _tc_Study;

#ifndef __SALOMEDS_mStudyBuilder__
#define __SALOMEDS_mStudyBuilder__

  class StudyBuilder;
  class _objref_StudyBuilder;
  class _impl_StudyBuilder;
  
  typedef _objref_StudyBuilder* StudyBuilder_ptr;
  typedef StudyBuilder_ptr StudyBuilderRef;

  class StudyBuilder_Helper {
  public:
    typedef StudyBuilder_ptr _ptr_type;

    static _ptr_type _nil();
    static _CORBA_Boolean is_nil(_ptr_type);
    static void release(_ptr_type);
    static void duplicate(_ptr_type);
    static void marshalObjRef(_ptr_type, cdrStream&);
    static _ptr_type unmarshalObjRef(cdrStream&);
  };

  typedef _CORBA_ObjRef_Var<_objref_StudyBuilder, StudyBuilder_Helper> StudyBuilder_var;
  typedef _CORBA_ObjRef_OUT_arg<_objref_StudyBuilder,StudyBuilder_Helper > StudyBuilder_out;

#endif

  // interface StudyBuilder
  class StudyBuilder {
  public:
    // Declarations for this interface type.
    typedef StudyBuilder_ptr _ptr_type;
    typedef StudyBuilder_var _var_type;

    static _ptr_type _duplicate(_ptr_type);
    static _ptr_type _narrow(::CORBA::Object_ptr);
    static _ptr_type _unchecked_narrow(::CORBA::Object_ptr);
    
    static _ptr_type _nil();

    static inline void _marshalObjRef(_ptr_type, cdrStream&);

    static inline _ptr_type _unmarshalObjRef(cdrStream& s) {
      omniObjRef* o = omniObjRef::_unMarshal(_PD_repoId,s);
      if (o)
        return (_ptr_type) o->_ptrToObjRef(_PD_repoId);
      else
        return _nil();
    }

    static _core_attr const char* _PD_repoId;

    // Other IDL defined within this scope.
    class LockProtection : public ::CORBA::UserException {
    public:
      
      

      inline LockProtection() {
        pd_insertToAnyFn    = insertToAnyFn;
        pd_insertToAnyFnNCP = insertToAnyFnNCP;
      }
      LockProtection(const LockProtection&);
      
      LockProtection& operator=(const LockProtection&);
      virtual ~LockProtection();
      virtual void _raise() const;
      static LockProtection* _downcast(::CORBA::Exception*);
      static const LockProtection* _downcast(const ::CORBA::Exception*);
      static inline LockProtection* _narrow(::CORBA::Exception* _e) {
        return _downcast(_e);
      }
      
      inline void operator>>=(cdrStream&) const { }
      inline void operator<<=(cdrStream&) { }

      static _core_attr insertExceptionToAny    insertToAnyFn;
      static _core_attr insertExceptionToAnyNCP insertToAnyFnNCP;

      virtual ::CORBA::Exception* _NP_duplicate() const;

      static _core_attr const char* _PD_repoId;
      static _core_attr const char* _PD_typeId;

    private:
      virtual const char* _NP_typeId() const;
      virtual const char* _NP_repoId(int*) const;
      virtual void _NP_marshal(cdrStream&) const;
    };

    static _dyn_attr const ::CORBA::TypeCode_ptr _tc_LockProtection;

  
  };

  class _objref_StudyBuilder :
    public virtual ::CORBA::Object,
    public virtual omniObjRef
  {
  public:
    SComponent_ptr NewComponent(const char* ComponentDataType);
    void DefineComponentInstance(::SALOMEDS::SComponent_ptr aComponent, ::CORBA::Object_ptr ComponentIOR);
    void RemoveComponent(::SALOMEDS::SComponent_ptr aComponent);
    SObject_ptr NewObject(::SALOMEDS::SObject_ptr theFatherObject);
    SObject_ptr NewObjectToTag(::SALOMEDS::SObject_ptr theFatherObject, ::CORBA::Long atag);
    void RemoveObject(::SALOMEDS::SObject_ptr anObject);
    void RemoveObjectWithChildren(::SALOMEDS::SObject_ptr anObject);
    void LoadWith(::SALOMEDS::SComponent_ptr sco, ::SALOMEDS::Driver_ptr Engine);
    void Load(::SALOMEDS::SObject_ptr sco);
    GenericAttribute_ptr FindOrCreateAttribute(::SALOMEDS::SObject_ptr anObject, const char* aTypeOfAttribute);
    ::CORBA::Boolean FindAttribute(::SALOMEDS::SObject_ptr anObject, ::SALOMEDS::GenericAttribute_out anAttribute, const char* aTypeOfAttribute);
    void RemoveAttribute(::SALOMEDS::SObject_ptr anObject, const char* aTypeOfAttribute);
    void Addreference(::SALOMEDS::SObject_ptr anObject, ::SALOMEDS::SObject_ptr theReferencedObject);
    void RemoveReference(::SALOMEDS::SObject_ptr anObject);
    void AddDirectory(const char* theName);
    void SetGUID(::SALOMEDS::SObject_ptr anObject, const char* theGUID);
    ::CORBA::Boolean IsGUID(::SALOMEDS::SObject_ptr anObject, const char* theGUID);
    void NewCommand();
    void CommitCommand();
    ::CORBA::Boolean HasOpenCommand();
    void AbortCommand();
    void Undo();
    void Redo();
    ::CORBA::Boolean GetAvailableUndos();
    ::CORBA::Boolean GetAvailableRedos();
    void SetName(::SALOMEDS::SObject_ptr theSO, const char* theValue);
    void SetComment(::SALOMEDS::SObject_ptr theSO, const char* theValue);
    void SetIOR(::SALOMEDS::SObject_ptr theSO, const char* theValue);
    ::CORBA::Long UndoLimit();
    void UndoLimit(::CORBA::Long _v);

    inline _objref_StudyBuilder()  { _PR_setobj(0); }  // nil
    _objref_StudyBuilder(omniIOR*, omniIdentity*);

  protected:
    virtual ~_objref_StudyBuilder();

    
  private:
    virtual void* _ptrToObjRef(const char*);

    _objref_StudyBuilder(const _objref_StudyBuilder&);
    _objref_StudyBuilder& operator = (const _objref_StudyBuilder&);
    // not implemented

    friend class StudyBuilder;
  };

  class _pof_StudyBuilder : public _OMNI_NS(proxyObjectFactory) {
  public:
    inline _pof_StudyBuilder() : _OMNI_NS(proxyObjectFactory)(StudyBuilder::_PD_repoId) {}
    virtual ~_pof_StudyBuilder();

    virtual omniObjRef* newObjRef(omniIOR*,omniIdentity*);
    virtual _CORBA_Boolean is_a(const char*) const;
  };

  class _impl_StudyBuilder :
    public virtual omniServant
  {
  public:
    virtual ~_impl_StudyBuilder();

    virtual SComponent_ptr NewComponent(const char* ComponentDataType) = 0;
    virtual void DefineComponentInstance(::SALOMEDS::SComponent_ptr aComponent, ::CORBA::Object_ptr ComponentIOR) = 0;
    virtual void RemoveComponent(::SALOMEDS::SComponent_ptr aComponent) = 0;
    virtual SObject_ptr NewObject(::SALOMEDS::SObject_ptr theFatherObject) = 0;
    virtual SObject_ptr NewObjectToTag(::SALOMEDS::SObject_ptr theFatherObject, ::CORBA::Long atag) = 0;
    virtual void RemoveObject(::SALOMEDS::SObject_ptr anObject) = 0;
    virtual void RemoveObjectWithChildren(::SALOMEDS::SObject_ptr anObject) = 0;
    virtual void LoadWith(::SALOMEDS::SComponent_ptr sco, ::SALOMEDS::Driver_ptr Engine) = 0;
    virtual void Load(::SALOMEDS::SObject_ptr sco) = 0;
    virtual GenericAttribute_ptr FindOrCreateAttribute(::SALOMEDS::SObject_ptr anObject, const char* aTypeOfAttribute) = 0;
    virtual ::CORBA::Boolean FindAttribute(::SALOMEDS::SObject_ptr anObject, ::SALOMEDS::GenericAttribute_out anAttribute, const char* aTypeOfAttribute) = 0;
    virtual void RemoveAttribute(::SALOMEDS::SObject_ptr anObject, const char* aTypeOfAttribute) = 0;
    virtual void Addreference(::SALOMEDS::SObject_ptr anObject, ::SALOMEDS::SObject_ptr theReferencedObject) = 0;
    virtual void RemoveReference(::SALOMEDS::SObject_ptr anObject) = 0;
    virtual void AddDirectory(const char* theName) = 0;
    virtual void SetGUID(::SALOMEDS::SObject_ptr anObject, const char* theGUID) = 0;
    virtual ::CORBA::Boolean IsGUID(::SALOMEDS::SObject_ptr anObject, const char* theGUID) = 0;
    virtual void NewCommand() = 0;
    virtual void CommitCommand() = 0;
    virtual ::CORBA::Boolean HasOpenCommand() = 0;
    virtual void AbortCommand() = 0;
    virtual void Undo() = 0;
    virtual void Redo() = 0;
    virtual ::CORBA::Boolean GetAvailableUndos() = 0;
    virtual ::CORBA::Boolean GetAvailableRedos() = 0;
    virtual void SetName(::SALOMEDS::SObject_ptr theSO, const char* theValue) = 0;
    virtual void SetComment(::SALOMEDS::SObject_ptr theSO, const char* theValue) = 0;
    virtual void SetIOR(::SALOMEDS::SObject_ptr theSO, const char* theValue) = 0;
    virtual ::CORBA::Long UndoLimit() = 0;
    virtual void UndoLimit(::CORBA::Long _v) = 0;
    
  public:  // Really protected, workaround for xlC
    virtual _CORBA_Boolean _dispatch(omniCallHandle&);

  private:
    virtual void* _ptrToInterface(const char*);
    virtual const char* _mostDerivedRepoId();
    
  };


  _CORBA_MODULE_VAR _dyn_attr const ::CORBA::TypeCode_ptr _tc_StudyBuilder;

#ifndef __SALOMEDS_mStudyManager__
#define __SALOMEDS_mStudyManager__

  class StudyManager;
  class _objref_StudyManager;
  class _impl_StudyManager;
  
  typedef _objref_StudyManager* StudyManager_ptr;
  typedef StudyManager_ptr StudyManagerRef;

  class StudyManager_Helper {
  public:
    typedef StudyManager_ptr _ptr_type;

    static _ptr_type _nil();
    static _CORBA_Boolean is_nil(_ptr_type);
    static void release(_ptr_type);
    static void duplicate(_ptr_type);
    static void marshalObjRef(_ptr_type, cdrStream&);
    static _ptr_type unmarshalObjRef(cdrStream&);
  };

  typedef _CORBA_ObjRef_Var<_objref_StudyManager, StudyManager_Helper> StudyManager_var;
  typedef _CORBA_ObjRef_OUT_arg<_objref_StudyManager,StudyManager_Helper > StudyManager_out;

#endif

  // interface StudyManager
  class StudyManager {
  public:
    // Declarations for this interface type.
    typedef StudyManager_ptr _ptr_type;
    typedef StudyManager_var _var_type;

    static _ptr_type _duplicate(_ptr_type);
    static _ptr_type _narrow(::CORBA::Object_ptr);
    static _ptr_type _unchecked_narrow(::CORBA::Object_ptr);
    
    static _ptr_type _nil();

    static inline void _marshalObjRef(_ptr_type, cdrStream&);

    static inline _ptr_type _unmarshalObjRef(cdrStream& s) {
      omniObjRef* o = omniObjRef::_unMarshal(_PD_repoId,s);
      if (o)
        return (_ptr_type) o->_ptrToObjRef(_PD_repoId);
      else
        return _nil();
    }

    static _core_attr const char* _PD_repoId;

    // Other IDL defined within this scope.
    
  };

  class _objref_StudyManager :
    public virtual ::CORBA::Object,
    public virtual omniObjRef
  {
  public:
    void ping();
    void Shutdown();
    ::CORBA::Long getPID();
    void ShutdownWithExit();
    Study_ptr NewStudy(const char* study_name);
    Study_ptr Open(const char* aStudyUrl);
    void Close(::SALOMEDS::Study_ptr aStudy);
    ::CORBA::Boolean Save(::SALOMEDS::Study_ptr aStudy, ::CORBA::Boolean theMultiFile);
    ::CORBA::Boolean SaveASCII(::SALOMEDS::Study_ptr aStudy, ::CORBA::Boolean theMultiFile);
    ::CORBA::Boolean SaveAs(const char* aUrl, ::SALOMEDS::Study_ptr aStudy, ::CORBA::Boolean theMultiFile);
    ::CORBA::Boolean SaveAsASCII(const char* aUrl, ::SALOMEDS::Study_ptr aStudy, ::CORBA::Boolean theMultiFile);
    ListOfOpenStudies* GetOpenStudies();
    Study_ptr GetStudyByName(const char* aStudyName);
    Study_ptr GetStudyByID(::CORBA::Short aStudyID);
    ::CORBA::Boolean CanCopy(::SALOMEDS::SObject_ptr theObject);
    ::CORBA::Boolean Copy(::SALOMEDS::SObject_ptr theObject);
    ::CORBA::Boolean CanPaste(::SALOMEDS::SObject_ptr theObject);
    SObject_ptr Paste(::SALOMEDS::SObject_ptr theObject);
    char* ConvertObjectToIOR(::CORBA::Object_ptr theObject);
    ::CORBA::Object_ptr ConvertIORToObject(const char* theIOR);
    ::CORBA::LongLong GetLocalImpl(const char* theHostname, ::CORBA::Long thePID, ::CORBA::Boolean& isLocal);

    inline _objref_StudyManager()  { _PR_setobj(0); }  // nil
    _objref_StudyManager(omniIOR*, omniIdentity*);

  protected:
    virtual ~_objref_StudyManager();

    
  private:
    virtual void* _ptrToObjRef(const char*);

    _objref_StudyManager(const _objref_StudyManager&);
    _objref_StudyManager& operator = (const _objref_StudyManager&);
    // not implemented

    friend class StudyManager;
  };

  class _pof_StudyManager : public _OMNI_NS(proxyObjectFactory) {
  public:
    inline _pof_StudyManager() : _OMNI_NS(proxyObjectFactory)(StudyManager::_PD_repoId) {}
    virtual ~_pof_StudyManager();

    virtual omniObjRef* newObjRef(omniIOR*,omniIdentity*);
    virtual _CORBA_Boolean is_a(const char*) const;
  };

  class _impl_StudyManager :
    public virtual omniServant
  {
  public:
    virtual ~_impl_StudyManager();

    virtual void ping() = 0;
    virtual void Shutdown() = 0;
    virtual ::CORBA::Long getPID() = 0;
    virtual void ShutdownWithExit() = 0;
    virtual Study_ptr NewStudy(const char* study_name) = 0;
    virtual Study_ptr Open(const char* aStudyUrl) = 0;
    virtual void Close(::SALOMEDS::Study_ptr aStudy) = 0;
    virtual ::CORBA::Boolean Save(::SALOMEDS::Study_ptr aStudy, ::CORBA::Boolean theMultiFile) = 0;
    virtual ::CORBA::Boolean SaveASCII(::SALOMEDS::Study_ptr aStudy, ::CORBA::Boolean theMultiFile) = 0;
    virtual ::CORBA::Boolean SaveAs(const char* aUrl, ::SALOMEDS::Study_ptr aStudy, ::CORBA::Boolean theMultiFile) = 0;
    virtual ::CORBA::Boolean SaveAsASCII(const char* aUrl, ::SALOMEDS::Study_ptr aStudy, ::CORBA::Boolean theMultiFile) = 0;
    virtual ListOfOpenStudies* GetOpenStudies() = 0;
    virtual Study_ptr GetStudyByName(const char* aStudyName) = 0;
    virtual Study_ptr GetStudyByID(::CORBA::Short aStudyID) = 0;
    virtual ::CORBA::Boolean CanCopy(::SALOMEDS::SObject_ptr theObject) = 0;
    virtual ::CORBA::Boolean Copy(::SALOMEDS::SObject_ptr theObject) = 0;
    virtual ::CORBA::Boolean CanPaste(::SALOMEDS::SObject_ptr theObject) = 0;
    virtual SObject_ptr Paste(::SALOMEDS::SObject_ptr theObject) = 0;
    virtual char* ConvertObjectToIOR(::CORBA::Object_ptr theObject) = 0;
    virtual ::CORBA::Object_ptr ConvertIORToObject(const char* theIOR) = 0;
    virtual ::CORBA::LongLong GetLocalImpl(const char* theHostname, ::CORBA::Long thePID, ::CORBA::Boolean& isLocal) = 0;
    
  public:  // Really protected, workaround for xlC
    virtual _CORBA_Boolean _dispatch(omniCallHandle&);

  private:
    virtual void* _ptrToInterface(const char*);
    virtual const char* _mostDerivedRepoId();
    
  };


  _CORBA_MODULE_VAR _dyn_attr const ::CORBA::TypeCode_ptr _tc_StudyManager;

#ifndef __SALOMEDS_mSObject__
#define __SALOMEDS_mSObject__

  class SObject;
  class _objref_SObject;
  class _impl_SObject;
  
  typedef _objref_SObject* SObject_ptr;
  typedef SObject_ptr SObjectRef;

  class SObject_Helper {
  public:
    typedef SObject_ptr _ptr_type;

    static _ptr_type _nil();
    static _CORBA_Boolean is_nil(_ptr_type);
    static void release(_ptr_type);
    static void duplicate(_ptr_type);
    static void marshalObjRef(_ptr_type, cdrStream&);
    static _ptr_type unmarshalObjRef(cdrStream&);
  };

  typedef _CORBA_ObjRef_Var<_objref_SObject, SObject_Helper> SObject_var;
  typedef _CORBA_ObjRef_OUT_arg<_objref_SObject,SObject_Helper > SObject_out;

#endif

  // interface SObject
  class SObject {
  public:
    // Declarations for this interface type.
    typedef SObject_ptr _ptr_type;
    typedef SObject_var _var_type;

    static _ptr_type _duplicate(_ptr_type);
    static _ptr_type _narrow(::CORBA::Object_ptr);
    static _ptr_type _unchecked_narrow(::CORBA::Object_ptr);
    
    static _ptr_type _nil();

    static inline void _marshalObjRef(_ptr_type, cdrStream&);

    static inline _ptr_type _unmarshalObjRef(cdrStream& s) {
      omniObjRef* o = omniObjRef::_unMarshal(_PD_repoId,s);
      if (o)
        return (_ptr_type) o->_ptrToObjRef(_PD_repoId);
      else
        return _nil();
    }

    static _core_attr const char* _PD_repoId;

    // Other IDL defined within this scope.
    
  };

  class _objref_SObject :
    public virtual SALOME::_objref_GenericObj
  {
  public:
    char* GetID();
    SComponent_ptr GetFatherComponent();
    SObject_ptr GetFather();
    ::CORBA::Short Tag();
    ::CORBA::Short Depth();
    ::CORBA::Boolean FindSubObject(::CORBA::Long atag, ::SALOMEDS::SObject_out obj);
    ::CORBA::Boolean FindAttribute(::SALOMEDS::GenericAttribute_out anAttribute, const char* aTypeOfAttribute);
    ::CORBA::Boolean ReferencedObject(::SALOMEDS::SObject_out obj);
    ListOfAttributes* GetAllAttributes();
    Study_ptr GetStudy();
    ::CORBA::Object_ptr GetObject();
    char* GetName();
    char* GetComment();
    char* GetIOR();
    ::CORBA::LongLong GetLocalImpl(const char* theHostname, ::CORBA::Long thePID, ::CORBA::Boolean& isLocal);
    char* Name();
    void Name(const char* _v);

    inline _objref_SObject()  { _PR_setobj(0); }  // nil
    _objref_SObject(omniIOR*, omniIdentity*);

  protected:
    virtual ~_objref_SObject();

    
  private:
    virtual void* _ptrToObjRef(const char*);

    _objref_SObject(const _objref_SObject&);
    _objref_SObject& operator = (const _objref_SObject&);
    // not implemented

    friend class SObject;
  };

  class _pof_SObject : public _OMNI_NS(proxyObjectFactory) {
  public:
    inline _pof_SObject() : _OMNI_NS(proxyObjectFactory)(SObject::_PD_repoId) {}
    virtual ~_pof_SObject();

    virtual omniObjRef* newObjRef(omniIOR*,omniIdentity*);
    virtual _CORBA_Boolean is_a(const char*) const;
  };

  class _impl_SObject :
    public virtual SALOME::_impl_GenericObj
  {
  public:
    virtual ~_impl_SObject();

    virtual char* GetID() = 0;
    virtual SComponent_ptr GetFatherComponent() = 0;
    virtual SObject_ptr GetFather() = 0;
    virtual ::CORBA::Short Tag() = 0;
    virtual ::CORBA::Short Depth() = 0;
    virtual ::CORBA::Boolean FindSubObject(::CORBA::Long atag, ::SALOMEDS::SObject_out obj) = 0;
    virtual ::CORBA::Boolean FindAttribute(::SALOMEDS::GenericAttribute_out anAttribute, const char* aTypeOfAttribute) = 0;
    virtual ::CORBA::Boolean ReferencedObject(::SALOMEDS::SObject_out obj) = 0;
    virtual ListOfAttributes* GetAllAttributes() = 0;
    virtual Study_ptr GetStudy() = 0;
    virtual ::CORBA::Object_ptr GetObject() = 0;
    virtual char* GetName() = 0;
    virtual char* GetComment() = 0;
    virtual char* GetIOR() = 0;
    virtual ::CORBA::LongLong GetLocalImpl(const char* theHostname, ::CORBA::Long thePID, ::CORBA::Boolean& isLocal) = 0;
    virtual char* Name() = 0;
    virtual void Name(const char* _v) = 0;
    
  public:  // Really protected, workaround for xlC
    virtual _CORBA_Boolean _dispatch(omniCallHandle&);

  private:
    virtual void* _ptrToInterface(const char*);
    virtual const char* _mostDerivedRepoId();
    
  };


  _CORBA_MODULE_VAR _dyn_attr const ::CORBA::TypeCode_ptr _tc_SObject;

#ifndef __SALOMEDS_mGenericAttribute__
#define __SALOMEDS_mGenericAttribute__

  class GenericAttribute;
  class _objref_GenericAttribute;
  class _impl_GenericAttribute;
  
  typedef _objref_GenericAttribute* GenericAttribute_ptr;
  typedef GenericAttribute_ptr GenericAttributeRef;

  class GenericAttribute_Helper {
  public:
    typedef GenericAttribute_ptr _ptr_type;

    static _ptr_type _nil();
    static _CORBA_Boolean is_nil(_ptr_type);
    static void release(_ptr_type);
    static void duplicate(_ptr_type);
    static void marshalObjRef(_ptr_type, cdrStream&);
    static _ptr_type unmarshalObjRef(cdrStream&);
  };

  typedef _CORBA_ObjRef_Var<_objref_GenericAttribute, GenericAttribute_Helper> GenericAttribute_var;
  typedef _CORBA_ObjRef_OUT_arg<_objref_GenericAttribute,GenericAttribute_Helper > GenericAttribute_out;

#endif

  // interface GenericAttribute
  class GenericAttribute {
  public:
    // Declarations for this interface type.
    typedef GenericAttribute_ptr _ptr_type;
    typedef GenericAttribute_var _var_type;

    static _ptr_type _duplicate(_ptr_type);
    static _ptr_type _narrow(::CORBA::Object_ptr);
    static _ptr_type _unchecked_narrow(::CORBA::Object_ptr);
    
    static _ptr_type _nil();

    static inline void _marshalObjRef(_ptr_type, cdrStream&);

    static inline _ptr_type _unmarshalObjRef(cdrStream& s) {
      omniObjRef* o = omniObjRef::_unMarshal(_PD_repoId,s);
      if (o)
        return (_ptr_type) o->_ptrToObjRef(_PD_repoId);
      else
        return _nil();
    }

    static _core_attr const char* _PD_repoId;

    // Other IDL defined within this scope.
    class LockProtection : public ::CORBA::UserException {
    public:
      
      

      inline LockProtection() {
        pd_insertToAnyFn    = insertToAnyFn;
        pd_insertToAnyFnNCP = insertToAnyFnNCP;
      }
      LockProtection(const LockProtection&);
      
      LockProtection& operator=(const LockProtection&);
      virtual ~LockProtection();
      virtual void _raise() const;
      static LockProtection* _downcast(::CORBA::Exception*);
      static const LockProtection* _downcast(const ::CORBA::Exception*);
      static inline LockProtection* _narrow(::CORBA::Exception* _e) {
        return _downcast(_e);
      }
      
      inline void operator>>=(cdrStream&) const { }
      inline void operator<<=(cdrStream&) { }

      static _core_attr insertExceptionToAny    insertToAnyFn;
      static _core_attr insertExceptionToAnyNCP insertToAnyFnNCP;

      virtual ::CORBA::Exception* _NP_duplicate() const;

      static _core_attr const char* _PD_repoId;
      static _core_attr const char* _PD_typeId;

    private:
      virtual const char* _NP_typeId() const;
      virtual const char* _NP_repoId(int*) const;
      virtual void _NP_marshal(cdrStream&) const;
    };

    static _dyn_attr const ::CORBA::TypeCode_ptr _tc_LockProtection;

  
  };

  class _objref_GenericAttribute :
    public virtual SALOME::_objref_GenericObj
  {
  public:
    void CheckLocked();
    char* Type();
    char* GetClassType();
    SObject_ptr GetSObject();
    ::CORBA::LongLong GetLocalImpl(const char* theHostname, ::CORBA::Long thePID, ::CORBA::Boolean& isLocal);

    inline _objref_GenericAttribute()  { _PR_setobj(0); }  // nil
    _objref_GenericAttribute(omniIOR*, omniIdentity*);

  protected:
    virtual ~_objref_GenericAttribute();

    
  private:
    virtual void* _ptrToObjRef(const char*);

    _objref_GenericAttribute(const _objref_GenericAttribute&);
    _objref_GenericAttribute& operator = (const _objref_GenericAttribute&);
    // not implemented

    friend class GenericAttribute;
  };

  class _pof_GenericAttribute : public _OMNI_NS(proxyObjectFactory) {
  public:
    inline _pof_GenericAttribute() : _OMNI_NS(proxyObjectFactory)(GenericAttribute::_PD_repoId) {}
    virtual ~_pof_GenericAttribute();

    virtual omniObjRef* newObjRef(omniIOR*,omniIdentity*);
    virtual _CORBA_Boolean is_a(const char*) const;
  };

  class _impl_GenericAttribute :
    public virtual SALOME::_impl_GenericObj
  {
  public:
    virtual ~_impl_GenericAttribute();

    virtual void CheckLocked() = 0;
    virtual char* Type() = 0;
    virtual char* GetClassType() = 0;
    virtual SObject_ptr GetSObject() = 0;
    virtual ::CORBA::LongLong GetLocalImpl(const char* theHostname, ::CORBA::Long thePID, ::CORBA::Boolean& isLocal) = 0;
    
  public:  // Really protected, workaround for xlC
    virtual _CORBA_Boolean _dispatch(omniCallHandle&);

  private:
    virtual void* _ptrToInterface(const char*);
    virtual const char* _mostDerivedRepoId();
    
  };


  _CORBA_MODULE_VAR _dyn_attr const ::CORBA::TypeCode_ptr _tc_GenericAttribute;

#ifndef __SALOMEDS_mSComponent__
#define __SALOMEDS_mSComponent__

  class SComponent;
  class _objref_SComponent;
  class _impl_SComponent;
  
  typedef _objref_SComponent* SComponent_ptr;
  typedef SComponent_ptr SComponentRef;

  class SComponent_Helper {
  public:
    typedef SComponent_ptr _ptr_type;

    static _ptr_type _nil();
    static _CORBA_Boolean is_nil(_ptr_type);
    static void release(_ptr_type);
    static void duplicate(_ptr_type);
    static void marshalObjRef(_ptr_type, cdrStream&);
    static _ptr_type unmarshalObjRef(cdrStream&);
  };

  typedef _CORBA_ObjRef_Var<_objref_SComponent, SComponent_Helper> SComponent_var;
  typedef _CORBA_ObjRef_OUT_arg<_objref_SComponent,SComponent_Helper > SComponent_out;

#endif

  // interface SComponent
  class SComponent {
  public:
    // Declarations for this interface type.
    typedef SComponent_ptr _ptr_type;
    typedef SComponent_var _var_type;

    static _ptr_type _duplicate(_ptr_type);
    static _ptr_type _narrow(::CORBA::Object_ptr);
    static _ptr_type _unchecked_narrow(::CORBA::Object_ptr);
    
    static _ptr_type _nil();

    static inline void _marshalObjRef(_ptr_type, cdrStream&);

    static inline _ptr_type _unmarshalObjRef(cdrStream& s) {
      omniObjRef* o = omniObjRef::_unMarshal(_PD_repoId,s);
      if (o)
        return (_ptr_type) o->_ptrToObjRef(_PD_repoId);
      else
        return _nil();
    }

    static _core_attr const char* _PD_repoId;

    // Other IDL defined within this scope.
    
  };

  class _objref_SComponent :
    public virtual _objref_SObject
  {
  public:
    char* ComponentDataType();
    ::CORBA::Boolean ComponentIOR(::SALOMEDS::ID_out theID);

    inline _objref_SComponent()  { _PR_setobj(0); }  // nil
    _objref_SComponent(omniIOR*, omniIdentity*);

  protected:
    virtual ~_objref_SComponent();

    
  private:
    virtual void* _ptrToObjRef(const char*);

    _objref_SComponent(const _objref_SComponent&);
    _objref_SComponent& operator = (const _objref_SComponent&);
    // not implemented

    friend class SComponent;
  };

  class _pof_SComponent : public _OMNI_NS(proxyObjectFactory) {
  public:
    inline _pof_SComponent() : _OMNI_NS(proxyObjectFactory)(SComponent::_PD_repoId) {}
    virtual ~_pof_SComponent();

    virtual omniObjRef* newObjRef(omniIOR*,omniIdentity*);
    virtual _CORBA_Boolean is_a(const char*) const;
  };

  class _impl_SComponent :
    public virtual _impl_SObject
  {
  public:
    virtual ~_impl_SComponent();

    virtual char* ComponentDataType() = 0;
    virtual ::CORBA::Boolean ComponentIOR(::SALOMEDS::ID_out theID) = 0;
    
  public:  // Really protected, workaround for xlC
    virtual _CORBA_Boolean _dispatch(omniCallHandle&);

  private:
    virtual void* _ptrToInterface(const char*);
    virtual const char* _mostDerivedRepoId();
    
  };


  _CORBA_MODULE_VAR _dyn_attr const ::CORBA::TypeCode_ptr _tc_SComponent;

#ifndef __SALOMEDS_mSComponentIterator__
#define __SALOMEDS_mSComponentIterator__

  class SComponentIterator;
  class _objref_SComponentIterator;
  class _impl_SComponentIterator;
  
  typedef _objref_SComponentIterator* SComponentIterator_ptr;
  typedef SComponentIterator_ptr SComponentIteratorRef;

  class SComponentIterator_Helper {
  public:
    typedef SComponentIterator_ptr _ptr_type;

    static _ptr_type _nil();
    static _CORBA_Boolean is_nil(_ptr_type);
    static void release(_ptr_type);
    static void duplicate(_ptr_type);
    static void marshalObjRef(_ptr_type, cdrStream&);
    static _ptr_type unmarshalObjRef(cdrStream&);
  };

  typedef _CORBA_ObjRef_Var<_objref_SComponentIterator, SComponentIterator_Helper> SComponentIterator_var;
  typedef _CORBA_ObjRef_OUT_arg<_objref_SComponentIterator,SComponentIterator_Helper > SComponentIterator_out;

#endif

  // interface SComponentIterator
  class SComponentIterator {
  public:
    // Declarations for this interface type.
    typedef SComponentIterator_ptr _ptr_type;
    typedef SComponentIterator_var _var_type;

    static _ptr_type _duplicate(_ptr_type);
    static _ptr_type _narrow(::CORBA::Object_ptr);
    static _ptr_type _unchecked_narrow(::CORBA::Object_ptr);
    
    static _ptr_type _nil();

    static inline void _marshalObjRef(_ptr_type, cdrStream&);

    static inline _ptr_type _unmarshalObjRef(cdrStream& s) {
      omniObjRef* o = omniObjRef::_unMarshal(_PD_repoId,s);
      if (o)
        return (_ptr_type) o->_ptrToObjRef(_PD_repoId);
      else
        return _nil();
    }

    static _core_attr const char* _PD_repoId;

    // Other IDL defined within this scope.
    
  };

  class _objref_SComponentIterator :
    public virtual SALOME::_objref_GenericObj
  {
  public:
    void Init();
    ::CORBA::Boolean More();
    void Next();
    SComponent_ptr Value();

    inline _objref_SComponentIterator()  { _PR_setobj(0); }  // nil
    _objref_SComponentIterator(omniIOR*, omniIdentity*);

  protected:
    virtual ~_objref_SComponentIterator();

    
  private:
    virtual void* _ptrToObjRef(const char*);

    _objref_SComponentIterator(const _objref_SComponentIterator&);
    _objref_SComponentIterator& operator = (const _objref_SComponentIterator&);
    // not implemented

    friend class SComponentIterator;
  };

  class _pof_SComponentIterator : public _OMNI_NS(proxyObjectFactory) {
  public:
    inline _pof_SComponentIterator() : _OMNI_NS(proxyObjectFactory)(SComponentIterator::_PD_repoId) {}
    virtual ~_pof_SComponentIterator();

    virtual omniObjRef* newObjRef(omniIOR*,omniIdentity*);
    virtual _CORBA_Boolean is_a(const char*) const;
  };

  class _impl_SComponentIterator :
    public virtual SALOME::_impl_GenericObj
  {
  public:
    virtual ~_impl_SComponentIterator();

    virtual void Init() = 0;
    virtual ::CORBA::Boolean More() = 0;
    virtual void Next() = 0;
    virtual SComponent_ptr Value() = 0;
    
  public:  // Really protected, workaround for xlC
    virtual _CORBA_Boolean _dispatch(omniCallHandle&);

  private:
    virtual void* _ptrToInterface(const char*);
    virtual const char* _mostDerivedRepoId();
    
  };


  _CORBA_MODULE_VAR _dyn_attr const ::CORBA::TypeCode_ptr _tc_SComponentIterator;

#ifndef __SALOMEDS_mChildIterator__
#define __SALOMEDS_mChildIterator__

  class ChildIterator;
  class _objref_ChildIterator;
  class _impl_ChildIterator;
  
  typedef _objref_ChildIterator* ChildIterator_ptr;
  typedef ChildIterator_ptr ChildIteratorRef;

  class ChildIterator_Helper {
  public:
    typedef ChildIterator_ptr _ptr_type;

    static _ptr_type _nil();
    static _CORBA_Boolean is_nil(_ptr_type);
    static void release(_ptr_type);
    static void duplicate(_ptr_type);
    static void marshalObjRef(_ptr_type, cdrStream&);
    static _ptr_type unmarshalObjRef(cdrStream&);
  };

  typedef _CORBA_ObjRef_Var<_objref_ChildIterator, ChildIterator_Helper> ChildIterator_var;
  typedef _CORBA_ObjRef_OUT_arg<_objref_ChildIterator,ChildIterator_Helper > ChildIterator_out;

#endif

  // interface ChildIterator
  class ChildIterator {
  public:
    // Declarations for this interface type.
    typedef ChildIterator_ptr _ptr_type;
    typedef ChildIterator_var _var_type;

    static _ptr_type _duplicate(_ptr_type);
    static _ptr_type _narrow(::CORBA::Object_ptr);
    static _ptr_type _unchecked_narrow(::CORBA::Object_ptr);
    
    static _ptr_type _nil();

    static inline void _marshalObjRef(_ptr_type, cdrStream&);

    static inline _ptr_type _unmarshalObjRef(cdrStream& s) {
      omniObjRef* o = omniObjRef::_unMarshal(_PD_repoId,s);
      if (o)
        return (_ptr_type) o->_ptrToObjRef(_PD_repoId);
      else
        return _nil();
    }

    static _core_attr const char* _PD_repoId;

    // Other IDL defined within this scope.
    
  };

  class _objref_ChildIterator :
    public virtual SALOME::_objref_GenericObj
  {
  public:
    void Init();
    void InitEx(::CORBA::Boolean allLevels);
    ::CORBA::Boolean More();
    void Next();
    SObject_ptr Value();

    inline _objref_ChildIterator()  { _PR_setobj(0); }  // nil
    _objref_ChildIterator(omniIOR*, omniIdentity*);

  protected:
    virtual ~_objref_ChildIterator();

    
  private:
    virtual void* _ptrToObjRef(const char*);

    _objref_ChildIterator(const _objref_ChildIterator&);
    _objref_ChildIterator& operator = (const _objref_ChildIterator&);
    // not implemented

    friend class ChildIterator;
  };

  class _pof_ChildIterator : public _OMNI_NS(proxyObjectFactory) {
  public:
    inline _pof_ChildIterator() : _OMNI_NS(proxyObjectFactory)(ChildIterator::_PD_repoId) {}
    virtual ~_pof_ChildIterator();

    virtual omniObjRef* newObjRef(omniIOR*,omniIdentity*);
    virtual _CORBA_Boolean is_a(const char*) const;
  };

  class _impl_ChildIterator :
    public virtual SALOME::_impl_GenericObj
  {
  public:
    virtual ~_impl_ChildIterator();

    virtual void Init() = 0;
    virtual void InitEx(::CORBA::Boolean allLevels) = 0;
    virtual ::CORBA::Boolean More() = 0;
    virtual void Next() = 0;
    virtual SObject_ptr Value() = 0;
    
  public:  // Really protected, workaround for xlC
    virtual _CORBA_Boolean _dispatch(omniCallHandle&);

  private:
    virtual void* _ptrToInterface(const char*);
    virtual const char* _mostDerivedRepoId();
    
  };


  _CORBA_MODULE_VAR _dyn_attr const ::CORBA::TypeCode_ptr _tc_ChildIterator;

#ifndef __SALOMEDS_mUseCaseIterator__
#define __SALOMEDS_mUseCaseIterator__

  class UseCaseIterator;
  class _objref_UseCaseIterator;
  class _impl_UseCaseIterator;
  
  typedef _objref_UseCaseIterator* UseCaseIterator_ptr;
  typedef UseCaseIterator_ptr UseCaseIteratorRef;

  class UseCaseIterator_Helper {
  public:
    typedef UseCaseIterator_ptr _ptr_type;

    static _ptr_type _nil();
    static _CORBA_Boolean is_nil(_ptr_type);
    static void release(_ptr_type);
    static void duplicate(_ptr_type);
    static void marshalObjRef(_ptr_type, cdrStream&);
    static _ptr_type unmarshalObjRef(cdrStream&);
  };

  typedef _CORBA_ObjRef_Var<_objref_UseCaseIterator, UseCaseIterator_Helper> UseCaseIterator_var;
  typedef _CORBA_ObjRef_OUT_arg<_objref_UseCaseIterator,UseCaseIterator_Helper > UseCaseIterator_out;

#endif

  // interface UseCaseIterator
  class UseCaseIterator {
  public:
    // Declarations for this interface type.
    typedef UseCaseIterator_ptr _ptr_type;
    typedef UseCaseIterator_var _var_type;

    static _ptr_type _duplicate(_ptr_type);
    static _ptr_type _narrow(::CORBA::Object_ptr);
    static _ptr_type _unchecked_narrow(::CORBA::Object_ptr);
    
    static _ptr_type _nil();

    static inline void _marshalObjRef(_ptr_type, cdrStream&);

    static inline _ptr_type _unmarshalObjRef(cdrStream& s) {
      omniObjRef* o = omniObjRef::_unMarshal(_PD_repoId,s);
      if (o)
        return (_ptr_type) o->_ptrToObjRef(_PD_repoId);
      else
        return _nil();
    }

    static _core_attr const char* _PD_repoId;

    // Other IDL defined within this scope.
    
  };

  class _objref_UseCaseIterator :
    public virtual SALOME::_objref_GenericObj
  {
  public:
    void Init(::CORBA::Boolean allLevels);
    ::CORBA::Boolean More();
    void Next();
    SObject_ptr Value();

    inline _objref_UseCaseIterator()  { _PR_setobj(0); }  // nil
    _objref_UseCaseIterator(omniIOR*, omniIdentity*);

  protected:
    virtual ~_objref_UseCaseIterator();

    
  private:
    virtual void* _ptrToObjRef(const char*);

    _objref_UseCaseIterator(const _objref_UseCaseIterator&);
    _objref_UseCaseIterator& operator = (const _objref_UseCaseIterator&);
    // not implemented

    friend class UseCaseIterator;
  };

  class _pof_UseCaseIterator : public _OMNI_NS(proxyObjectFactory) {
  public:
    inline _pof_UseCaseIterator() : _OMNI_NS(proxyObjectFactory)(UseCaseIterator::_PD_repoId) {}
    virtual ~_pof_UseCaseIterator();

    virtual omniObjRef* newObjRef(omniIOR*,omniIdentity*);
    virtual _CORBA_Boolean is_a(const char*) const;
  };

  class _impl_UseCaseIterator :
    public virtual SALOME::_impl_GenericObj
  {
  public:
    virtual ~_impl_UseCaseIterator();

    virtual void Init(::CORBA::Boolean allLevels) = 0;
    virtual ::CORBA::Boolean More() = 0;
    virtual void Next() = 0;
    virtual SObject_ptr Value() = 0;
    
  public:  // Really protected, workaround for xlC
    virtual _CORBA_Boolean _dispatch(omniCallHandle&);

  private:
    virtual void* _ptrToInterface(const char*);
    virtual const char* _mostDerivedRepoId();
    
  };


  _CORBA_MODULE_VAR _dyn_attr const ::CORBA::TypeCode_ptr _tc_UseCaseIterator;

#ifndef __SALOMEDS_mUseCaseBuilder__
#define __SALOMEDS_mUseCaseBuilder__

  class UseCaseBuilder;
  class _objref_UseCaseBuilder;
  class _impl_UseCaseBuilder;
  
  typedef _objref_UseCaseBuilder* UseCaseBuilder_ptr;
  typedef UseCaseBuilder_ptr UseCaseBuilderRef;

  class UseCaseBuilder_Helper {
  public:
    typedef UseCaseBuilder_ptr _ptr_type;

    static _ptr_type _nil();
    static _CORBA_Boolean is_nil(_ptr_type);
    static void release(_ptr_type);
    static void duplicate(_ptr_type);
    static void marshalObjRef(_ptr_type, cdrStream&);
    static _ptr_type unmarshalObjRef(cdrStream&);
  };

  typedef _CORBA_ObjRef_Var<_objref_UseCaseBuilder, UseCaseBuilder_Helper> UseCaseBuilder_var;
  typedef _CORBA_ObjRef_OUT_arg<_objref_UseCaseBuilder,UseCaseBuilder_Helper > UseCaseBuilder_out;

#endif

  // interface UseCaseBuilder
  class UseCaseBuilder {
  public:
    // Declarations for this interface type.
    typedef UseCaseBuilder_ptr _ptr_type;
    typedef UseCaseBuilder_var _var_type;

    static _ptr_type _duplicate(_ptr_type);
    static _ptr_type _narrow(::CORBA::Object_ptr);
    static _ptr_type _unchecked_narrow(::CORBA::Object_ptr);
    
    static _ptr_type _nil();

    static inline void _marshalObjRef(_ptr_type, cdrStream&);

    static inline _ptr_type _unmarshalObjRef(cdrStream& s) {
      omniObjRef* o = omniObjRef::_unMarshal(_PD_repoId,s);
      if (o)
        return (_ptr_type) o->_ptrToObjRef(_PD_repoId);
      else
        return _nil();
    }

    static _core_attr const char* _PD_repoId;

    // Other IDL defined within this scope.
    
  };

  class _objref_UseCaseBuilder :
    public virtual SALOME::_objref_GenericObj
  {
  public:
    ::CORBA::Boolean Append(::SALOMEDS::SObject_ptr theObject);
    ::CORBA::Boolean Remove(::SALOMEDS::SObject_ptr theObject);
    ::CORBA::Boolean AppendTo(::SALOMEDS::SObject_ptr theFather, ::SALOMEDS::SObject_ptr theObject);
    ::CORBA::Boolean InsertBefore(::SALOMEDS::SObject_ptr theFirst, ::SALOMEDS::SObject_ptr theNext);
    ::CORBA::Boolean SetCurrentObject(::SALOMEDS::SObject_ptr theObject);
    ::CORBA::Boolean SetRootCurrent();
    ::CORBA::Boolean HasChildren(::SALOMEDS::SObject_ptr theObject);
    ::CORBA::Boolean SetName(const char* theName);
    char* GetName();
    ::CORBA::Boolean IsUseCase(::SALOMEDS::SObject_ptr theObject);
    SObject_ptr GetCurrentObject();
    SObject_ptr AddUseCase(const char* theName);
    UseCaseIterator_ptr GetUseCaseIterator(::SALOMEDS::SObject_ptr theObject);

    inline _objref_UseCaseBuilder()  { _PR_setobj(0); }  // nil
    _objref_UseCaseBuilder(omniIOR*, omniIdentity*);

  protected:
    virtual ~_objref_UseCaseBuilder();

    
  private:
    virtual void* _ptrToObjRef(const char*);

    _objref_UseCaseBuilder(const _objref_UseCaseBuilder&);
    _objref_UseCaseBuilder& operator = (const _objref_UseCaseBuilder&);
    // not implemented

    friend class UseCaseBuilder;
  };

  class _pof_UseCaseBuilder : public _OMNI_NS(proxyObjectFactory) {
  public:
    inline _pof_UseCaseBuilder() : _OMNI_NS(proxyObjectFactory)(UseCaseBuilder::_PD_repoId) {}
    virtual ~_pof_UseCaseBuilder();

    virtual omniObjRef* newObjRef(omniIOR*,omniIdentity*);
    virtual _CORBA_Boolean is_a(const char*) const;
  };

  class _impl_UseCaseBuilder :
    public virtual SALOME::_impl_GenericObj
  {
  public:
    virtual ~_impl_UseCaseBuilder();

    virtual ::CORBA::Boolean Append(::SALOMEDS::SObject_ptr theObject) = 0;
    virtual ::CORBA::Boolean Remove(::SALOMEDS::SObject_ptr theObject) = 0;
    virtual ::CORBA::Boolean AppendTo(::SALOMEDS::SObject_ptr theFather, ::SALOMEDS::SObject_ptr theObject) = 0;
    virtual ::CORBA::Boolean InsertBefore(::SALOMEDS::SObject_ptr theFirst, ::SALOMEDS::SObject_ptr theNext) = 0;
    virtual ::CORBA::Boolean SetCurrentObject(::SALOMEDS::SObject_ptr theObject) = 0;
    virtual ::CORBA::Boolean SetRootCurrent() = 0;
    virtual ::CORBA::Boolean HasChildren(::SALOMEDS::SObject_ptr theObject) = 0;
    virtual ::CORBA::Boolean SetName(const char* theName) = 0;
    virtual char* GetName() = 0;
    virtual ::CORBA::Boolean IsUseCase(::SALOMEDS::SObject_ptr theObject) = 0;
    virtual SObject_ptr GetCurrentObject() = 0;
    virtual SObject_ptr AddUseCase(const char* theName) = 0;
    virtual UseCaseIterator_ptr GetUseCaseIterator(::SALOMEDS::SObject_ptr theObject) = 0;
    
  public:  // Really protected, workaround for xlC
    virtual _CORBA_Boolean _dispatch(omniCallHandle&);

  private:
    virtual void* _ptrToInterface(const char*);
    virtual const char* _mostDerivedRepoId();
    
  };


  _CORBA_MODULE_VAR _dyn_attr const ::CORBA::TypeCode_ptr _tc_UseCaseBuilder;

#ifndef __SALOMEDS_mDriver__
#define __SALOMEDS_mDriver__

  class Driver;
  class _objref_Driver;
  class _impl_Driver;
  
  typedef _objref_Driver* Driver_ptr;
  typedef Driver_ptr DriverRef;

  class Driver_Helper {
  public:
    typedef Driver_ptr _ptr_type;

    static _ptr_type _nil();
    static _CORBA_Boolean is_nil(_ptr_type);
    static void release(_ptr_type);
    static void duplicate(_ptr_type);
    static void marshalObjRef(_ptr_type, cdrStream&);
    static _ptr_type unmarshalObjRef(cdrStream&);
  };

  typedef _CORBA_ObjRef_Var<_objref_Driver, Driver_Helper> Driver_var;
  typedef _CORBA_ObjRef_OUT_arg<_objref_Driver,Driver_Helper > Driver_out;

#endif

  // interface Driver
  class Driver {
  public:
    // Declarations for this interface type.
    typedef Driver_ptr _ptr_type;
    typedef Driver_var _var_type;

    static _ptr_type _duplicate(_ptr_type);
    static _ptr_type _narrow(::CORBA::Object_ptr);
    static _ptr_type _unchecked_narrow(::CORBA::Object_ptr);
    
    static _ptr_type _nil();

    static inline void _marshalObjRef(_ptr_type, cdrStream&);

    static inline _ptr_type _unmarshalObjRef(cdrStream& s) {
      omniObjRef* o = omniObjRef::_unMarshal(_PD_repoId,s);
      if (o)
        return (_ptr_type) o->_ptrToObjRef(_PD_repoId);
      else
        return _nil();
    }

    static _core_attr const char* _PD_repoId;

    // Other IDL defined within this scope.
    
  };

  class _objref_Driver :
    public virtual ::CORBA::Object,
    public virtual omniObjRef
  {
  public:
    TMPFile* Save(::SALOMEDS::SComponent_ptr theComponent, const char* theURL, ::CORBA::Boolean isMultiFile);
    TMPFile* SaveASCII(::SALOMEDS::SComponent_ptr theComponent, const char* theURL, ::CORBA::Boolean isMultiFile);
    ::CORBA::Boolean Load(::SALOMEDS::SComponent_ptr theComponent, const ::SALOMEDS::TMPFile& theStream, const char* theURL, ::CORBA::Boolean isMultiFile);
    ::CORBA::Boolean LoadASCII(::SALOMEDS::SComponent_ptr theComponent, const ::SALOMEDS::TMPFile& theStream, const char* theURL, ::CORBA::Boolean isMultiFile);
    void Close(::SALOMEDS::SComponent_ptr aSComponent);
    char* ComponentDataType();
    char* IORToLocalPersistentID(::SALOMEDS::SObject_ptr theSObject, const char* IORString, ::CORBA::Boolean isMultiFile, ::CORBA::Boolean isASCII);
    char* LocalPersistentIDToIOR(::SALOMEDS::SObject_ptr theSObject, const char* aLocalPersistentID, ::CORBA::Boolean isMultiFile, ::CORBA::Boolean isASCII);
    ::CORBA::Boolean CanPublishInStudy(::CORBA::Object_ptr theIOR);
    SObject_ptr PublishInStudy(::SALOMEDS::Study_ptr theStudy, ::SALOMEDS::SObject_ptr theSObject, ::CORBA::Object_ptr theObject, const char* theName);
    ::CORBA::Boolean CanCopy(::SALOMEDS::SObject_ptr theObject);
    TMPFile* CopyFrom(::SALOMEDS::SObject_ptr theObject, ::CORBA::Long& theObjectID);
    ::CORBA::Boolean CanPaste(const char* theComponentName, ::CORBA::Long theObjectID);
    SObject_ptr PasteInto(const ::SALOMEDS::TMPFile& theStream, ::CORBA::Long theObjectID, ::SALOMEDS::SObject_ptr theObject);

    inline _objref_Driver()  { _PR_setobj(0); }  // nil
    _objref_Driver(omniIOR*, omniIdentity*);

  protected:
    virtual ~_objref_Driver();

    
  private:
    virtual void* _ptrToObjRef(const char*);

    _objref_Driver(const _objref_Driver&);
    _objref_Driver& operator = (const _objref_Driver&);
    // not implemented

    friend class Driver;
  };

  class _pof_Driver : public _OMNI_NS(proxyObjectFactory) {
  public:
    inline _pof_Driver() : _OMNI_NS(proxyObjectFactory)(Driver::_PD_repoId) {}
    virtual ~_pof_Driver();

    virtual omniObjRef* newObjRef(omniIOR*,omniIdentity*);
    virtual _CORBA_Boolean is_a(const char*) const;
  };

  class _impl_Driver :
    public virtual omniServant
  {
  public:
    virtual ~_impl_Driver();

    virtual TMPFile* Save(::SALOMEDS::SComponent_ptr theComponent, const char* theURL, ::CORBA::Boolean isMultiFile) = 0;
    virtual TMPFile* SaveASCII(::SALOMEDS::SComponent_ptr theComponent, const char* theURL, ::CORBA::Boolean isMultiFile) = 0;
    virtual ::CORBA::Boolean Load(::SALOMEDS::SComponent_ptr theComponent, const ::SALOMEDS::TMPFile& theStream, const char* theURL, ::CORBA::Boolean isMultiFile) = 0;
    virtual ::CORBA::Boolean LoadASCII(::SALOMEDS::SComponent_ptr theComponent, const ::SALOMEDS::TMPFile& theStream, const char* theURL, ::CORBA::Boolean isMultiFile) = 0;
    virtual void Close(::SALOMEDS::SComponent_ptr aSComponent) = 0;
    virtual char* ComponentDataType() = 0;
    virtual char* IORToLocalPersistentID(::SALOMEDS::SObject_ptr theSObject, const char* IORString, ::CORBA::Boolean isMultiFile, ::CORBA::Boolean isASCII) = 0;
    virtual char* LocalPersistentIDToIOR(::SALOMEDS::SObject_ptr theSObject, const char* aLocalPersistentID, ::CORBA::Boolean isMultiFile, ::CORBA::Boolean isASCII) = 0;
    virtual ::CORBA::Boolean CanPublishInStudy(::CORBA::Object_ptr theIOR) = 0;
    virtual SObject_ptr PublishInStudy(::SALOMEDS::Study_ptr theStudy, ::SALOMEDS::SObject_ptr theSObject, ::CORBA::Object_ptr theObject, const char* theName) = 0;
    virtual ::CORBA::Boolean CanCopy(::SALOMEDS::SObject_ptr theObject) = 0;
    virtual TMPFile* CopyFrom(::SALOMEDS::SObject_ptr theObject, ::CORBA::Long& theObjectID) = 0;
    virtual ::CORBA::Boolean CanPaste(const char* theComponentName, ::CORBA::Long theObjectID) = 0;
    virtual SObject_ptr PasteInto(const ::SALOMEDS::TMPFile& theStream, ::CORBA::Long theObjectID, ::SALOMEDS::SObject_ptr theObject) = 0;
    
  public:  // Really protected, workaround for xlC
    virtual _CORBA_Boolean _dispatch(omniCallHandle&);

  private:
    virtual void* _ptrToInterface(const char*);
    virtual const char* _mostDerivedRepoId();
    
  };


  _CORBA_MODULE_VAR _dyn_attr const ::CORBA::TypeCode_ptr _tc_Driver;

_CORBA_MODULE_END



_CORBA_MODULE POA_SALOMEDS
_CORBA_MODULE_BEG

  class Study :
    public virtual SALOMEDS::_impl_Study,
    public virtual ::PortableServer::ServantBase
  {
  public:
    virtual ~Study();

    inline ::SALOMEDS::Study_ptr _this() {
      return (::SALOMEDS::Study_ptr) _do_this(::SALOMEDS::Study::_PD_repoId);
    }
  };

  class StudyBuilder :
    public virtual SALOMEDS::_impl_StudyBuilder,
    public virtual ::PortableServer::ServantBase
  {
  public:
    virtual ~StudyBuilder();

    inline ::SALOMEDS::StudyBuilder_ptr _this() {
      return (::SALOMEDS::StudyBuilder_ptr) _do_this(::SALOMEDS::StudyBuilder::_PD_repoId);
    }
  };

  class StudyManager :
    public virtual SALOMEDS::_impl_StudyManager,
    public virtual ::PortableServer::ServantBase
  {
  public:
    virtual ~StudyManager();

    inline ::SALOMEDS::StudyManager_ptr _this() {
      return (::SALOMEDS::StudyManager_ptr) _do_this(::SALOMEDS::StudyManager::_PD_repoId);
    }
  };

  class SObject :
    public virtual SALOMEDS::_impl_SObject,
    public virtual POA_SALOME::GenericObj
  {
  public:
    virtual ~SObject();

    inline ::SALOMEDS::SObject_ptr _this() {
      return (::SALOMEDS::SObject_ptr) _do_this(::SALOMEDS::SObject::_PD_repoId);
    }
  };

  class GenericAttribute :
    public virtual SALOMEDS::_impl_GenericAttribute,
    public virtual POA_SALOME::GenericObj
  {
  public:
    virtual ~GenericAttribute();

    inline ::SALOMEDS::GenericAttribute_ptr _this() {
      return (::SALOMEDS::GenericAttribute_ptr) _do_this(::SALOMEDS::GenericAttribute::_PD_repoId);
    }
  };

  class SComponent :
    public virtual SALOMEDS::_impl_SComponent,
    public virtual SObject
  {
  public:
    virtual ~SComponent();

    inline ::SALOMEDS::SComponent_ptr _this() {
      return (::SALOMEDS::SComponent_ptr) _do_this(::SALOMEDS::SComponent::_PD_repoId);
    }
  };

  class SComponentIterator :
    public virtual SALOMEDS::_impl_SComponentIterator,
    public virtual POA_SALOME::GenericObj
  {
  public:
    virtual ~SComponentIterator();

    inline ::SALOMEDS::SComponentIterator_ptr _this() {
      return (::SALOMEDS::SComponentIterator_ptr) _do_this(::SALOMEDS::SComponentIterator::_PD_repoId);
    }
  };

  class ChildIterator :
    public virtual SALOMEDS::_impl_ChildIterator,
    public virtual POA_SALOME::GenericObj
  {
  public:
    virtual ~ChildIterator();

    inline ::SALOMEDS::ChildIterator_ptr _this() {
      return (::SALOMEDS::ChildIterator_ptr) _do_this(::SALOMEDS::ChildIterator::_PD_repoId);
    }
  };

  class UseCaseIterator :
    public virtual SALOMEDS::_impl_UseCaseIterator,
    public virtual POA_SALOME::GenericObj
  {
  public:
    virtual ~UseCaseIterator();

    inline ::SALOMEDS::UseCaseIterator_ptr _this() {
      return (::SALOMEDS::UseCaseIterator_ptr) _do_this(::SALOMEDS::UseCaseIterator::_PD_repoId);
    }
  };

  class UseCaseBuilder :
    public virtual SALOMEDS::_impl_UseCaseBuilder,
    public virtual POA_SALOME::GenericObj
  {
  public:
    virtual ~UseCaseBuilder();

    inline ::SALOMEDS::UseCaseBuilder_ptr _this() {
      return (::SALOMEDS::UseCaseBuilder_ptr) _do_this(::SALOMEDS::UseCaseBuilder::_PD_repoId);
    }
  };

  class Driver :
    public virtual SALOMEDS::_impl_Driver,
    public virtual ::PortableServer::ServantBase
  {
  public:
    virtual ~Driver();

    inline ::SALOMEDS::Driver_ptr _this() {
      return (::SALOMEDS::Driver_ptr) _do_this(::SALOMEDS::Driver::_PD_repoId);
    }
  };

_CORBA_MODULE_END



_CORBA_MODULE OBV_SALOMEDS
_CORBA_MODULE_BEG

_CORBA_MODULE_END





#undef _core_attr
#undef _dyn_attr

void operator<<=(::CORBA::Any& _a, const SALOMEDS::ListOfOpenStudies& _s);
void operator<<=(::CORBA::Any& _a, SALOMEDS::ListOfOpenStudies* _sp);
_CORBA_Boolean operator>>=(const ::CORBA::Any& _a, SALOMEDS::ListOfOpenStudies*& _sp);
_CORBA_Boolean operator>>=(const ::CORBA::Any& _a, const SALOMEDS::ListOfOpenStudies*& _sp);

void operator<<=(::CORBA::Any& _a, const SALOMEDS::ListOfFileNames& _s);
void operator<<=(::CORBA::Any& _a, SALOMEDS::ListOfFileNames* _sp);
_CORBA_Boolean operator>>=(const ::CORBA::Any& _a, SALOMEDS::ListOfFileNames*& _sp);
_CORBA_Boolean operator>>=(const ::CORBA::Any& _a, const SALOMEDS::ListOfFileNames*& _sp);

void operator<<=(::CORBA::Any& _a, const SALOMEDS::ListOfDates& _s);
void operator<<=(::CORBA::Any& _a, SALOMEDS::ListOfDates* _sp);
_CORBA_Boolean operator>>=(const ::CORBA::Any& _a, SALOMEDS::ListOfDates*& _sp);
_CORBA_Boolean operator>>=(const ::CORBA::Any& _a, const SALOMEDS::ListOfDates*& _sp);

void operator<<=(::CORBA::Any& _a, const SALOMEDS::ListOfStrings& _s);
void operator<<=(::CORBA::Any& _a, SALOMEDS::ListOfStrings* _sp);
_CORBA_Boolean operator>>=(const ::CORBA::Any& _a, SALOMEDS::ListOfStrings*& _sp);
_CORBA_Boolean operator>>=(const ::CORBA::Any& _a, const SALOMEDS::ListOfStrings*& _sp);

void operator<<=(::CORBA::Any& _a, const SALOMEDS::ListOfListOfStrings& _s);
void operator<<=(::CORBA::Any& _a, SALOMEDS::ListOfListOfStrings* _sp);
_CORBA_Boolean operator>>=(const ::CORBA::Any& _a, SALOMEDS::ListOfListOfStrings*& _sp);
_CORBA_Boolean operator>>=(const ::CORBA::Any& _a, const SALOMEDS::ListOfListOfStrings*& _sp);

void operator<<=(::CORBA::Any& _a, const SALOMEDS::TMPFile& _s);
void operator<<=(::CORBA::Any& _a, SALOMEDS::TMPFile* _sp);
_CORBA_Boolean operator>>=(const ::CORBA::Any& _a, SALOMEDS::TMPFile*& _sp);
_CORBA_Boolean operator>>=(const ::CORBA::Any& _a, const SALOMEDS::TMPFile*& _sp);

void operator<<=(::CORBA::Any& _a, const SALOMEDS::ListOfAttributes& _s);
void operator<<=(::CORBA::Any& _a, SALOMEDS::ListOfAttributes* _sp);
_CORBA_Boolean operator>>=(const ::CORBA::Any& _a, SALOMEDS::ListOfAttributes*& _sp);
_CORBA_Boolean operator>>=(const ::CORBA::Any& _a, const SALOMEDS::ListOfAttributes*& _sp);

void operator<<=(::CORBA::Any& _a, const SALOMEDS::NotImplemented& _s);
void operator<<=(::CORBA::Any& _a, const SALOMEDS::NotImplemented* _sp);
_CORBA_Boolean operator>>=(const ::CORBA::Any& _a, const SALOMEDS::NotImplemented*& _sp);

void operator<<=(::CORBA::Any& _a, const SALOMEDS::Study::StudyInvalidContext& _s);
void operator<<=(::CORBA::Any& _a, const SALOMEDS::Study::StudyInvalidContext* _sp);
_CORBA_Boolean operator>>=(const ::CORBA::Any& _a, const SALOMEDS::Study::StudyInvalidContext*& _sp);

void operator<<=(::CORBA::Any& _a, const SALOMEDS::Study::StudyInvalidComponent& _s);
void operator<<=(::CORBA::Any& _a, const SALOMEDS::Study::StudyInvalidComponent* _sp);
_CORBA_Boolean operator>>=(const ::CORBA::Any& _a, const SALOMEDS::Study::StudyInvalidComponent*& _sp);

void operator<<=(::CORBA::Any& _a, const SALOMEDS::Study::StudyInvalidDirectory& _s);
void operator<<=(::CORBA::Any& _a, const SALOMEDS::Study::StudyInvalidDirectory* _sp);
_CORBA_Boolean operator>>=(const ::CORBA::Any& _a, const SALOMEDS::Study::StudyInvalidDirectory*& _sp);

void operator<<=(::CORBA::Any& _a, const SALOMEDS::Study::StudyNameAlreadyUsed& _s);
void operator<<=(::CORBA::Any& _a, const SALOMEDS::Study::StudyNameAlreadyUsed* _sp);
_CORBA_Boolean operator>>=(const ::CORBA::Any& _a, const SALOMEDS::Study::StudyNameAlreadyUsed*& _sp);

void operator<<=(::CORBA::Any& _a, const SALOMEDS::Study::StudyObjectAlreadyExists& _s);
void operator<<=(::CORBA::Any& _a, const SALOMEDS::Study::StudyObjectAlreadyExists* _sp);
_CORBA_Boolean operator>>=(const ::CORBA::Any& _a, const SALOMEDS::Study::StudyObjectAlreadyExists*& _sp);

void operator<<=(::CORBA::Any& _a, const SALOMEDS::Study::StudyNameError& _s);
void operator<<=(::CORBA::Any& _a, const SALOMEDS::Study::StudyNameError* _sp);
_CORBA_Boolean operator>>=(const ::CORBA::Any& _a, const SALOMEDS::Study::StudyNameError*& _sp);

void operator<<=(::CORBA::Any& _a, const SALOMEDS::Study::StudyCommentError& _s);
void operator<<=(::CORBA::Any& _a, const SALOMEDS::Study::StudyCommentError* _sp);
_CORBA_Boolean operator>>=(const ::CORBA::Any& _a, const SALOMEDS::Study::StudyCommentError*& _sp);

void operator<<=(::CORBA::Any& _a, const SALOMEDS::Study::ListOfSObject& _s);
void operator<<=(::CORBA::Any& _a, SALOMEDS::Study::ListOfSObject* _sp);
_CORBA_Boolean operator>>=(const ::CORBA::Any& _a, SALOMEDS::Study::ListOfSObject*& _sp);
_CORBA_Boolean operator>>=(const ::CORBA::Any& _a, const SALOMEDS::Study::ListOfSObject*& _sp);

void operator<<=(::CORBA::Any& _a, SALOMEDS::Study_ptr _s);
void operator<<=(::CORBA::Any& _a, SALOMEDS::Study_ptr* _s);
_CORBA_Boolean operator>>=(const ::CORBA::Any& _a, SALOMEDS::Study_ptr& _s);

void operator<<=(::CORBA::Any& _a, const SALOMEDS::StudyBuilder::LockProtection& _s);
void operator<<=(::CORBA::Any& _a, const SALOMEDS::StudyBuilder::LockProtection* _sp);
_CORBA_Boolean operator>>=(const ::CORBA::Any& _a, const SALOMEDS::StudyBuilder::LockProtection*& _sp);

void operator<<=(::CORBA::Any& _a, SALOMEDS::StudyBuilder_ptr _s);
void operator<<=(::CORBA::Any& _a, SALOMEDS::StudyBuilder_ptr* _s);
_CORBA_Boolean operator>>=(const ::CORBA::Any& _a, SALOMEDS::StudyBuilder_ptr& _s);

void operator<<=(::CORBA::Any& _a, SALOMEDS::StudyManager_ptr _s);
void operator<<=(::CORBA::Any& _a, SALOMEDS::StudyManager_ptr* _s);
_CORBA_Boolean operator>>=(const ::CORBA::Any& _a, SALOMEDS::StudyManager_ptr& _s);

void operator<<=(::CORBA::Any& _a, SALOMEDS::SObject_ptr _s);
void operator<<=(::CORBA::Any& _a, SALOMEDS::SObject_ptr* _s);
_CORBA_Boolean operator>>=(const ::CORBA::Any& _a, SALOMEDS::SObject_ptr& _s);

void operator<<=(::CORBA::Any& _a, const SALOMEDS::GenericAttribute::LockProtection& _s);
void operator<<=(::CORBA::Any& _a, const SALOMEDS::GenericAttribute::LockProtection* _sp);
_CORBA_Boolean operator>>=(const ::CORBA::Any& _a, const SALOMEDS::GenericAttribute::LockProtection*& _sp);

void operator<<=(::CORBA::Any& _a, SALOMEDS::GenericAttribute_ptr _s);
void operator<<=(::CORBA::Any& _a, SALOMEDS::GenericAttribute_ptr* _s);
_CORBA_Boolean operator>>=(const ::CORBA::Any& _a, SALOMEDS::GenericAttribute_ptr& _s);

void operator<<=(::CORBA::Any& _a, SALOMEDS::SComponent_ptr _s);
void operator<<=(::CORBA::Any& _a, SALOMEDS::SComponent_ptr* _s);
_CORBA_Boolean operator>>=(const ::CORBA::Any& _a, SALOMEDS::SComponent_ptr& _s);

void operator<<=(::CORBA::Any& _a, SALOMEDS::SComponentIterator_ptr _s);
void operator<<=(::CORBA::Any& _a, SALOMEDS::SComponentIterator_ptr* _s);
_CORBA_Boolean operator>>=(const ::CORBA::Any& _a, SALOMEDS::SComponentIterator_ptr& _s);

void operator<<=(::CORBA::Any& _a, SALOMEDS::ChildIterator_ptr _s);
void operator<<=(::CORBA::Any& _a, SALOMEDS::ChildIterator_ptr* _s);
_CORBA_Boolean operator>>=(const ::CORBA::Any& _a, SALOMEDS::ChildIterator_ptr& _s);

void operator<<=(::CORBA::Any& _a, SALOMEDS::UseCaseIterator_ptr _s);
void operator<<=(::CORBA::Any& _a, SALOMEDS::UseCaseIterator_ptr* _s);
_CORBA_Boolean operator>>=(const ::CORBA::Any& _a, SALOMEDS::UseCaseIterator_ptr& _s);

void operator<<=(::CORBA::Any& _a, SALOMEDS::UseCaseBuilder_ptr _s);
void operator<<=(::CORBA::Any& _a, SALOMEDS::UseCaseBuilder_ptr* _s);
_CORBA_Boolean operator>>=(const ::CORBA::Any& _a, SALOMEDS::UseCaseBuilder_ptr& _s);

void operator<<=(::CORBA::Any& _a, SALOMEDS::Driver_ptr _s);
void operator<<=(::CORBA::Any& _a, SALOMEDS::Driver_ptr* _s);
_CORBA_Boolean operator>>=(const ::CORBA::Any& _a, SALOMEDS::Driver_ptr& _s);



inline void
SALOMEDS::Study::_marshalObjRef(::SALOMEDS::Study_ptr obj, cdrStream& s) {
  omniObjRef::_marshal(obj->_PR_getobj(),s);
}


inline void
SALOMEDS::StudyBuilder::_marshalObjRef(::SALOMEDS::StudyBuilder_ptr obj, cdrStream& s) {
  omniObjRef::_marshal(obj->_PR_getobj(),s);
}


inline void
SALOMEDS::StudyManager::_marshalObjRef(::SALOMEDS::StudyManager_ptr obj, cdrStream& s) {
  omniObjRef::_marshal(obj->_PR_getobj(),s);
}


inline void
SALOMEDS::SObject::_marshalObjRef(::SALOMEDS::SObject_ptr obj, cdrStream& s) {
  omniObjRef::_marshal(obj->_PR_getobj(),s);
}


inline void
SALOMEDS::GenericAttribute::_marshalObjRef(::SALOMEDS::GenericAttribute_ptr obj, cdrStream& s) {
  omniObjRef::_marshal(obj->_PR_getobj(),s);
}


inline void
SALOMEDS::SComponent::_marshalObjRef(::SALOMEDS::SComponent_ptr obj, cdrStream& s) {
  omniObjRef::_marshal(obj->_PR_getobj(),s);
}


inline void
SALOMEDS::SComponentIterator::_marshalObjRef(::SALOMEDS::SComponentIterator_ptr obj, cdrStream& s) {
  omniObjRef::_marshal(obj->_PR_getobj(),s);
}


inline void
SALOMEDS::ChildIterator::_marshalObjRef(::SALOMEDS::ChildIterator_ptr obj, cdrStream& s) {
  omniObjRef::_marshal(obj->_PR_getobj(),s);
}


inline void
SALOMEDS::UseCaseIterator::_marshalObjRef(::SALOMEDS::UseCaseIterator_ptr obj, cdrStream& s) {
  omniObjRef::_marshal(obj->_PR_getobj(),s);
}


inline void
SALOMEDS::UseCaseBuilder::_marshalObjRef(::SALOMEDS::UseCaseBuilder_ptr obj, cdrStream& s) {
  omniObjRef::_marshal(obj->_PR_getobj(),s);
}


inline void
SALOMEDS::Driver::_marshalObjRef(::SALOMEDS::Driver_ptr obj, cdrStream& s) {
  omniObjRef::_marshal(obj->_PR_getobj(),s);
}




#ifdef   USE_stub_in_nt_dll_NOT_DEFINED_SALOMEDS
# undef  USE_stub_in_nt_dll
# undef  USE_stub_in_nt_dll_NOT_DEFINED_SALOMEDS
#endif
#ifdef   USE_core_stub_in_nt_dll_NOT_DEFINED_SALOMEDS
# undef  USE_core_stub_in_nt_dll
# undef  USE_core_stub_in_nt_dll_NOT_DEFINED_SALOMEDS
#endif
#ifdef   USE_dyn_stub_in_nt_dll_NOT_DEFINED_SALOMEDS
# undef  USE_dyn_stub_in_nt_dll
# undef  USE_dyn_stub_in_nt_dll_NOT_DEFINED_SALOMEDS
#endif

#endif  // __SALOMEDS_hh__

