This is Unofficial EPICS BASE Doxygen Site
epics::pvData::detail Namespace Reference

Classes

struct  _shared_vector_cast_tag
 
struct  _shared_vector_freeze_tag
 
struct  _shared_vector_thaw_tag
 
struct  any_storage_type
 
struct  any_storage_type< char * >
 
struct  any_storage_type< const char * >
 
struct  any_storage_type< int >
 
struct  any_storage_type< unsigned >
 
struct  asInt
 
struct  asInt< double >
 
struct  asInt< float >
 
struct  call_with
 
struct  call_with< std::string >
 
struct  call_with< std::tr1::shared_ptr< T > >
 
struct  cast_arg
 
struct  cast_arg< std::string >
 
struct  cast_helper
 
struct  cast_helper< float, double >
 
struct  cast_helper< std::string, FROM, typename meta::not_same_type< std::string, FROM >::type >
 
struct  cast_helper< TO, const char *, typename meta::_and< typename meta::not_same_type< TO, const char * >, typename meta::not_same_type< TO, std::string > >::type >
 
struct  cast_helper< TO, std::string, typename meta::not_same_type< TO, std::string >::type >
 
struct  const_caster
 
struct  const_caster< const TYPE, TYPE >
 
struct  const_caster< TYPE, const TYPE >
 
struct  const_caster< TYPE, TYPE >
 
struct  default_array_deleter
 
class  ExceptionMixed
 
struct  field_factory
 
struct  FuncRunner
 
struct  MethRunner
 
struct  pick_type
 
struct  pick_type< Cond, Cond, Else >
 
struct  print_convolute
 
struct  print_convolute< boolean >
 
struct  print_convolute< int8 >
 
struct  print_convolute< uint8 >
 
struct  pvfield_factory
 
class  PVVectorStorage
 Common code for PV*Array. More...
 
struct  ScalarStorageOps
 
struct  ScalarStorageOps< std::string >
 
struct  shared_ptr_vector_deletor
 
class  shared_vector_base
 
struct  shared_vector_converter
 
struct  shared_vector_converter< TO, FROM, typename meta::_and< meta::is_not_void< TO >, meta::is_void< FROM > >::type >
 
struct  shared_vector_converter< TO, FROM, typename meta::_and< meta::is_void< TO >, meta::is_not_void< FROM > >::type >
 
struct  shared_vector_converter< TO, FROM, typename meta::same_root< TO, FROM >::type >
 
struct  static_shared_vector_caster
 
struct  static_shared_vector_caster< TO, FROM, typename meta::_and< meta::_and< meta::is_not_void< TO >, meta::is_void< FROM > >, meta::same_const< TO, FROM > >::type >
 
struct  static_shared_vector_caster< TO, FROM, typename meta::_and< meta::_and< meta::is_void< TO >, meta::is_not_void< FROM > >, meta::same_const< TO, FROM > >::type >
 
struct  static_shared_vector_caster< TOFRO, TOFRO, void >
 
struct  swap
 
struct  swap< 1 >
 
struct  swap< 2 >
 
struct  swap< 4 >
 
struct  swap< 8 >
 

Functions

void parseToPOD (const char *in, boolean *out)
 
 INTFN (int8, Int8)
 
 INTFN (uint8, UInt8)
 
 INTFN (int16_t, Int16)
 
 INTFN (uint16_t, UInt16)
 
 INTFN (int32_t, Int32)
 
 INTFN (uint32_t, UInt32)
 
void parseToPOD (const char *in, int64_t *out)
 
void parseToPOD (const char *in, uint64_t *out)
 
void parseToPOD (const char *in, float *out)
 
void parseToPOD (const char *in, double *out)
 
template<typename T >
EPICS_ALWAYS_INLINE void store_unaligned (char *buf, T val)
 
template<typename T >
EPICS_ALWAYS_INLINEload_unaligned (const char *buf)
 
epicsShareExtern void parseToPOD (const char *, int8 *out)
 
epicsShareExtern void parseToPOD (const char *, uint8 *out)
 
epicsShareExtern void parseToPOD (const char *, int16_t *out)
 
epicsShareExtern void parseToPOD (const char *, uint16_t *out)
 
epicsShareExtern void parseToPOD (const char *, int32_t *out)
 
epicsShareExtern void parseToPOD (const char *, uint32_t *out)
 

Function Documentation

epics::pvData::detail::INTFN ( int8  ,
Int8   
)
epics::pvData::detail::INTFN ( uint8  ,
UInt8   
)
epics::pvData::detail::INTFN ( int16_t  ,
Int16   
)
epics::pvData::detail::INTFN ( uint16_t  ,
UInt16   
)
epics::pvData::detail::INTFN ( int32_t  ,
Int32   
)
epics::pvData::detail::INTFN ( uint32_t  ,
UInt32   
)
template<typename T >
EPICS_ALWAYS_INLINE T epics::pvData::detail::load_unaligned ( const char *  buf)

