update release notes

This commit is contained in:
Michael Davidsaver
2017-07-18 19:06:55 +02:00
parent ae501327cd
commit 937fb154c1
7 changed files with 89 additions and 39 deletions
+29 -29
View File
@@ -61,35 +61,6 @@ public:
InUse //!< data valid. Owned by MonitorRequester. Waiting for Monitor::release()
} state;
/** A smart pointer to extract a MonitorElement from a Monitor queue
*
* To fetch a single element
@code
epics::pvAccess::Monitor::shared_pointer mon(....);
epics::pvAccess::MonitorElement::Ref elem(mon);
if(elem) {
// do something with element
assert(elem->pvStructurePtr->getSubField("foo"));
} else {
// queue was empty
}
@endcode
* To fetch all available elements (c++11)
@code
epics::pvAccess::Monitor::shared_pointer mon(....);
for(auto& elem : *mon) {
assert(elem.pvStructurePtr->getSubField("foo"));
}
@endcode
* To fetch all available elements (c++98)
@code
epics::pvAccess::Monitor::shared_pointer mon(....);
for(epics::pvAccess::MonitorElement::Ref it(mon); it; ++it) {
MonitorElement& elem(*it);
assert(elem.pvStructurePtr->getSubField("foo"));
}
@endcode
*/
class Ref;
};
@@ -145,6 +116,35 @@ class epicsShareClass Monitor : public virtual Destroyable{
virtual void reportRemoteQueueStatus(epics::pvData::int32 freeElements) {}
};
/** A smart pointer to extract a MonitorElement from a Monitor queue
*
* To fetch a single element
@code
epics::pvAccess::Monitor::shared_pointer mon(....);
epics::pvAccess::MonitorElement::Ref elem(mon);
if(elem) {
// do something with element
assert(elem->pvStructurePtr->getSubField("foo"));
} else {
// queue was empty
}
@endcode
* To fetch all available elements (c++11)
@code
epics::pvAccess::Monitor::shared_pointer mon(....);
for(auto& elem : *mon) {
assert(elem.pvStructurePtr->getSubField("foo"));
}
@endcode
* To fetch all available elements (c++98)
@code
epics::pvAccess::Monitor::shared_pointer mon(....);
for(epics::pvAccess::MonitorElement::Ref it(mon); it; ++it) {
MonitorElement& elem(*it);
assert(elem.pvStructurePtr->getSubField("foo"));
}
@endcode
*/
class MonitorElement::Ref
{
Monitor* mon;
+1
View File
@@ -31,6 +31,7 @@ namespace pvAccess {
class ServerContext;
class RPCChannelProvider;
//! Serves (only) RPCServiceAsync and RPCService instances.
class epicsShareClass RPCServer :
public std::tr1::enable_shared_from_this<RPCServer>
{
+4
View File
@@ -102,14 +102,18 @@ public:
*/
virtual void setBeaconServerStatusProvider(BeaconServerStatusProvider::shared_pointer const & beaconServerStatusProvider) = 0;
//! Options for a server insatnce
class Config {
friend class ServerContext;
Configuration::const_shared_pointer _conf;
std::vector<ChannelProvider::shared_pointer> _providers;
public:
Config() {}
//! Use specific configuration. Default is process environment
Config& config(const Configuration::const_shared_pointer& c) { _conf = c; return *this; }
//! Attach many providers.
Config& providers(const std::vector<ChannelProvider::shared_pointer>& p) { _providers = p; return *this; }
//! short hand for providers() with a length 1 vector.
Config& provider(const ChannelProvider::shared_pointer& p) { _providers.push_back(p); return *this; }
};
+5 -6
View File
@@ -20,8 +20,6 @@ namespace epics { namespace pvAccess {
/**
* @brief Instance declaring destroy method.
*
* @author mse
*/
class epicsShareClass Destroyable {
public:
@@ -32,10 +30,7 @@ namespace epics { namespace pvAccess {
virtual void destroy() = 0;
protected:
/**
* Do not allow delete on this instance and derived classes, destroy() must be used instead.
*/
virtual ~Destroyable() {};
virtual ~Destroyable() {}
public:
/** for use with shared_ptr<> when wrapping
@@ -44,6 +39,10 @@ namespace epics { namespace pvAccess {
shared_ptr<foo> inner(new foo),
outer(inner.get, Destroyable::cleaner(inner));
@endcode
@warning Do not use this trick in combination with enable_shared_from_this
as it is _undefined_ whether the hidden weak_ptr will be the original
or wrapped reference.
*/
class cleaner {
Destroyable::shared_pointer ptr;