update release notes
This commit is contained in:
+29
-29
@@ -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;
|
||||
|
||||
@@ -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>
|
||||
{
|
||||
|
||||
@@ -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; }
|
||||
};
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user