Commit Graph

51 Commits

Author SHA1 Message Date
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
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
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
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
Marty Kraimer f4a1173e7a More work on introspection memory management.
Required changes to pvIntrospect.h and pvData.h
2011-01-20 09:16:33 -05:00
Marty Kraimer 608d74c400 Fix many memory leaks 2011-01-12 10:28:00 -05:00
Matej Sekoranja b5cc749a94 Field equality test 2010-12-28 11:01:03 +01:00
Matej Sekoranja 990bb6316e make ref. counting public 2010-12-27 11:33:53 +01:00
Marty Kraimer 531a63f913 fix append problem
still may have memory leak problem
2010-12-26 15:34:26 -05:00
Marty Kraimer fdf2342157 minor changes 2010-12-20 06:30:48 -05:00
Marty Kraimer 188c256dda documentation more complete 2010-12-13 13:12:43 -05:00
Marty Kraimer 381c6de7e9 change build so that only one library pvData gets built 2010-12-08 07:08:42 -05:00
Marty Kraimer 3b90f6b719 property and propertyTest now ready. doc not updated 2010-12-07 14:21:15 -05:00
Marty Kraimer e82101b9c6 Implemented Queue. 2010-12-03 15:40:02 -05:00
Marty Kraimer 358923d064 started on documentation and changes to misc as a result 2010-12-02 15:28:09 -05:00
Marty Kraimer 9db054cc54 timer and timeStamp added to misc. copyright and license info added 2010-11-23 07:30:13 -05:00
Marty Kraimer 6e90ae7f12 added event thread executor timeFunction showConstructDestruct timeStamp 2010-11-17 11:14:38 -05:00
Marty Kraimer 5b4c642b5b fix dependencies between include files 2010-11-09 14:38:34 -05:00
Marty Kraimer 5a7438e028 added linkedList and test for linkedList 2010-11-09 14:23:30 -05:00
Marty Kraimer 2502b381d3 added a test for auxInfo and field offsets 2010-11-04 15:48:06 -04:00
Marty Kraimer 4f871aae05 a complete set of tests for PVData now exists 2010-11-04 09:38:53 -04:00
Marty Kraimer 7f03a52200 Merged conflicts with matej's push 2010-11-02 08:54:15 -04:00
Marty Kraimer f259c4451d refactor introspection interfaces. replace epicsTypes by pvData types. 2010-11-02 07:53:03 -04:00
Matej Sekoranja f751d075c5 serialization added 2010-11-01 23:28:03 +01:00
Marty Kraimer 59c2d447c1 testIntrospection now complete 2010-10-28 10:08:20 -04:00
Marty Kraimer 55b44e953d standardPVField now complete 2010-10-27 13:26:29 -04:00
Marty Kraimer 4e5e4ea782 added StandardPVField
StandardField, which creates standard introspection interfaces, is complele
2010-10-27 08:18:31 -04:00
Marty Kraimer d2a4a6da8f Except for serialization all pv classes are implemented 2010-10-26 09:11:38 -04:00
Marty Kraimer 59eeadcd10 BasePVStructure now complete 2010-10-26 06:12:44 -04:00
Marty Kraimer a2b35d1e82 AbstractPVField now finished 2010-10-22 10:41:17 -04:00
Marty Kraimer fce7b9914b PVDataCreateFactory.cpp now complete 2010-10-21 16:23:28 -04:00
Marty Kraimer ebbb1191bd ConvertFactory.cpp is now complete 2010-10-21 10:19:42 -04:00
Marty Kraimer e0ca45a028 added operator!=
Convert.cpp almost done
2010-10-20 16:06:25 -04:00
Marty Kraimer e5aac3b8e4 Main change is epicsBoolean=>bool
equuals => operator==
Additional implementation in Convert.cpp
2010-10-19 14:52:07 -04:00
Marty Kraimer 4b912a3c30 scalars and arrays implemented 2010-10-01 10:01:27 -04:00
Marty Kraimer 419f340aaa All PVScalar interfaces now implemented 2010-09-30 07:49:29 -04:00
Marty Kraimer 355ac3aa1d Fixed const mess 2010-09-29 09:24:17 -04:00
Marty Kraimer f6c9b0eea3 1) implemented noDefaultMethods. See effective C++ Item 6. There it is called Uncopyable
2) implemented Lock. See effective C++ item 14.
     This is as easy to use as Java synchronize.
3) wrapper on top of std::string. All usage of string in pvData is one of:
      String - Just a std::string
     StringBuilder - Used where StringBuilder is used in Java
     StringConst - Just a "std::string const". This is used wherever String is used in Java
     StringConstArray - Just like a String[] in Java.
4) The reference counting (incReferenceCount and decReferenceCount) are now private. It is completely handled by the implenentaion.
    NO code that uses pvData needs even know about reference counting.
2010-09-27 08:33:10 -04:00
Marty Kraimer dd6ecf9bec all pvData interfaces and implementration stubs now defined
Most methods are not implemented and throw an exception
2010-09-24 09:52:08 -04:00
Marty Kraimer 2c6a99a6cb add directory misc and move stuff to it. 2010-09-23 14:47:47 -04:00
Marty Kraimer 0d32a60b08 everything now builds 2010-09-23 11:01:41 -04:00
Marty Kraimer 7abba9ef7b Still working on initial version 2010-09-17 11:34:26 -04:00
Marty Kraimer 10c2be9a3f Still working on initial version 2010-09-17 09:31:44 -04:00
Marty Kraimer ac194e1123 Working on initial version 2010-09-15 06:54:43 -04:00
Marty Kraimer 91f80a59e0 Fuller implementation of introspection.
Have not taken care of destroy or sharing
2010-08-12 05:36:25 -04:00