This is Unofficial EPICS BASE Doxygen Site
epics::pvAccess::ServerContext Class Referenceabstract

#include "serverContext.h"

+ Inheritance diagram for epics::pvAccess::ServerContext:

Classes

class  Config
 Options for a server insatnce. More...
 

Public Member Functions

 POINTER_DEFINITIONS (ServerContext)
 
virtual ~ServerContext ()
 
virtual const ServerGUIDgetGUID ()=0
 
virtual const VersiongetVersion ()=0
 
virtual void run (epics::pvData::uint32 seconds)=0
 
virtual void shutdown ()=0
 
void printInfo (int lvl=0)
 
virtual void printInfo (std::ostream &str, int lvl=0)=0
 
virtual epicsTimeStampgetStartTime ()=0
 
virtual epics::pvData::int32 getServerPort ()=0
 
virtual epics::pvData::int32 getBroadcastPort ()=0
 
virtual Configuration::shared_pointer getCurrentConfig ()=0
 
virtual const std::vector< ChannelProvider::shared_pointer > & getChannelProviders ()=0
 
virtual void setBeaconServerStatusProvider (BeaconServerStatusProvider::shared_pointer const &beaconServerStatusProvider)=0
 

Static Public Member Functions

static ServerContext::shared_pointer create (const Config &conf=Config())
 

Detailed Description

The class representing a PVA Server context.

Definition at line 27 of file serverContext.h.

Constructor & Destructor Documentation

virtual epics::pvAccess::ServerContext::~ServerContext ( )
inlinevirtual

Destructor

Definition at line 35 of file serverContext.h.

35 {};

Member Function Documentation

ServerContext::shared_pointer epics::pvAccess::ServerContext::create ( const Config conf = Config())
static

Start a new PVA server

By default the server will select ChannelProviders using the EPICS_PVAS_PROVIDER_NAMES Configuration key.

If a list of provided is given with Config::providers() then this overrides any Configuration.

If a specific Configuration is given with Config::config() then this overrides the default Configuration.

Returns
shared_ptr<ServerContext> which will automatically shutdown() when the last reference is released.

Definition at line 578 of file serverContext.cpp.

579 {
580  ServerContextImpl::shared_pointer ret(new ServerContextImpl());
581  ret->configuration = conf._conf;
582  ret->_channelProviders = conf._providers;
583 
584  if (!ret->configuration)
585  {
586  ConfigurationProvider::shared_pointer configurationProvider = ConfigurationFactory::getProvider();
587  ret->configuration = configurationProvider->getConfiguration("pvAccess-server");
588  if (!ret->configuration)
589  {
590  ret->configuration = configurationProvider->getConfiguration("system");
591  }
592  }
593  if(!ret->configuration) {
594  ret->configuration = ConfigurationBuilder().push_env().build();
595  }
596 
597  ret->loadConfiguration();
598  ret->initialize();
599 
600  // wrap the returned shared_ptr so that it's dtor calls ->shutdown() to break internal referance loops
601  {
602  ServerContextImpl::shared_pointer wrapper(ret.get(), shutdown_dtor(ret));
603  wrapper.swap(ret);
604  }
605 
606  return ret;
607 }
static ConfigurationProvider::shared_pointer getProvider()
ConfigurationProvider::shared_pointer configurationProvider
std::tr1::shared_ptr< ServerContextImpl > shared_pointer
virtual epics::pvData::int32 epics::pvAccess::ServerContext::getBroadcastPort ( )
pure virtual

Get broadcast port.

Returns
broadcast port.

Implemented in epics::pvAccess::ServerContextImpl.

virtual const std::vector<ChannelProvider::shared_pointer>& epics::pvAccess::ServerContext::getChannelProviders ( )
pure virtual
virtual Configuration::shared_pointer epics::pvAccess::ServerContext::getCurrentConfig ( )
pure virtual

Return a Configuration with the actual values being used, including defaults used, and bounds limits applied.

Implemented in epics::pvAccess::ServerContextImpl.

virtual const ServerGUID& epics::pvAccess::ServerContext::getGUID ( )
pure virtual

Returns GUID (12-byte array).

Returns
GUID.

Implemented in epics::pvAccess::ServerContextImpl.

virtual epics::pvData::int32 epics::pvAccess::ServerContext::getServerPort ( )
pure virtual

Get server port.

Returns
server port.

Implemented in epics::pvAccess::ServerContextImpl.

virtual epicsTimeStamp& epics::pvAccess::ServerContext::getStartTime ( )
pure virtual
virtual const Version& epics::pvAccess::ServerContext::getVersion ( )
pure virtual

Get context implementation version.

Returns
version of the context implementation.

Implemented in epics::pvAccess::ServerContextImpl.

epics::pvAccess::ServerContext::POINTER_DEFINITIONS ( ServerContext  )
void epics::pvAccess::ServerContext::printInfo ( int  lvl = 0)

Prints detailed information about the context to the standard output stream.

Definition at line 364 of file serverContext.cpp.

365 {
366  printInfo(cout, lvl);
367 }
virtual void epics::pvAccess::ServerContext::printInfo ( std::ostream &  str,
int  lvl = 0 
)
pure virtual

Prints detailed information about the context to the specified output stream.

Parameters
lvldetail level
strstream to which to print the info

Implemented in epics::pvAccess::ServerContextImpl.

virtual void epics::pvAccess::ServerContext::run ( epics::pvData::uint32  seconds)
pure virtual

Run server (process events).

Parameters
secondstime in seconds the server will process events (method will block), if 0 the method would block until destroy() is called.
Exceptions
BaseExceptionif server is already destroyed.

Implemented in epics::pvAccess::ServerContextImpl.

virtual void epics::pvAccess::ServerContext::setBeaconServerStatusProvider ( BeaconServerStatusProvider::shared_pointer const &  beaconServerStatusProvider)
pure virtual

Set beacon server status provider.

Parameters
beaconServerStatusProviderBeaconServerStatusProvider implementation to set.

Implemented in epics::pvAccess::ServerContextImpl.

virtual void epics::pvAccess::ServerContext::shutdown ( )
pure virtual

The documentation for this class was generated from the following files: