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