DynSequence_i.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 //
00003 // DynSequence_i.h,v 1.16 2006/03/10 07:19:08 jtc Exp
00004 
00005 //=============================================================================
00006 /**
00007  *  @file    DynSequence_i.h
00008  *
00009  *  DynSequence_i.h,v 1.16 2006/03/10 07:19:08 jtc Exp
00010  *
00011  *  @author Jeff Parsons <parsons@cs.wustl.edu>
00012  */
00013 //=============================================================================
00014 
00015 
00016 #ifndef TAO_DYNSEQUENCE_I_H
00017 #define TAO_DYNSEQUENCE_I_H
00018 #include /**/ "ace/pre.h"
00019 
00020 #include "tao/DynamicAny/DynamicAny.h"
00021 
00022 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00023 # pragma once
00024 #endif /* ACE_LACKS_PRAGMA_ONCE */
00025 
00026 #include "tao/DynamicAny/DynCommon.h"
00027 #include "tao/LocalObject.h"
00028 #include "ace/Containers.h"
00029 
00030 #if defined (_MSC_VER)
00031 # pragma warning(push)
00032 # pragma warning (disable:4250)
00033 #endif /* _MSC_VER */
00034 
00035 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00036 
00037 /**
00038  * @class TAO_DynSequence_i
00039  *
00040  * Implementation of Dynamic Any type for Sequences.
00041  */
00042 class TAO_DynamicAny_Export TAO_DynSequence_i
00043   : public virtual DynamicAny::DynSequence,
00044     public virtual TAO_DynCommon,
00045     public virtual TAO_Local_RefCounted_Object
00046 {
00047 public:
00048   /// Constructor.
00049   TAO_DynSequence_i (void);
00050 
00051   /// Destructor.
00052   ~TAO_DynSequence_i (void);
00053 
00054   /// Initialize using just a TypeCode.
00055   void init (CORBA::TypeCode_ptr tc
00056              ACE_ENV_ARG_DECL);
00057 
00058   /// Initialize using an Any.
00059   void init (const CORBA::Any& any
00060              ACE_ENV_ARG_DECL);
00061 
00062   // = LocalObject methods.
00063   static TAO_DynSequence_i *_narrow (
00064       CORBA::Object_ptr obj
00065       ACE_ENV_ARG_DECL_WITH_DEFAULTS);
00066 
00067   // = Functions specific to DynSequence.
00068 
00069   virtual CORBA::ULong get_length (
00070       ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
00071 
00072     ACE_THROW_SPEC ((
00073         CORBA::SystemException
00074       ));
00075 
00076   virtual void set_length (
00077       CORBA::ULong len
00078       ACE_ENV_ARG_DECL_WITH_DEFAULTS)
00079 
00080     ACE_THROW_SPEC ((
00081         CORBA::SystemException,
00082         DynamicAny::DynAny::InvalidValue
00083       ));
00084 
00085   virtual DynamicAny::AnySeq * get_elements (
00086       ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
00087 
00088     ACE_THROW_SPEC ((
00089         CORBA::SystemException
00090       ));
00091 
00092   virtual void set_elements (
00093       const DynamicAny::AnySeq & value
00094       ACE_ENV_ARG_DECL_WITH_DEFAULTS)
00095 
00096     ACE_THROW_SPEC ((
00097         CORBA::SystemException,
00098         DynamicAny::DynAny::TypeMismatch,
00099         DynamicAny::DynAny::InvalidValue
00100       ));
00101 
00102   virtual DynamicAny::DynAnySeq * get_elements_as_dyn_any (
00103       ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
00104 
00105     ACE_THROW_SPEC ((
00106         CORBA::SystemException
00107       ));
00108 
00109   virtual void set_elements_as_dyn_any (
00110       const DynamicAny::DynAnySeq & value
00111       ACE_ENV_ARG_DECL_WITH_DEFAULTS)
00112 
00113     ACE_THROW_SPEC ((
00114         CORBA::SystemException,
00115         DynamicAny::DynAny::TypeMismatch,
00116         DynamicAny::DynAny::InvalidValue
00117       ));
00118 
00119 
00120   // = DynAny common functions not implemented in class TAO_DynCommon.
00121 
00122   virtual void from_any (
00123       const CORBA::Any & value
00124       ACE_ENV_ARG_DECL_WITH_DEFAULTS)
00125 
00126     ACE_THROW_SPEC ((
00127         CORBA::SystemException,
00128         DynamicAny::DynAny::TypeMismatch,
00129         DynamicAny::DynAny::InvalidValue
00130       ));
00131 
00132   virtual CORBA::Any * to_any (
00133       ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
00134 
00135     ACE_THROW_SPEC ((
00136         CORBA::SystemException
00137       ));
00138 
00139   virtual CORBA::Boolean equal (
00140       DynamicAny::DynAny_ptr dyn_any
00141       ACE_ENV_ARG_DECL_WITH_DEFAULTS)
00142 
00143     ACE_THROW_SPEC ((
00144         CORBA::SystemException
00145       ));
00146 
00147   virtual void destroy (
00148       ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
00149 
00150     ACE_THROW_SPEC ((
00151         CORBA::SystemException
00152       ));
00153 
00154   virtual DynamicAny::DynAny_ptr current_component (
00155       ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS)
00156 
00157     ACE_THROW_SPEC ((
00158         CORBA::SystemException,
00159         DynamicAny::DynAny::TypeMismatch
00160       ));
00161 
00162 private:
00163   // Utility, turns the type of elements contained in the sequence.
00164   CORBA::TypeCode_ptr get_element_type (ACE_ENV_SINGLE_ARG_DECL_WITH_DEFAULTS);
00165 
00166   // Called by both versions of init().
00167   void init_common (void);
00168 
00169   // = Use copy() or assign() instead of these
00170   TAO_DynSequence_i (const TAO_DynSequence_i &src);
00171   TAO_DynSequence_i &operator= (const TAO_DynSequence_i &src);
00172 
00173 private:
00174   /// Each component is also a DynAny.
00175   ACE_Array_Base<DynamicAny::DynAny_var> da_members_;
00176 };
00177 
00178 TAO_END_VERSIONED_NAMESPACE_DECL
00179 
00180 #if defined(_MSC_VER)
00181 # pragma warning(pop)
00182 #endif /* _MSC_VER */
00183 
00184 #include /**/ "ace/post.h"
00185 #endif /* TAO_DYNSEQUENCE_I_H */

Generated on Thu Nov 9 13:02:09 2006 for TAO_DynamicAny by doxygen 1.3.6