54 lines
2.2 KiB
HTML
54 lines
2.2 KiB
HTML
<h1>Release release/3.1 IN DEVELOPMENT</h1>
|
|
<p>The main changes since release 3.0.2 are:</p>
|
|
<ul>
|
|
<li>array semantics now enforce Copy On Write.</li>
|
|
<li>String no longer defined.</li>
|
|
<li>toString replaced by stream I/O </li>
|
|
<li>union is new type.</li>
|
|
<li>copy is new.</li>
|
|
<li>monitorPlugin is new.</li>
|
|
</ul>
|
|
<h2>New Semantics for Arrays</h2>
|
|
<p>PVScalarArray, PVStructureArray, and PVUnionArray all enforce COW (Copy On Write) Semantics.
|
|
In order to limit memory usage the storage for raw data is managed via a new shared_vector facility.
|
|
This allows multiple instances of array data to use the shared raw data.
|
|
COW is implemented via shared_vectors of const data, i. e. data that can not be modified.</p>
|
|
<h2>String no longer defined</h2>
|
|
<p>This is replaced by std::string.</p>
|
|
<h2>toString replaced by stream I/O</h2>
|
|
<p>pvData.h and pvIntrospect no longer defines toString
|
|
Instead they have stream support.
|
|
pvIntrospect uses method dump and pvData uses dumpValue.
|
|
For example:</p>
|
|
<pre><code> PVDoublePtr pvValue;
|
|
String buffer;
|
|
pvValue->toString(&buffer);
|
|
cout << buffer << endl;
|
|
buffer.clear();
|
|
pvValue->getField()->toString(&buffer);
|
|
cout << buffer << evdl;
|
|
</code></pre>
|
|
<p>is replaced by</p>
|
|
<pre><code> PVDoublePtr pvValue;
|
|
cout << pvValue=>dumpValue(cout) << endl
|
|
cout << pvValue->getField()->dump(cout) << endl;
|
|
</code></pre>
|
|
<h2>union is a new basic type.</h2>
|
|
<p>There are two new basic types: union_t and unionArray.</p>
|
|
<p>A union is like a structure that has a single subfield.
|
|
There are two flavors:</p>
|
|
<ul>
|
|
<li><b>varient union</b> The field can have any type.</li>
|
|
<li><b>union</b> The field can any of specified set of types.</li>
|
|
</ul>
|
|
<p>The field type can be dynamically changed.</p>
|
|
<h2>copy</h2>
|
|
<p>This consists of createRequest and pvCopy.
|
|
createRequest was moved from pvAccess to here.
|
|
pvCopy is moved from pvDatabaseCPP and now depends
|
|
only on pvData, i. e. it no longer has any knowledge of PVRecord.</p>
|
|
<h2>monitorPlugin</h2>
|
|
<p>This is for is for use by code that implements pvAccess monitors.
|
|
This is prototype and is subject to debate.</p>
|
|
<h1>Release 3.0.2</h1>
|
|
<p>This was the starting point for RELEASE_NOTES</p> |