Definition at line 197 of file byteBuffer.h.

198 {
199  return *reinterpret_cast<const T*>(buf);
200 }
epicsShareExtern void epics::pvData::detail::parseToPOD ( const char *  ,
int8 out 
)
epicsShareExtern void epics::pvData::detail::parseToPOD ( const char *  ,
uint8 out 
)
epicsShareExtern void epics::pvData::detail::parseToPOD ( const char *  ,
int16_t *  out 
)
epicsShareExtern void epics::pvData::detail::parseToPOD ( const char *  ,
uint16_t *  out 
)
epicsShareExtern void epics::pvData::detail::parseToPOD ( const char *  ,
int32_t *  out 
)
epicsShareExtern void epics::pvData::detail::parseToPOD ( const char *  ,
uint32_t *  out 
)
epicsShareExtern void epics::pvData::detail::parseToPOD ( const char *  in,
boolean out 
)

Definition at line 110 of file parseToPOD.cpp.

111 {
112  if(epicsStrCaseCmp(in,"true")==0)
113  *out = 1;
114  else if(epicsStrCaseCmp(in,"false")==0)
115  *out = 0;
116  else
117  throw std::runtime_error("parseToPOD: string no match true/false");
118 }
int epicsStrCaseCmp(const char *s1, const char *s2)
Definition: epicsString.c:191
epicsShareExtern void epics::pvData::detail::parseToPOD ( const char *  in,
int64_t *  out 
)

Definition at line 135 of file parseToPOD.cpp.

135  {
136 #ifdef NEED_LONGLONG
137  int err = epicsParseLongLong(in, out, 0, NULL);
138 #else
139  int err = epicsParseLong(in, out, 0, NULL);
140 #endif
141  if(err) handleParseError(err);
142 }
#define NULL
Definition: catime.c:38
LIBCOM_API int epicsParseLong(const char *str, long *to, int base, char **units)
Definition: epicsStdlib.c:25
epicsShareExtern void epics::pvData::detail::parseToPOD ( const char *  in,
uint64_t *  out 
)

Definition at line 144 of file parseToPOD.cpp.

144  {
145 #ifdef NEED_LONGLONG
146  int err = epicsParseULongLong(in, out, 0, NULL);
147 #else
148  int err = epicsParseULong(in, out, 0, NULL);
149 #endif
150  if(err) handleParseError(err);
151 }
#define NULL
Definition: catime.c:38
LIBCOM_API int epicsParseULong(const char *str, unsigned long *to, int base, char **units)
Definition: epicsStdlib.c:56
epicsShareExtern void epics::pvData::detail::parseToPOD ( const char *  in,
float *  out 
)

Definition at line 153 of file parseToPOD.cpp.

153  {
154  int err = epicsParseFloat(in, out, NULL);
155  if(err) handleParseError(err);
156 }
#define NULL
Definition: catime.c:38
LIBCOM_API int epicsParseFloat(const char *str, float *to, char **units)
Definition: epicsStdlib.c:318
epicsShareExtern void epics::pvData::detail::parseToPOD ( const char *  in,
double *  out 
)

Definition at line 158 of file parseToPOD.cpp.

158  {
159  int err = epicsParseDouble(in, out, NULL);
160  if(err) handleParseError(err);
161 #if defined(vxWorks)
162  /* vxWorks strtod returns [-]epicsINF when it should return ERANGE error.
163  * If [-]epicsINF is returned and the first char is a digit we translate
164  * this into an ERANGE error
165  */
166  else if (*out == epicsINF || *out == -epicsINF) {
167  const char* s = in;
168  int c;
169 
170  /* skip spaces and the sign */
171  do {
172  c = *s++;
173  } while (isspace(c));
174 
175  if (c == '-' || c == '+')
176  c = *s++;
177 
178  if (isdigit(c))
179  handleParseError(S_stdlib_overflow);
180  }
181 #endif
182 }
#define NULL
Definition: catime.c:38
LIBCOM_API int epicsParseDouble(const char *str, double *to, char **units)
Definition: epicsStdlib.c:149
#define S_stdlib_overflow
Definition: epicsStdlib.h:30
float epicsINF
Definition: epicsMath.cpp:36
template<typename T >
EPICS_ALWAYS_INLINE void epics::pvData::detail::store_unaligned ( char *  buf,
val 
)

Definition at line 191 of file byteBuffer.h.

192 {
193  *reinterpret_cast<T*>(buf) = val;
194 }