Commit Graph

142 Commits

Author SHA1 Message Date
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