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
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00050 #ifndef PANTHEIOS_INCL_PANTHEIOS_INSERTERS_HPP_B64
00051 #define PANTHEIOS_INCL_PANTHEIOS_INSERTERS_HPP_B64
00052
00053
00054
00055
00056
00057 #ifndef PANTHEIOS_DOCUMENTATION_SKIP_SECTION
00058 # define PANTHEIOS_VER_PANTHEIOS_INSERTERS_HPP_B64_MAJOR 1
00059 # define PANTHEIOS_VER_PANTHEIOS_INSERTERS_HPP_B64_MINOR 3
00060 # define PANTHEIOS_VER_PANTHEIOS_INSERTERS_HPP_B64_REVISION 1
00061 # define PANTHEIOS_VER_PANTHEIOS_INSERTERS_HPP_B64_EDIT 15
00062 #endif
00063
00064
00065
00066
00067
00068 #ifndef PANTHEIOS_INCL_PANTHEIOS_H_PANTHEIOS
00069 # include <pantheios/pantheios.h>
00070 #endif
00071 #ifndef PANTHEIOS_INCL_PANTHEIOS_INSERTERS_HPP_FMT
00072 # include <pantheios/inserters/fmt.hpp>
00073 #endif
00074
00075
00076
00077 #ifdef PANTHEIOS_NO_NAMESPACE
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090 # ifdef B64_INCL_B64_H_B64
00091 # error Cannot include b64/b64.h before pantheios/inserters/b64.hpp
00092 # endif
00093
00094 # define B64_CUSTOM_NAMESPACE b64_api
00095
00096 #endif
00097
00098 #include <b64/b64.h>
00099
00100
00101
00102
00103
00104 #ifdef PANTHEIOS_NO_NAMESPACE
00105
00106 # if !defined(B64_VER) || \
00107 B64_VER < 0x010301ff
00108 # error Version 1.3.1 (or later) of b64 is required
00109 # endif
00110
00111 #else
00112
00113
00114
00115
00116
00117
00118 namespace b64_api = ::b64;
00119
00120 #endif
00121
00122
00123
00124 #ifndef STLSOFT_INCL_STLSOFT_SHIMS_ACCESS_STRING_H_FWD
00125 # include <stlsoft/shims/access/string/fwd.h>
00126 #endif
00127
00128
00129 #ifndef PANTHEIOS_INCL_H_STDIO
00130 # define PANTHEIOS_INCL_H_STDIO
00131 # include <stdio.h>
00132 #endif
00133
00134
00135
00136
00137
00138 #if !defined(PANTHEIOS_NO_NAMESPACE)
00139 namespace pantheios
00140 {
00141
00142 #endif
00143
00144
00145
00146
00147
00204 class b64
00205 {
00208 public:
00209 typedef b64 class_type;
00210 typedef b64_api::B64_RC B64_RC;
00212
00215 public:
00216 b64( void const* pv
00217 , size_t cb);
00218
00219 b64( void const* pv
00220 , size_t cb
00221 , unsigned flags);
00222
00223 b64( void const* pv
00224 , size_t cb
00225 , unsigned flags
00226 , int lineLen
00227 , B64_RC* rc = NULL);
00228
00229 ~b64() stlsoft_throw_0();
00231
00234 public:
00236 char const* data() const;
00238 char const* c_str() const;
00240 size_t length() const;
00242
00245 private:
00246 void construct_() const;
00247 void construct_();
00249
00252 private:
00253 char const* m_value;
00254 size_t m_len;
00255 void const* m_pv;
00256 size_t m_cb;
00257 unsigned m_flags;
00258 int m_lineLen;
00259 B64_RC* m_rc;
00261
00264 private:
00265 #if !defined(STLSOFT_COMPILER_IS_GCC)
00266 b64(class_type const&);
00267 #endif
00268 class_type &operator =(class_type const&);
00270 };
00271
00272
00273
00274
00275
00276 #ifndef PANTHEIOS_DOCUMENTATION_SKIP_SECTION
00277
00278 # if !defined(PANTHEIOS_NO_NAMESPACE)
00279 namespace shims
00280 {
00281 # endif
00282
00284 inline char const* c_str_data_a(b64 const& i)
00285 {
00286 return i.data();
00287 }
00289 inline char const* c_str_data(b64 const& i)
00290 {
00291 return i.data();
00292 }
00293
00295 inline size_t c_str_len_a(b64 const& i)
00296 {
00297 return i.length();
00298 }
00300 inline size_t c_str_len(b64 const& i)
00301 {
00302 return i.length();
00303 }
00304
00306 inline char const* c_str_ptr_a(b64 const& i)
00307 {
00308 return i.c_str();
00309 }
00311 inline char const* c_str_ptr(b64 const& i)
00312 {
00313 return i.c_str();
00314 }
00315
00316 # if !defined(PANTHEIOS_NO_NAMESPACE)
00317 }
00318
00319 # if defined(STLSOFT_COMPILER_IS_GCC)
00320
00321
00322
00323
00324
00325 using ::pantheios::shims::c_str_data_a;
00326 using ::pantheios::shims::c_str_data;
00327
00328 using ::pantheios::shims::c_str_len_a;
00329 using ::pantheios::shims::c_str_len;
00330
00331 using ::pantheios::shims::c_str_ptr_a;
00332 using ::pantheios::shims::c_str_ptr;
00333 # endif
00334
00335 # endif
00336
00337 #endif
00338
00339
00340
00341
00342
00343 #if !defined(PANTHEIOS_NO_NAMESPACE)
00344 }
00345
00346 namespace stlsoft
00347 {
00348
00349
00350
00351
00352
00353
00354
00355 using ::pantheios::shims::c_str_data_a;
00356 using ::pantheios::shims::c_str_data;
00357
00358 using ::pantheios::shims::c_str_len_a;
00359 using ::pantheios::shims::c_str_len;
00360
00361 using ::pantheios::shims::c_str_ptr_a;
00362 using ::pantheios::shims::c_str_ptr;
00363 }
00364
00365 #endif
00366
00367
00368
00369
00370
00371 #ifdef STLSOFT_CF_PRAGMA_ONCE_SUPPORT
00372 # pragma once
00373 #endif
00374
00375
00376
00377 #endif
00378
00379