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 #ifndef ACE_CDR_SIZE_H
00026 #define ACE_CDR_SIZE_H
00027
00028 #include "ace/pre.h"
00029
00030 #include "ace/CDR_Base.h"
00031 #include "ace/CDR_Stream.h"
00032
00033 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00034 # pragma once
00035 #endif
00036
00037 #include "ace/SStringfwd.h"
00038
00039 ACE_BEGIN_VERSIONED_NAMESPACE_DECL
00040
00041
00042
00043
00044
00045
00046
00047 class ACE_Export ACE_SizeCDR
00048 {
00049 public:
00050
00051 ACE_SizeCDR (ACE_CDR::Octet major_version = ACE_CDR_GIOP_MAJOR_VERSION,
00052 ACE_CDR::Octet minor_version = ACE_CDR_GIOP_MINOR_VERSION);
00053
00054
00055 bool good_bit (void) const;
00056
00057
00058
00059 void reset (void);
00060
00061
00062
00063 size_t total_length (void) const;
00064
00065
00066
00067
00068 ACE_CDR::Boolean write_boolean (ACE_CDR::Boolean x);
00069 ACE_CDR::Boolean write_char (ACE_CDR::Char x);
00070 ACE_CDR::Boolean write_wchar (ACE_CDR::WChar x);
00071 ACE_CDR::Boolean write_octet (ACE_CDR::Octet x);
00072 ACE_CDR::Boolean write_short (ACE_CDR::Short x);
00073 ACE_CDR::Boolean write_ushort (ACE_CDR::UShort x);
00074 ACE_CDR::Boolean write_long (ACE_CDR::Long x);
00075 ACE_CDR::Boolean write_ulong (ACE_CDR::ULong x);
00076 ACE_CDR::Boolean write_longlong (const ACE_CDR::LongLong &x);
00077 ACE_CDR::Boolean write_ulonglong (const ACE_CDR::ULongLong &x);
00078 ACE_CDR::Boolean write_float (ACE_CDR::Float x);
00079 ACE_CDR::Boolean write_double (const ACE_CDR::Double &x);
00080 ACE_CDR::Boolean write_longdouble (const ACE_CDR::LongDouble &x);
00081
00082
00083 ACE_CDR::Boolean write_string (const ACE_CDR::Char *x);
00084 ACE_CDR::Boolean write_string (ACE_CDR::ULong len,
00085 const ACE_CDR::Char *x);
00086 ACE_CDR::Boolean write_string (const ACE_CString &x);
00087 ACE_CDR::Boolean write_wstring (const ACE_CDR::WChar *x);
00088 ACE_CDR::Boolean write_wstring (ACE_CDR::ULong length,
00089 const ACE_CDR::WChar *x);
00090
00091
00092
00093
00094
00095
00096 ACE_CDR::Boolean write_boolean_array (const ACE_CDR::Boolean *x,
00097 ACE_CDR::ULong length);
00098 ACE_CDR::Boolean write_char_array (const ACE_CDR::Char *x,
00099 ACE_CDR::ULong length);
00100 ACE_CDR::Boolean write_wchar_array (const ACE_CDR::WChar* x,
00101 ACE_CDR::ULong length);
00102 ACE_CDR::Boolean write_octet_array (const ACE_CDR::Octet* x,
00103 ACE_CDR::ULong length);
00104 ACE_CDR::Boolean write_short_array (const ACE_CDR::Short *x,
00105 ACE_CDR::ULong length);
00106 ACE_CDR::Boolean write_ushort_array (const ACE_CDR::UShort *x,
00107 ACE_CDR::ULong length);
00108 ACE_CDR::Boolean write_long_array (const ACE_CDR::Long *x,
00109 ACE_CDR::ULong length);
00110 ACE_CDR::Boolean write_ulong_array (const ACE_CDR::ULong *x,
00111 ACE_CDR::ULong length);
00112 ACE_CDR::Boolean write_longlong_array (const ACE_CDR::LongLong* x,
00113 ACE_CDR::ULong length);
00114 ACE_CDR::Boolean write_ulonglong_array (const ACE_CDR::ULongLong *x,
00115 ACE_CDR::ULong length);
00116 ACE_CDR::Boolean write_float_array (const ACE_CDR::Float *x,
00117 ACE_CDR::ULong length);
00118 ACE_CDR::Boolean write_double_array (const ACE_CDR::Double *x,
00119 ACE_CDR::ULong length);
00120 ACE_CDR::Boolean write_longdouble_array (const ACE_CDR::LongDouble* x,
00121 ACE_CDR::ULong length);
00122
00123
00124
00125 void adjust (size_t size);
00126
00127
00128
00129 void adjust (size_t size,
00130 size_t align);
00131
00132 private:
00133
00134 ACE_SizeCDR (const ACE_SizeCDR& rhs);
00135 ACE_SizeCDR& operator= (const ACE_SizeCDR& rhs);
00136
00137 ACE_CDR::Boolean write_1 (const ACE_CDR::Octet *x);
00138 ACE_CDR::Boolean write_2 (const ACE_CDR::UShort *x);
00139 ACE_CDR::Boolean write_4 (const ACE_CDR::ULong *x);
00140 ACE_CDR::Boolean write_8 (const ACE_CDR::ULongLong *x);
00141 ACE_CDR::Boolean write_16 (const ACE_CDR::LongDouble *x);
00142
00143
00144
00145
00146
00147
00148
00149
00150
00151
00152
00153
00154
00155 ACE_CDR::Boolean write_array (const void *x,
00156 size_t size,
00157 size_t align,
00158 ACE_CDR::ULong length);
00159
00160
00161 ACE_CDR::Boolean write_wchar_array_i (const ACE_CDR::WChar* x,
00162 ACE_CDR::ULong length);
00163
00164 private:
00165
00166 bool good_bit_;
00167
00168
00169 size_t size_;
00170
00171 protected:
00172
00173 ACE_CDR::Octet major_version_;
00174 ACE_CDR::Octet minor_version_;
00175 };
00176
00177
00178
00179 extern ACE_Export ACE_CDR::Boolean operator<< (ACE_SizeCDR &ss,
00180 const ACE_CString &x);
00181
00182 ACE_END_VERSIONED_NAMESPACE_DECL
00183
00184 #if defined (__ACE_INLINE__)
00185 # include "ace/CDR_Size.inl"
00186 #else
00187
00188 ACE_BEGIN_VERSIONED_NAMESPACE_DECL
00189
00190
00191 extern ACE_Export ACE_CDR::Boolean operator<< (ACE_SizeCDR &ss,
00192 ACE_CDR::Char x);
00193
00194
00195
00196 extern ACE_Export ACE_CDR::Boolean operator<< (ACE_SizeCDR &ss,
00197 ACE_CDR::Short x);
00198 extern ACE_Export ACE_CDR::Boolean operator<< (ACE_SizeCDR &ss,
00199 ACE_CDR::UShort x);
00200 extern ACE_Export ACE_CDR::Boolean operator<< (ACE_SizeCDR &ss,
00201 ACE_CDR::Long x);
00202 extern ACE_Export ACE_CDR::Boolean operator<< (ACE_SizeCDR &ss,
00203 ACE_CDR::ULong x);
00204 extern ACE_Export ACE_CDR::Boolean operator<< (ACE_SizeCDR &ss,
00205 ACE_CDR::LongLong x);
00206 extern ACE_Export ACE_CDR::Boolean operator<< (ACE_SizeCDR &ss,
00207 ACE_CDR::ULongLong x);
00208 extern ACE_Export ACE_CDR::Boolean operator<< (ACE_SizeCDR& ss,
00209 ACE_CDR::LongDouble x);
00210 extern ACE_Export ACE_CDR::Boolean operator<< (ACE_SizeCDR &ss,
00211 ACE_CDR::Float x);
00212 extern ACE_Export ACE_CDR::Boolean operator<< (ACE_SizeCDR &ss,
00213 ACE_CDR::Double x);
00214
00215
00216
00217 extern ACE_Export ACE_CDR::Boolean operator<< (ACE_SizeCDR &ss,
00218 ACE_OutputCDR::from_boolean x);
00219 extern ACE_Export ACE_CDR::Boolean operator<< (ACE_SizeCDR &ss,
00220 ACE_OutputCDR::from_char x);
00221 extern ACE_Export ACE_CDR::Boolean operator<< (ACE_SizeCDR &ss,
00222 ACE_OutputCDR::from_wchar x);
00223 extern ACE_Export ACE_CDR::Boolean operator<< (ACE_SizeCDR &ss,
00224 ACE_OutputCDR::from_octet x);
00225 extern ACE_Export ACE_CDR::Boolean operator<< (ACE_SizeCDR &ss,
00226 ACE_OutputCDR::from_string x);
00227 extern ACE_Export ACE_CDR::Boolean operator<< (ACE_SizeCDR &ss,
00228 ACE_OutputCDR::from_wstring x);
00229 extern ACE_Export ACE_CDR::Boolean operator<< (ACE_SizeCDR &ss,
00230 const ACE_CDR::Char* x);
00231 extern ACE_Export ACE_CDR::Boolean operator<< (ACE_SizeCDR &ss,
00232 const ACE_CDR::WChar* x);
00233
00234 ACE_END_VERSIONED_NAMESPACE_DECL
00235
00236 #endif
00237
00238
00239 #include "ace/post.h"
00240
00241 #endif