Michael Davidsaver
0eecd3b1fe
document freeze/thaw
2013-07-29 11:44:52 -04:00
Michael Davidsaver
b5b6ae100d
update pvD array in tests
2013-07-25 17:30:33 -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
569bd3b681
update testSharedVector
2013-07-25 17:02:08 -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
70ae281f45
test freeze/thaw
2013-07-16 18:59:04 -04:00
Michael Davidsaver
6e3a344caa
fix Convert::fromStringArray
...
destination should grow to fit
2013-07-16 10:48:01 -04:00
Michael Davidsaver
2e3cbed520
restart testConvert
...
start with fromStringArray
2013-07-16 10:47:11 -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
cdcbfe7378
update testPVScalarArray
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
46feb86a99
test shared_vector_convert
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
Marty Kraimer
776ff49ed2
added
2013-07-03 12:11:05 -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
b58b97a916
minor changes
2013-06-28 14:17:23 -04:00
Marty Kraimer
5f52f14094
comparison between implementations
2013-06-25 12:18:38 -04:00
Marty Kraimer
ec6b67ffad
Proposed pvData.h interface
2013-06-18 10:01:52 -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
23d5aab1e8
add Doxyfile
2013-06-11 17:42:31 -04:00
Michael Davidsaver
cf8c6718dd
test PVStructureArray in testSerialization
2013-06-11 17:42:30 -04:00
Michael Davidsaver
b0c8249562
re-write testPVStructureArray
2013-06-11 17:42:30 -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
ac53153bea
shared_vector: test reference and const_reference
...
Ensure that these typedefs are present and work
for 'T' and 'const T'.
2013-06-05 16:15:49 -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
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