Matej Sekoranja
c20284aebc
diamond inheritance
2011-02-28 19:24:50 +01:00
Marty Kraimer
665092df5a
update doc
2011-02-18 14:16:09 -05:00
Marty Kraimer
6d3ef2f5b6
use & instead of * in misc.
...
Simplify lock.h
2011-02-18 08:17:17 -05:00
Matej Sekoranja
b0c04eea53
Status changes
2011-02-17 01:21:16 +01:00
Michael Davidsaver
bb6cf7c00b
avoid method resolution problem from diamond inheritance
...
Serializable -> SerializableArray
Serializable -> PVField
SerializableArray -> PVArray
PVField -> PVArray
Thus for PVArray the members of SerializeSerializable are reachable
by two paths. This means that The vtable for PVArray has two seperate
entries for serialize.
Correct resolution is to use virtual inheritance to avoid the
ambiguity.
2011-02-15 11:39:38 -05:00
Michael Davidsaver
67ae45521b
PVStructure: implements method of SerializableArray without inheriting
...
And the implementation is a noop...
2011-02-15 11:11:48 -05:00
Michael Davidsaver
6eabee97fe
remove redundant pure virtual definitions
...
These only need to be given once in the hierarchy as pure virtual,
and then once for each concrete implementation.
2011-02-14 11:26:23 -05:00
Marty Kraimer
54782139c7
simplified definition and implementation of PVAuxInfo.
2011-02-10 07:46:38 -05:00
Marty Kraimer
de19e4b4dc
fixed memory leak in Convert. Cleaned up test/testProperty
2011-02-10 04:56:39 -05:00
Michael Davidsaver
277c71c7de
add remaining tests to testAll
2011-02-09 21:08:45 -05:00
Michael Davidsaver
fc932f1ad2
add testSerialization to testAll
2011-02-09 21:08:23 -05:00
Michael Davidsaver
afa17f8f4f
CDRMonitor: print to streams
2011-02-09 21:07:52 -05:00
Michael Davidsaver
89f5e27577
not everything is boolean
...
Use correct calls to (de)serialize POD types
2011-02-09 21:07:52 -05:00
Michael Davidsaver
08d99f2da2
Revert "specialized serialization for all (not nice)"
2011-02-09 21:07:52 -05:00
Matej Sekoranja
355f43fb97
capacity fix
2011-02-09 23:06:20 +01:00
Matej Sekoranja
62b285e79d
specialized serialization for all (not nice)
2011-02-09 22:05:09 +01:00
Michael Davidsaver
25af62a096
warning: minimum values
...
Compiler is parsing this const expression as
-(2147483648) and 2147483648 is too large.
Workaround is to use -(2147483647) - (1)
2011-02-08 13:28:03 -05:00
Michael Davidsaver
edfafd2ce6
test: update baseline
...
Just output order, no counts changing
2011-02-08 13:28:03 -05:00
Michael Davidsaver
890c72bad4
factory: templates for BasePV*Array implementations
2011-02-08 13:28:03 -05:00
Michael Davidsaver
3dae9f8728
factory: templates for BasePV* implementations
2011-02-08 13:28:03 -05:00
Michael Davidsaver
07a6bbaebd
test: drop perl scripts
2011-02-08 13:28:03 -05:00
Michael Davidsaver
48cf333e29
test: alternative test scripts
...
One script which can serve all tests
Other tests are symlinks
2011-02-08 13:28:03 -05:00
Michael Davidsaver
72b5354cb5
CDRMonitor: NDEBUG
2011-02-08 13:28:02 -05:00
Michael Davidsaver
7d3e58fcc9
CDRMonitor: lazy node creation
2011-02-08 13:28:02 -05:00
Michael Davidsaver
29bbaa60f6
Merge remote branch 'origin/master'
...
* origin/master:
change #ifndef name
static init. problem removed
2011-02-04 16:29:30 -05:00
Michael Davidsaver
624dff139d
executor: revise run and shutdown
...
Instead of a flag use a special marker Command inserted into
the queue.
2011-02-04 16:22:15 -05:00
Michael Davidsaver
294684636d
pvData.h: apply templates to PV* and PV*Array classes
...
The scalar and array value interface classes are largely
copy+paste so can easily be made templates PVScalarValue<>
and PVValueArray<>. Currently parametrized only by value
type.
Also the *ArrayData helpers become PVArrayData<>
2011-02-04 16:22:15 -05:00
Michael Davidsaver
6a5e908509
timer: avoid unnecessary allocations
...
Rename *Pvt types to *::Pvt
2011-02-04 16:22:15 -05:00
Michael Davidsaver
2a4f614b7a
thread: avoid unnecessary allocations
...
Use auto_ptr<> for pImpl
Eliminate redundant ThreadListElement class. It just contains
a Thread* and a ThreadListNode which contains itself?
Make thread main function a static class function to avoid
problems with accessing private members of ThreadPvt.
In this context "private" means used by the implementation
class only.
2011-02-04 16:22:15 -05:00
Michael Davidsaver
07487c1a7b
lock: unique_lock not unlocking
...
oops
2011-02-04 16:22:15 -05:00
Marty Kraimer
71cc5e625d
change #ifndef name
2011-02-03 09:16:11 -05:00
Matej Sekoranja
e6c521bfb9
static init. problem removed
2011-02-02 20:34:56 +01:00
Michael Davidsaver
a67a9a5eaa
Merge
...
update test baselines
rename showConstructDestruct.h to CDRMonitor.h
undercounting field
switch tests to CDRMonitor
switch remaining to use REFCOUNT macros
Use epicsThreadOnce for safe lazy initialization
replace ShowConstructDestruct with simpler CDRMonitor
executor: remove redundant allocations
lock: Partial implementation of Boost lock templates
Conflicts:
pvDataApp/misc/StatusCreateFactory.cpp
pvDataApp/misc/bitSet.cpp
2011-02-02 11:16:03 -05:00
Matej Sekoranja
43bbae6658
static creation fixed
2011-02-02 16:22:22 +01:00
Michael Davidsaver
bed4108ffd
update test baselines
2011-02-02 10:11:07 -05:00
Michael Davidsaver
8adb8b7766
rename showConstructDestruct.h to CDRMonitor.h
2011-02-02 10:11:07 -05:00
Michael Davidsaver
3dd943d3b3
undercounting field
...
The reference count is 1 on construction
2011-02-02 10:11:07 -05:00
Michael Davidsaver
103e4bf2cb
switch tests to CDRMonitor
...
Explicit call to epicsExitCallAtExits is needed to
preserve previous order between AtExit cleanup list
and static class destructors.
update llist gold
2011-02-02 10:11:07 -05:00
Michael Davidsaver
4a65bf9342
switch remaining to use REFCOUNT macros
2011-02-02 10:11:07 -05:00
Michael Davidsaver
099215986f
Use epicsThreadOnce for safe lazy initialization
...
Also use epicsAtExit to handle cleanup.
2011-02-02 10:11:07 -05:00
Michael Davidsaver
d8fe325dc0
replace ShowConstructDestruct with simpler CDRMonitor
...
Hold counters internally instead of exposing (and duplicating)
counting code in other compile units
Remove deleteFunc list. This should be handled by another mechanism.
CDRMonitor is debugging code.
Use internal singly linked list to avoid special handling of
LinkedList.
2011-02-02 10:11:07 -05:00
Michael Davidsaver
302d3fe5d2
executor: remove redundant allocations
2011-02-02 09:14:46 -05:00
Michael Davidsaver
b4c48449a8
lock: Partial implementation of Boost lock templates
...
lock_guard - simple RAII for a mutex
unique_lock - Also allows release/re-acquire after
construction while ensuring that the mutex is
unlocked when the object is destructed.
2011-02-02 09:14:46 -05:00
Marty Kraimer
5e45b5fabd
did a pull then commit
2011-02-01 05:50:23 -05:00
Marty Kraimer
52ee919845
Massive name changes to factory.
...
The changes make it clear what is a default implementation and
what implements base classes defined in pvData.h.
2011-02-01 05:31:55 -05:00
Marty Kraimer
ca3e22fd81
add methods append and remove to PVStructureArray
2011-01-31 09:38:12 -05:00
Matej Sekoranja
698f4911ba
BaseException fix and cleanup.
2011-01-28 19:50:05 +01:00
Marty Kraimer
ad9633c8f6
moved pvType.h from misc to pv.
...
Made changes to make it clear that is defining the pvData primitive types for pvData.
2011-01-28 08:22:46 -05:00
Matej Sekoranja
62e0495c3d
structure equals fix
2011-01-26 00:00:38 +01:00
Matej Sekoranja
4f85a0c4a1
merge
2011-01-23 23:41:20 +01:00