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
2011-01-28 08:22:46 -05:00
2011-02-02 11:16:03 -05:00
2011-02-02 10:11:07 -05:00
2011-01-03 07:17:56 -05:00
2010-10-27 08:18:31 -04:00
2010-08-10 13:23:17 -04:00

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
  <title>EPICS pvData C++</title>
</head>

<body>
<h1 style="text-align: center">EPICS pvData C++<br />
Overview<br />
2010.08.10</h1>
CONTENTS 
<hr />

<h2 style="text-align: center">Introduction</h2>
<hr />

<p>This project has the begining of the C++ implementation of pvData. The
following is done:</p>
<dl>
  <dt>introspection interfaces</dt>
    <dd>The introspection interfaces for clients are described.</dd>
  <dt>introspection implementation</dt>
    <dd>The following have been implemented: Type, ScalarType, Field,
    Scalar</dd>
  <dt>test</dt>
    <dd>A test of Scalar.</dd>
  <dt>As mentioned below there are problems with the current
  implementation.</dt>
</dl>
<hr />

<h2 style="text-align: center">Building</h2>
<hr />

<p>The project is structured as an epics base client application. Edit
configure/RELEASE so that it references your EPICS base and then just
type:</p>
<pre>   make</pre>

<p>At the top. Then execute the test in the bin directory.</p>

<p>pvDataApp has the following sub directories:</p>
<dl>
  <dt>pv</dt>
    <dd>pvData.h has the interface descriptions for client code.</dd>
  <dt>factory</dt>
    <dd>FieldCreateFactory.cpp has the current implementation</dd>
  <dt>test</dt>
    <dd>Has a test for the current implementation.</dd>
</dl>
<hr />

<h2 style="text-align: center">Questions about Classes</h2>
<hr />

<p>The pure virtual classes defined in pvData.h now work. But there are still
some things that are not so nice. Amoung these are:</p>
<ul>
  <li>In FieldCreateFactory.cpp look for "WHY DO I". It asks why the derived
    class must also define methods defined in the base class. If it does not
    then a compilation error occurs. WHY??? </li>
  <li>The toString methods have an argument of "std::string &amp;buf" instead
    of "std::string *". Does this seem correct?</li>
  <li>Can arguments and return descriptions be defined better?</li>
  <li>Is const present everywhere it should be? Remember that introspection
    classes are immutable.</li>
  <li>The code is NOT thread safe. When we decide for sure what thread/lock
    support to choose I will fix this.</li>
</ul>

<p>HELP WILL BE GREATLY APPRECIATED. because I am still coming up to speed
with c++</p>
<hr />

<h2 style="text-align: center">Garbage Collection</h2>
<hr />
<p>Not yet implemented. Lets get class structure correct first.</p>
</body>
</html>
Languages
C++ 98.6%
Makefile 1%
C 0.4%