Michael Davidsaver
73450bdbc7
combine shared_vector<T> for void and const void
2013-07-03 14:23:17 -04:00
Michael Davidsaver
5699c43b74
correct max_size
...
Take into account sizeof(E).
2013-07-02 17:42:46 -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
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
3b6268a4fc
add const_iterator to shared_vector
2013-05-31 09:58:52 -04:00
Michael Davidsaver
3cd2bfdef0
shared_vector implementation
...
Shared ownership of a single C array.
Tracks offset and length for each instance
allowing each owner to "view" a different
piece of the array.
Parts of shared_vector<T> which can work
for T=void are in shared_vector_base<T>.
Specializations shared_vector<void>
and shared_vector<const void> handle
un-typed arrays.
Allow casting to/from typed vector
Offsets and sizes of untyped vectors are tracked in
bytes. Therefore casting to types where sizeof(T)>1
is undefined if the offset is not a multiple of
sizeof(T).
2013-05-08 18:21:34 -04:00
Michael Davidsaver
fd5ea89340
typo
2013-05-01 14:27:00 -04:00
Michael Davidsaver
61e8024c65
fix mapping between int* and epicsInt* types
2013-04-30 18:14:05 -04:00
Michael Davidsaver
2f8c434429
add castUnsafeV
...
non-template version of castUnsafe<TO>(FROM v)).
2013-04-22 11:59:20 -04:00
Michael Davidsaver
0e57391b4d
vxWorks compatibility
2013-04-22 11:59:20 -04:00
Michael Davidsaver
7ff1a93e72
parseToPOD: fix 64-bit
...
Try again to detect if uint16_t is long or long long.
2013-04-18 13:54:04 -04:00
Michael Davidsaver
d7eada7216
type casting with castUnsafe<TO>(FROM val)
2013-04-15 14:39:42 -04:00
Matej Sekoranja
0dd6f01ef6
direct, i.e. no-copy, de/serialization support
2013-04-12 21:54:11 +02:00
Matej Sekoranja
675243061d
-Wextra compiler warnings fixed
2013-02-16 12:50:36 +01:00
Marty Kraimer
4bc7e9c8fe
several minor problems found while developing pvDatabaseCPP
2012-12-12 14:59:33 -05:00
Matej Sekoranja
f88f0b4a76
localStaticLock - static local thread-safety
2012-10-08 12:19:21 +02:00
Marty Kraimer
5ba0209f39
get rid of all static global objects
2012-10-03 08:59:23 -04:00
Unknown
6a378dae0d
removed sprintf format warnings
2012-09-14 13:54:35 +02:00
Matej Sekoranja
4cef1135a3
PVStructure serialization fixed
2012-09-10 08:56:11 +02:00
Unknown
55df2e06e2
compatibility with vxWorks
2012-09-05 14:11:07 +02:00
Matej Sekoranja
cfc9ebefb0
merge
2012-09-03 23:46:06 +02:00
Matej Sekoranja
516518529c
VxWorks ports from Dirk
2012-09-03 23:43:26 +02:00
Marty Kraimer
5e3311a024
LICENSE, COPYRIGHT, file header
2012-08-22 14:39:19 -04:00
Matej Sekoranja
978cb937c4
String const & message
2012-08-20 19:09:01 +02:00
Matej Sekoranja
86adfc091b
passing string by const ref
2012-08-20 16:37:26 +02:00
Marty Kraimer
66fb300873
documentation updated; changes for Field::ID
2012-08-17 06:45:20 -04:00
Matej Sekoranja
6a86496385
added BitSet::size()
2012-07-31 11:47:42 +02:00
Matej Sekoranja
689d0875b7
null string check
2012-07-30 22:03:23 +02:00
Marty Kraimer
31922eac32
commit so that Matej can look at Monitor
2012-07-23 16:56:49 -04:00
Marty Kraimer
5dcd864c58
more shared_pointer everywhere
2012-07-17 09:23:53 -04:00
Marty Kraimer
9775fd4707
redo monotorQueue
2012-07-02 16:17:58 -04:00
Matej Sekoranja
3991a51fd6
size_t changes
2012-06-07 14:15:12 +02:00
Matej Sekoranja
770e63b8da
removed BitSetPtr due to possible 4.6.1 gcc problem
2012-05-21 21:11:20 +02:00
Marty Kraimer
d320f00e96
fix messageType name
2012-05-10 06:28:27 -04:00
Marty Kraimer
7a60e02d5c
make methods non inline
2012-05-09 15:38:19 -04:00
Marty Kraimer
fb453ea9e5
working on queue code
2012-05-09 14:06:17 -04:00
Marty Kraimer
87bff33c30
support unsigned; move fieldName; pvData use shared_pointer everywhere
2012-05-08 09:29:30 -04:00
Matej Sekoranja
2693201cfd
OK -> Ok
2012-03-29 08:19:39 +02:00
Matej Sekoranja
2dba4aab2b
Dirk's VxWorks porting
2012-03-28 20:40:49 +02:00
Matej Sekoranja
6caa725f5a
Field serialization moved to pvData
2012-03-27 10:32:37 +02:00
Marty Kraimer
d1a773bcbd
revise location od documentation
2011-12-12 09:38:40 -05:00
Matej Sekoranja
2f71c5cf85
merge
2011-10-05 22:17:21 +02:00
Matej Sekoranja
5a9eff29fa
alive access synced
2011-10-05 22:10:15 +02:00
Guobao Shen
ced144c4c4
add messageTypeCount (=4 by default) for messageTypeName.
2011-09-26 15:08:33 -04:00
Matej Sekoranja
ed0e8d0782
alignData/Buffer methods
2011-09-21 22:27:53 +02:00