@@ -375,90 +375,62 @@ struct ScalarStorageOps<std::string> {
375
375
* @ingroup pvcontainer
376
376
*/
377
377
template <typename T>
378
- class epicsShareClass PVScalarValue : public PVScalar {
378
+ class PVScalarValue : public PVScalar {
379
379
typedef detail::ScalarStorageOps<T> storage_t ;
380
380
public:
381
381
POINTER_DEFINITIONS (PVScalarValue);
382
382
typedef T value_type;
383
383
typedef T* pointer;
384
384
typedef const T* const_pointer;
385
385
386
- static const ScalarType typeCode;
386
+ epicsShareClass static const ScalarType typeCode;
387
387
388
388
/* *
389
389
* Destructor
390
390
*/
391
- virtual ~PVScalarValue ();
391
+ epicsShareClass virtual ~PVScalarValue ();
392
392
/* *
393
393
* Get the value.
394
394
* @return The value.
395
395
*/
396
- typename storage_t ::arg_type get () const { return storage. value ; }
396
+ epicsShareClass typename storage_t ::arg_type get () const ;
397
397
/* *
398
398
* Put a new value into the PVScalar.
399
399
* @param value The value.
400
400
*/
401
- inline void put (typename storage_t ::arg_type v) {
402
- storage.store (v);
403
- PVField::postPut ();
404
- }
401
+ epicsShareClass void put (typename storage_t ::arg_type v);
405
402
406
- virtual std::ostream& dumpValue (std::ostream& o) const OVERRIDE;
403
+ epicsShareClass virtual std::ostream& dumpValue (std::ostream& o) const OVERRIDE;
407
404
408
405
// get operator
409
406
// double value; doubleField >>= value;
410
407
// NOTE: virtual is needed for MS C++ compiler to get this operator exported
411
- virtual void operator >>=(T& value) const ;
408
+ epicsShareClass virtual void operator >>=(T& value) const ;
412
409
413
410
// put operator
414
411
// double value = 12.8; doubleField <<= value;
415
412
// NOTE: virtual is needed for MS C++ compiler to get this operator exported
416
- virtual void operator <<=(typename storage_t ::arg_type value);
417
-
418
- template <typename T1>
419
- inline T1 getAs () const {
420
- T1 result (castUnsafe<T1,T>(get ()));
421
- return result;
422
- }
423
-
424
- template <typename T1>
425
- inline void putFrom (typename detail::ScalarStorageOps<T1>::arg_type val) {
426
- put (castUnsafe<T,T1>(val));
427
- }
413
+ epicsShareClass virtual void operator <<=(typename storage_t ::arg_type value);
428
414
429
- inline void putFrom (const AnyScalar& v) {
430
- // the template form of putFrom() hides the base class AnyScalar overload
431
- PVScalar::putFrom (v);
432
- }
415
+ template <typename T1> epicsShareClass T1 getAs () const ;
416
+ template <typename T1> epicsShareClass void putFrom (typename detail::ScalarStorageOps<T1>::arg_type val);
417
+ epicsShareClass void putFrom (const AnyScalar& v);
433
418
434
- virtual void assign (const PVScalar& scalar) OVERRIDE FINAL;
435
- virtual void copy (const PVScalar& from) OVERRIDE FINAL;
436
- virtual void copyUnchecked (const PVScalar& from) OVERRIDE FINAL;
419
+ epicsShareClass virtual void assign (const PVScalar& scalar) OVERRIDE FINAL;
420
+ epicsShareClass virtual void copy (const PVScalar& from) OVERRIDE FINAL;
421
+ epicsShareClass virtual void copyUnchecked (const PVScalar& from) OVERRIDE FINAL;
437
422
438
- virtual void serialize (ByteBuffer *pbuffer,
423
+ epicsShareClass virtual void serialize (ByteBuffer *pbuffer,
439
424
SerializableControl *pflusher) const OVERRIDE;
440
- virtual void deserialize (ByteBuffer *pbuffer,
425
+ epicsShareClass virtual void deserialize (ByteBuffer *pbuffer,
441
426
DeserializableControl *pflusher) OVERRIDE FINAL;
442
427
443
428
protected:
444
- explicit PVScalarValue (ScalarConstPtr const & scalar)
445
- : PVScalar(scalar), storage() {}
446
- virtual void getAs (void * result, ScalarType rtype) const OVERRIDE FINAL
447
- {
448
- const T src = get ();
449
- castUnsafeV (1 , rtype, result, typeCode, (const void *)&src);
450
- }
429
+ epicsShareClass explicit PVScalarValue (ScalarConstPtr const & scalar);
430
+ epicsShareClass virtual void getAs (void * result, ScalarType rtype) const OVERRIDE FINAL;
451
431
public:
452
- virtual void getAs (AnyScalar& v) const OVERRIDE FINAL
453
- {
454
- v = get ();
455
- }
456
- virtual void putFrom (const void *src, ScalarType stype) OVERRIDE FINAL
457
- {
458
- T result;
459
- castUnsafeV (1 , typeCode, (void *)&result, stype, src);
460
- put (result);
461
- }
432
+ epicsShareClass virtual void getAs (AnyScalar& v) const OVERRIDE FINAL;
433
+ epicsShareClass virtual void putFrom (const void *src, ScalarType stype) OVERRIDE FINAL;
462
434
protected:
463
435
464
436
friend class PVDataCreate ;
@@ -518,21 +490,21 @@ typedef std::tr1::shared_ptr<PVDouble> PVDoublePtr;
518
490
*
519
491
* @ingroup pvcontainer
520
492
*/
521
- class epicsShareClass PVString : public PVScalarValue<std::string>, SerializableArray {
493
+ class PVString : public PVScalarValue <std::string>, SerializableArray {
522
494
public:
523
495
/* *
524
496
* Destructor
525
497
*/
526
- virtual ~PVString () {}
498
+ epicsShareClass virtual ~PVString ();
527
499
528
- virtual std::ostream& dumpValue (std::ostream& o) const OVERRIDE FINAL;
500
+ epicsShareClass virtual std::ostream& dumpValue (std::ostream& o) const OVERRIDE FINAL;
529
501
530
- virtual void serialize (ByteBuffer *pbuffer,
502
+ epicsShareClass virtual void serialize (ByteBuffer *pbuffer,
531
503
SerializableControl *pflusher) const OVERRIDE FINAL;
532
- virtual void serialize (ByteBuffer *pbuffer,
504
+ epicsShareClass virtual void serialize (ByteBuffer *pbuffer,
533
505
SerializableControl *pflusher, size_t offset, size_t count) const OVERRIDE FINAL;
534
506
protected:
535
- explicit PVString (ScalarConstPtr const & scalar);
507
+ epicsShareClass explicit PVString (ScalarConstPtr const & scalar);
536
508
537
509
friend class PVDataCreate ;
538
510
EPICS_NOT_COPYABLE (PVString)
@@ -1172,7 +1144,7 @@ namespace detail {
1172
1144
* @ingroup pvcontainer
1173
1145
*/
1174
1146
template <typename T>
1175
- class epicsShareClass PVValueArray : public detail::PVVectorStorage<T,PVScalarArray> {
1147
+ class PVValueArray : public detail ::PVVectorStorage<T,PVScalarArray> {
1176
1148
typedef detail::PVVectorStorage<T,PVScalarArray> base_t ;
1177
1149
public:
1178
1150
POINTER_DEFINITIONS (PVValueArray);
@@ -1185,40 +1157,40 @@ class epicsShareClass PVValueArray : public detail::PVVectorStorage<T,PVScalarAr
1185
1157
typedef ::epics::pvData::shared_vector<const T> const_svector;
1186
1158
1187
1159
1188
- static const ScalarType typeCode;
1160
+ epicsShareClass static const ScalarType typeCode;
1189
1161
1190
1162
/* *
1191
1163
* Destructor
1192
1164
*/
1193
- virtual ~PVValueArray ();
1165
+ epicsShareClass virtual ~PVValueArray ();
1194
1166
1195
1167
/* *
1196
1168
* Get introspection interface.
1197
1169
*/
1198
- virtual ArrayConstPtr getArray () const OVERRIDE FINAL;
1170
+ epicsShareClass virtual ArrayConstPtr getArray () const OVERRIDE FINAL;
1199
1171
1200
- virtual std::ostream& dumpValue (std::ostream& o) const OVERRIDE FINAL;
1201
- virtual std::ostream& dumpValue (std::ostream& o, size_t index) const OVERRIDE FINAL;
1172
+ epicsShareClass virtual std::ostream& dumpValue (std::ostream& o) const OVERRIDE FINAL;
1173
+ epicsShareClass virtual std::ostream& dumpValue (std::ostream& o, size_t index) const OVERRIDE FINAL;
1202
1174
1203
- virtual size_t getLength () const OVERRIDE FINAL { return value. size ();}
1204
- virtual size_t getCapacity () const OVERRIDE FINAL { return value. capacity ();}
1175
+ epicsShareClass virtual size_t getLength () const OVERRIDE FINAL;
1176
+ epicsShareClass virtual size_t getCapacity () const OVERRIDE FINAL;
1205
1177
1206
- virtual void setCapacity (size_t capacity) OVERRIDE FINAL;
1207
- virtual void setLength (size_t length) OVERRIDE FINAL;
1178
+ epicsShareClass virtual void setCapacity (size_t capacity) OVERRIDE FINAL;
1179
+ epicsShareClass virtual void setLength (size_t length) OVERRIDE FINAL;
1208
1180
1209
- virtual const_svector view () const OVERRIDE FINAL { return value;}
1210
- virtual void swap (const_svector &other) OVERRIDE FINAL;
1211
- virtual void replace (const const_svector& next) OVERRIDE FINAL;
1181
+ epicsShareClass virtual const_svector view () const OVERRIDE FINAL;
1182
+ epicsShareClass virtual void swap (const_svector &other) OVERRIDE FINAL;
1183
+ epicsShareClass virtual void replace (const const_svector& next) OVERRIDE FINAL;
1212
1184
1213
1185
// from Serializable
1214
- virtual void serialize (ByteBuffer *pbuffer,SerializableControl *pflusher) const OVERRIDE FINAL;
1215
- virtual void deserialize (ByteBuffer *pbuffer,DeserializableControl *pflusher) OVERRIDE FINAL;
1216
- virtual void serialize (ByteBuffer *pbuffer,
1186
+ epicsShareClass virtual void serialize (ByteBuffer *pbuffer,SerializableControl *pflusher) const OVERRIDE FINAL;
1187
+ epicsShareClass virtual void deserialize (ByteBuffer *pbuffer,DeserializableControl *pflusher) OVERRIDE FINAL;
1188
+ epicsShareClass virtual void serialize (ByteBuffer *pbuffer,
1217
1189
SerializableControl *pflusher, size_t offset, size_t count) const OVERRIDE FINAL;
1218
1190
1219
1191
protected:
1220
- virtual void _getAsVoid (epics::pvData::shared_vector<const void >& out) const OVERRIDE FINAL;
1221
- virtual void _putFromVoid (const epics::pvData::shared_vector<const void >& in) OVERRIDE FINAL;
1192
+ epicsShareClass virtual void _getAsVoid (epics::pvData::shared_vector<const void >& out) const OVERRIDE FINAL;
1193
+ epicsShareClass virtual void _putFromVoid (const epics::pvData::shared_vector<const void >& in) OVERRIDE FINAL;
1222
1194
1223
1195
explicit PVValueArray (ScalarArrayConstPtr const & scalar);
1224
1196
const_svector value;
0 commit comments