00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 
00022 
00023 
00024 
00025 
00026 
00027 
00028 
00029 
00030 
00031 #ifndef _TAO_IDL_ORIG_OBJECT_KEYC_H_
00032 #define _TAO_IDL_ORIG_OBJECT_KEYC_H_
00033 
00034 #include  "ace/pre.h"
00035 
00036 
00037 #include "ace/config-all.h"
00038 
00039 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00040 # pragma once
00041 #endif 
00042 
00043 #include "tao/TAO_Export.h"
00044 #include "tao/ORB.h"
00045 #include "tao/Environment.h"
00046 #include "tao/Sequence_T.h"
00047 #include "tao/Seq_Var_T.h"
00048 #include "tao/Seq_Out_T.h"
00049 
00050 #if defined (TAO_EXPORT_MACRO)
00051 #undef TAO_EXPORT_MACRO
00052 #endif
00053 #define TAO_EXPORT_MACRO TAO_Export
00054 
00055 #if defined(_MSC_VER)
00056 #pragma warning(push)
00057 #pragma warning(disable:4250)
00058 #endif 
00059 
00060 #if defined (__BORLANDC__)
00061 #pragma option push -w-rvl -w-rch -w-ccc -w-inl
00062 #endif 
00063 
00064 
00065 
00066 
00067 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00068 
00069 namespace TAO
00070 {
00071 
00072   
00073   
00074 
00075 #if !defined (_TAO_OBJECTKEY_CH_)
00076 #define _TAO_OBJECTKEY_CH_
00077 
00078   class ObjectKey;
00079 
00080   typedef
00081     TAO_FixedSeq_Var_T<
00082         ObjectKey
00083       >
00084     ObjectKey_var;
00085 
00086   typedef
00087     TAO_Seq_Out_T<
00088         ObjectKey
00089       >
00090     ObjectKey_out;
00091 
00092   class TAO_Export ObjectKey
00093     : public
00094         TAO::unbounded_value_sequence<
00095             CORBA::Octet
00096           >
00097   {
00098   public:
00099     ObjectKey (void);
00100     ObjectKey (CORBA::ULong max);
00101     ObjectKey (
00102         CORBA::ULong max,
00103         CORBA::ULong length,
00104         CORBA::Octet* buffer,
00105         CORBA::Boolean release = false
00106       );
00107     ObjectKey (const ObjectKey &);
00108     ~ObjectKey (void);
00109 
00110     typedef ObjectKey_var _var_type;
00111 
00112 #if (TAO_NO_COPY_OCTET_SEQUENCES == 1)
00113     ObjectKey (
00114         CORBA::ULong length,
00115         const ACE_Message_Block* mb
00116       )
00117       : TAO::unbounded_value_sequence<CORBA::Octet> (length, mb) {}
00118 #endif 
00119 
00120     
00121 
00122     static void encode_sequence_to_string (
00123         char * &str,
00124         const TAO::unbounded_value_sequence<CORBA::Octet> &seq
00125       );
00126     static void decode_string_to_sequence (
00127         TAO::unbounded_value_sequence<CORBA::Octet> &seq,
00128         const char *str
00129       );
00130     static int is_legal (u_char & c);
00131 
00132 
00133 
00134 
00135 
00136     static CORBA::Boolean demarshal_key (ObjectKey &key,
00137                                          TAO_InputCDR &cdr);
00138   };
00139 
00140 #endif 
00141 
00142 
00143 
00144 
00145 } 
00146 
00147 
00148 
00149 
00150 
00151 namespace TAO
00152 {
00153 }
00154 
00155 
00156 
00157 
00158 #if !defined _TAO_CDR_OP_TAO_ObjectKey_H_
00159 #define _TAO_CDR_OP_TAO_ObjectKey_H_
00160 
00161 TAO_Export CORBA::Boolean operator<< (
00162     TAO_OutputCDR &,
00163     const TAO::ObjectKey &
00164   );
00165 TAO_Export CORBA::Boolean operator>> (
00166     TAO_InputCDR &,
00167     TAO::ObjectKey &
00168   );
00169 
00170 #endif 
00171 
00172 
00173 
00174 
00175 TAO_END_VERSIONED_NAMESPACE_DECL
00176 
00177 #if defined(_MSC_VER)
00178 #pragma warning(pop)
00179 #endif 
00180 
00181 #if defined (__BORLANDC__)
00182 #pragma option pop
00183 #endif 
00184 
00185 #include  "ace/post.h"
00186 
00187 #endif 
00188 
00189