Michael Davidsaver
9cd7008efe
typeCast String <-> boolean
2013-10-29 17:56:36 -04:00
Michael Davidsaver
14dc098761
no deperecated warning on old vxworks
2013-10-29 16:58:09 -04:00
Michael Davidsaver
8c6a895b19
disambiguate a template
2013-10-29 16:54:02 -04:00
Michael Davidsaver
01b8e69e4b
remove illegal copy op
...
Can bypass freeze/thaw
2013-10-28 17:54:59 -04:00
Michael Davidsaver
11e91ac3fa
Merge branch 'shared-vector'
2013-10-28 17:42:11 -04:00
Andrew Johnson
c3d04fdd08
Fix VxWorks builds
2013-09-05 10:26:56 -05:00
Michael Davidsaver
de70d90603
shared_vector: simplify slice()
...
Correctly tracks capacity when user
over-slices.
2013-08-06 11:32:34 -04:00
Michael Davidsaver
31be738c10
minor
2013-08-06 10:43:47 -04:00
Michael Davidsaver
f21811eb6a
Change enum to type in converters
2013-07-29 15:09:47 -04:00
Michael Davidsaver
c643509c7e
PVField converters use type
...
Use type as template parameter instead of ScalarType
enum value.
2013-07-29 15:08:59 -04:00
Michael Davidsaver
0860f8e6f9
don't use deprecated PVValueArray<T>::get()
2013-07-29 11:44:53 -04:00
Michael Davidsaver
e96b447e37
add print_cast()
...
Cast value to "printable" type.
A no-op except for char types, which are cast to int
so that they are printed as numbers std::ostream operators.
2013-07-29 11:44:52 -04:00
Michael Davidsaver
0eecd3b1fe
document freeze/thaw
2013-07-29 11:44:52 -04:00
Michael Davidsaver
8fd9bf10e5
update pvD array implementation
2013-07-25 17:30:18 -04:00
Michael Davidsaver
9ac030169a
update pvD array handling
...
Interface only uses shared_vector<const T>
storage also uses only const.
2013-07-25 17:22:16 -04:00
Michael Davidsaver
45bb461c32
shared_vector require freeze/thaw
...
Remove the implicit cast from non-const to const.
Require the use of freeze/thaw when
changing between const and non-const.
Change argument of const_shared_vector_cast
to a non-const shared_vector reference
to allow it to be cleared by freeze/thaw.
2013-07-25 15:26:29 -04:00
Michael Davidsaver
105c3185f7
remove take(), copyIn(), and copyOut().
2013-07-19 14:20:55 -04:00
Michael Davidsaver
5565e4e30c
Convert don't use copyIn or copyOut
2013-07-19 14:18:04 -04:00
Michael Davidsaver
6e3a344caa
fix Convert::fromStringArray
...
destination should grow to fit
2013-07-16 10:48:01 -04:00
Michael Davidsaver
5e2e7c81a6
Merge remote branch 'md/master' into pvarr
...
* md/master:
added
minor changes
comparison between implementations
Proposed pvData.h interface
added pvArray.html; made queue.h and bitSetUtil.* compatible with pvDataCPP.
2013-07-09 18:37:53 -04:00
Michael Davidsaver
cff59487ae
shared_vector freeze and thaw
2013-07-09 18:24:51 -04:00
Michael Davidsaver
0c4ef8f079
PV* use shared_vector_convert
2013-07-09 18:24:50 -04:00
Michael Davidsaver
c0e9dcff21
revise static_shared_vector_cast
...
Move the work into a special ctor
to allow full inline of casting wrapper
Prevent static_shared_vector_cast from
casting const <-> non-const
2013-07-09 18:24:41 -04:00
Michael Davidsaver
79eeb0fa2a
update PVScalar and PVScalarValue<T>
...
hide the void* members for now.
Define PVScalarValue<T>::getAs and putFrom
to give a more efficient implementation.
2013-07-09 18:24:41 -04:00
Michael Davidsaver
74f68c47d3
shared_vector_convert
...
Allow converting of shared_vector between types
Conversion utilizes castUnsafe<TO,FROM>().
Converting to/from void is supported. Convert to void
is an alias for static_shared_vector_cast<void>().
Convert from void utilizes shared_vector<void>::original_type()
and throws std::runtime_error if this is not valid.
Casting now handles 'const void'
is most places where 'void' can be used.
2013-07-09 18:24:40 -04:00
Michael Davidsaver
3c7a738ffc
shared_vector<void> tracks original type
2013-07-09 18:24:40 -04:00
Michael Davidsaver
22d4a53d65
create templateMeta.h
...
Home for common C++ template tricks
2013-07-09 18:24:40 -04:00
Michael Davidsaver
d319e2ed7b
add ScalarTypeID template
...
Define a compile time mapping from
type to ScalarType enum value.
2013-07-09 11:19:46 -04:00
Michael Davidsaver
2cb07a8490
move parts of ScalarTypeFunc to sharedVector.h
...
Move the parts of ScalarTypeFunc which
deal with untyped shared_vector s
to sharedVector.h to allow sharedVector.h
to include pvIntrospect.h w/o creating
an include loop...
2013-07-09 10:36:48 -04:00
Michael Davidsaver
6900d4bbec
make boolean type unambiguous
...
"char", "signed char", and "unsigned char"
are distinct types. Define "boolean" to
be whichever is not "int8" or "uint8".
2013-07-08 09:58:37 -04:00
Michael Davidsaver
73450bdbc7
combine shared_vector<T> for void and const void
2013-07-03 14:23:17 -04:00
Michael Davidsaver
00da6c88ae
minor
2013-07-03 11:41:53 -04:00
Michael Davidsaver
986f036d20
replace accepts const_svector
...
Allows
PVValueArray<T> *a, *b;
a->replace(b->view());
2013-07-03 11:34:32 -04:00
Michael Davidsaver
5699c43b74
correct max_size
...
Take into account sizeof(E).
2013-07-02 17:42:46 -04:00
Marty Kraimer
3de28e3cef
added pvArray.html; made queue.h and bitSetUtil.* compatible with pvDataCPP.
2013-06-13 14:52:27 -04:00
Michael Davidsaver
8cb0b1a7d6
use new PVStructureArray api
2013-06-11 17:42:30 -04:00
Michael Davidsaver
7f9745c8d1
Implement PVStructureArray with shared_vector
...
Combine as much as possible with scalar array handling.
PVStructureArray becomes PVValueArray<shared_ptr<PVStructure> >
Bulk of shared implementation moved the PVVectorStorage
which has a parametrized base to avoid using multiple inheritance.
2013-06-11 17:42:30 -04:00
Michael Davidsaver
4e749cc8be
Improve shared_vector::push_back
...
push_back now allocates additional space
in powers of 2 up to 1k elements, then
in blocks of 1k elements.
2013-06-11 17:42:30 -04:00
Michael Davidsaver
70c9a7c18f
simplify shared_vector ctors
...
Casting will be done through the copy constructor.
2013-06-11 14:39:40 -04:00
Michael Davidsaver
11e2ee19ea
Fix Printer for structure arrays
...
Not handling NULL elements correctly.
2013-06-11 14:39:40 -04:00
Michael Davidsaver
a4cfab1242
Fix "optimize shared_vector for storing non-POD types"
...
Can't move references when the source array is
still referenced by other shared_vectors
2013-06-11 14:39:40 -04:00
Michael Davidsaver
be4738f59c
remove weak_vector
...
It seems that shared_ptr::use_count() does
not include weak_ptr instances. Therefore
shared_ptr::use_count()==1 (aka unique())
does *not* ensure exclusive ownership!
This breaks the assumption used by
shared_vector::make_unique() to avoid
allocating a new array in some cases.
2013-06-10 15:09:42 -04:00
Michael Davidsaver
b63c3da565
add const_pointer to shared_vector
2013-06-10 12:09:29 -04:00
Michael Davidsaver
0b89f08d09
explicit copy and assignment for shared_vector
...
Add explicit copy constructor and
assignment operator for shared_vector.
2013-06-10 12:09:29 -04:00
Michael Davidsaver
bc3187a3f6
optimize shared_vector for storing non-POD types
...
pass values by reference where appropriate.
When reallocating arrays of shared_ptr
"move" with swap() instead of operator=
to avoid ref counter inc and dec for each
element.
2013-06-03 19:31:05 -04:00
Michael Davidsaver
4294710d9e
make viewUnsafe protected
...
No longer part of the public API of PVValueArray
2013-06-03 19:31:05 -04:00
Matej Sekoranja
476f18332a
valueAlarm for numeric scalar arrays support
2013-05-31 21:15:54 +02:00
Michael Davidsaver
82a33460cf
pvData update doc comments
2013-05-31 09:58:52 -04:00
Michael Davidsaver
3b6268a4fc
add const_iterator to shared_vector
2013-05-31 09:58:52 -04:00
Michael Davidsaver
57804494ef
Misc fixes and error checking
...
fix argument type for getScalarType
mark getFieldName as const
Argument checking for Field construction
2013-05-24 18:28:54 -04:00