Commit Graph

165 Commits

Author SHA1 Message Date
Marty Kraimer bea5beefcc minor changes to monitor.h 2011-05-12 09:15:15 -04:00
Marty Kraimer d13284da7f PVField no longer extends Requester. 2011-05-10 07:38:04 -04:00
Matej Sekoranja fae332c09f shared pointer def 2011-05-10 10:01:14 +02:00
Marty Kraimer e873bdd0b6 fix memory leak on PVStructure::removeField 2011-04-27 12:06:44 -04:00
Marty Kraimer 95ae684d3d add == for introspection; == of PVField is done in base class via convert.
Make monitorQueue compatible with monitor, i.e. shared_pointer
2011-04-27 08:27:10 -04:00
Matej Sekoranja b45b965f14 added shared_pointer typedefs, monitor.h IF changed to used shared_pointers 2011-04-24 23:56:58 +02:00
Marty Kraimer fc74317993 use Michael Davidsaver version of introspection 2011-04-21 15:21:18 -04:00
Marty Kraimer f611f0550b add method to messageQueue. Reorganize includes in CDRMonitor.h 2011-04-21 05:23:20 -04:00
Marty Kraimer b1ffcf37d7 In PVField make extend Request virtual 2011-04-19 05:17:45 -04:00
Marty Kraimer 3a00b879ee Added a new method to PVDataCreate that allows a PVStructure to be created from a PVField array where the elements have a null parent.
PVField::message was changed to pass the message to the top level field adding the field name at each level.
2011-04-15 14:21:55 -04:00
Marty Kraimer efdef77461 fix bug in Convert.cpp; In misc add virtual destructor to abstract classes 2011-04-12 08:26:58 -04:00
Marty Kraimer 323a2d7321 major changes to monitor. Bug in Convert::copyScalar (change every break to rerurn); minor change to StandardPVField and queueVoid 2011-04-05 08:37:16 -04:00
Matej Sekoranja 617871ece9 static initialization fixed 2011-03-08 21:42:36 +01:00
Michael Davidsaver c75c5fcfa6 Let Thread specify stack size 2011-03-07 12:23:51 -05:00
Michael Davidsaver 226cc62771 identify OSX 2011-03-07 12:23:51 -05:00
Michael Davidsaver 899c22fbf8 tr1 shared_ptr 2011-03-07 12:23:51 -05:00
Michael Davidsaver 14c1fdc8c1 minor cleanup in TypeFunc
Switch TypeFunc and ScalarTypeFunc from completely static
classes to namespaces.  They functions share no private data
between them (and it seems unlikely that they ever will) so
there is no benefit to being class functions.

Also misc. cleanup of static string defs, and comparisons.
2011-03-07 12:23:51 -05:00
Michael Davidsaver fa77eacd4e use epicsMutex for Mutex
Now non-copyable, wasn't before...
2011-03-07 12:23:51 -05:00
Michael Davidsaver 4c88ef8e99 switch to epicsThread
Create a thin wrapper to account for the current interface and behavior
differences.
2011-03-07 12:23:51 -05:00
Michael Davidsaver 0c61ac0833 stack traces with any exception class
Define THROW_EXCEPTION(E) which takes an exception class instance,
and uses it to construct an instance of a class which is a subclass
of E and ExceptionMixin.  The original instance is discarded, and
the newly constructed sub-class is thrown.  Equivalent to
"throw E;".

Define THROW_EXCEPTION2(ETYPE,MSG) which takes an exception class
type, and argument.  Directly constructs a ExceptionMixin sub-class
with the given message argument.  Equivalent to
"throw ETYPE(MSG);".

Define PRINT_EXCEPTION2(E, FP) If E is a instance of a sub-class of
ExceptionMixin then write information to FP (FILE*).

Define SHOW_EXCEPTION(E) If E is a instance of a sub-class of
ExceptionMixin then return a std::string with information.
2011-03-07 12:23:51 -05:00
Matej Sekoranja 9fd158df1f string serialization optimization 2011-03-04 12:13:57 +01:00
Matej Sekoranja 6357722bb1 PVString now extends Serializable array, serialization/deserialization template of all scalars fixed 2011-03-03 09:39:43 +01:00
Matej Sekoranja 4c7784671b recalculateWordsInUse fix 2011-03-01 23:02:34 +01:00
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