removed all talk about pvIOC
This commit is contained in:
@ -38,7 +38,7 @@
|
||||
<h1>pvDatabaseCPP</h1>
|
||||
<!-- Maturity: Working Draft or Request for Comments, or Recommendation, and date. -->
|
||||
|
||||
<h2 class="nocount">EPICS v4 Working Group, Working Draft, 02-October-2015</h2>
|
||||
<h2 class="nocount">EPICS v4 Working Group, Working Draft, 23-October-2015</h2>
|
||||
<dl>
|
||||
<dt>Latest version:</dt>
|
||||
<dd><a
|
||||
@ -46,11 +46,11 @@
|
||||
</dd>
|
||||
<dt>This version:</dt>
|
||||
<dd><a
|
||||
href= "pvDatabaseCPP_20151002.html">pvDatabaseCPP20151002.html
|
||||
href= "pvDatabaseCPP_20151023.html">pvDatabaseCPP20151023.html
|
||||
</a> </dd>
|
||||
<dt>Previous version:</dt>
|
||||
<dd><a
|
||||
href= "pvDatabaseCPP_20140811.html">pvDatabaseCPP20140811.html
|
||||
href= "pvDatabaseCPP_20151002.html">pvDatabaseCPP20151002.html
|
||||
</a> </dd>
|
||||
<dt>Editors:</dt>
|
||||
<dd>Marty Kraimer, BNL</dd>
|
||||
@ -78,7 +78,7 @@ V4 control system programming environment:<br />
|
||||
|
||||
<h2 class="nocount">Status of this Document</h2>
|
||||
|
||||
<p>This is the 02-October-2015 version of of pvDatabaseCPP.</p>
|
||||
<p>This is the 23-October-2015 version of of pvDatabaseCPP.</p>
|
||||
<p>This version is a complete implementation of what is described in this manual.
|
||||
</p>
|
||||
</div>
|
||||
@ -250,56 +250,6 @@ arrays. It is also described in a later section.</p>
|
||||
<p>Reading section exampleServer and looking at it's code is a good way
|
||||
to learn how to implement a service.</p>
|
||||
|
||||
<h3>Relationship with pvIOCJava.</h3>
|
||||
<p>This document describes a C++ implementation of some of the components in pvIOCJava,
|
||||
which also implements a pvDatabase.
|
||||
PVDatabaseCPP implements the core components required to create a network accessible database of smart
|
||||
memory resident records.
|
||||
pvDatabaseCPP does not implement any of the specialized support that pvIOCJava
|
||||
provides.
|
||||
It is expected that many services will be created that do not require the full features provided
|
||||
by pvIOCJava. In the future pvIOCJava should be split into multiple projects with one of
|
||||
them named pvDatabaseJava.</p>
|
||||
<p>Similar to epics base, pvIOCJava implements the concept of synchronous and asynchronous record processing.
|
||||
For pvDatabaseCPP the process method is allowed to block.
|
||||
Until a need is demonstrated this will remain true.
|
||||
The main user of a pvDatabase is pvAccess, and in particular, remote pvAccess.
|
||||
The server side of remote pvAccess creates two threads for each client and always accesses
|
||||
a record via these threads.
|
||||
It is expected that these threads will be sufficient to efficiently handle all channel methods except
|
||||
channelRPC. For channelRPC pvAccess provides (or will provide) a thread pool for channelRPC requests.
|
||||
If, in the future, a scanning facility is provided by pvDatabaseCPP or some other facility,
|
||||
then the scanning facility will have to provide some way of handling process requests that block.</p>
|
||||
<h3>Phased Development</h3>
|
||||
<p>This documentation describes the first phase of a phased implementation
|
||||
of pvDatabaseCPP:</p>
|
||||
<dl>
|
||||
<dt>pvRecord</dt>
|
||||
<dd>Wrapper on PVStructure that implements methods required by Local Channel Provider.</dd>
|
||||
<dt>pvDatabase</dt>
|
||||
<dd>Database of PVRecords. Has methods find, add, and remove.</dd>
|
||||
<dt>Local Channel Provider</dt>
|
||||
<dd>Complete implementation of ChannelProvider and Channel.
|
||||
This means that pvCopy and monitor are also implemented.</dd>
|
||||
</dl>
|
||||
<p>Future phases of pvDatabaseCPP might include:</p>
|
||||
<dl>
|
||||
<dt>Install</dt>
|
||||
<dd>This provides complete support for on-line add and delete
|
||||
of sets of records.
|
||||
With the first phase each "service" is responsible for it's own implementation.
|
||||
All that is provided is addRecord and removeRecord.
|
||||
</dd>
|
||||
<dt>Field support</dt>
|
||||
<dd>Add the ability to optionally add support to fields.
|
||||
In addition some of the basic support defined in pvIOCJava could also be implemented.</dd>
|
||||
<dt>XML parser</dt>
|
||||
<dd>This provides the ability to create record instances without
|
||||
writing any code.</dd>
|
||||
</dl>
|
||||
<p>The completion of each phase provides useful features that can be used
|
||||
without waiting for the completion of later phases.
|
||||
The rest of this document discusses only the first phase.</p>
|
||||
<h3>Features Required for localChannelProvider</h3>
|
||||
<dl>
|
||||
<dt>copy and monitor</dt>
|
||||
@ -319,11 +269,7 @@ The rest of this document discusses only the first phase.</p>
|
||||
which is implemented by pvAccessCPP.
|
||||
</dd>
|
||||
</dl>
|
||||
<h3>Minimum Features Required for pvRecord</h3>
|
||||
<p>The first phase will only implement record processing, i. e.
|
||||
the process method has to do everything itself without any generic field support.
|
||||
This will be sufficient for implementing many services.
|
||||
The following are the minimum features required</p>
|
||||
<h3>Features Required for pvRecord</h3>
|
||||
<dl>
|
||||
<dt>PVDatabase</dt>
|
||||
<dd>This holds a set of PVRecords.
|
||||
@ -341,10 +287,17 @@ The following are the minimum features required</p>
|
||||
<dd>A client can request to be notified when data in the pvStructure
|
||||
is modified.
|
||||
It can do this on a field by field basis.</dd>
|
||||
<dt>A method named process</dt>
|
||||
<dd>
|
||||
<p>The process method is called when a pvAccess client requests that a record be processed.
|
||||
If a top level timeStamp field exists,
|
||||
the default process method just sets the timeStamp to the currect time.
|
||||
A service is created by implementing process and providing a top level PVStructure.
|
||||
</p>
|
||||
</dd>
|
||||
</dl>
|
||||
</dd>
|
||||
</dl>
|
||||
<p>The following sections describes the classes required for the first phase.</p>
|
||||
|
||||
<h2>Building pvDatabaseCPP</h2>
|
||||
<p>To build pvDatabaseCPP You must provide a file RELEASE.local
|
||||
|
2005
documentation/pvDatabaseCPP_20151023.html
Normal file
2005
documentation/pvDatabaseCPP_20151023.html
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user