1 #ifndef SERVERCONTEXTIMPL_H 2 #define SERVERCONTEXTIMPL_H 4 #ifdef epicsExportSharedSymbols 5 # define serverContextImplEpicsExportSharedSymbols 6 # undef epicsExportSharedSymbols 11 #ifdef serverContextImplEpicsExportSharedSymbols 12 # define epicsExportSharedSymbols 13 # undef serverContextImplEpicsExportSharedSymbols 16 #include <pv/blockingUDP.h> 17 #include <pv/blockingTCP.h> 18 #include <pv/beaconEmitter.h> 25 class ServerContextImpl :
28 public std::tr1::enable_shared_from_this<ServerContextImpl>
30 friend class ServerContext;
32 typedef std::tr1::shared_ptr<ServerContextImpl> shared_pointer;
33 typedef std::tr1::shared_ptr<
const ServerContextImpl> const_shared_pointer;
35 static size_t num_instances;
38 virtual ~ServerContextImpl();
47 void setBeaconServerStatusProvider(BeaconServerStatusProvider::shared_pointer
const & beaconServerStatusProvider)
OVERRIDE FINAL;
49 epics::pvData::Timer::shared_pointer getTimer()
OVERRIDE FINAL;
50 Channel::shared_pointer getChannel(pvAccessID id)
OVERRIDE FINAL;
51 Transport::shared_pointer getSearchTransport()
OVERRIDE FINAL;
52 Configuration::const_shared_pointer getConfiguration()
OVERRIDE FINAL;
60 virtual Configuration::shared_pointer getCurrentConfig()
OVERRIDE FINAL;
65 static const Version VERSION;
71 float getBeaconPeriod();
77 epics::pvData::int32 getReceiveBufferSize();
95 BeaconServerStatusProvider::shared_pointer getBeaconServerStatusProvider();
101 const osiSockAddr *getServerInetAddress();
107 const BlockingUDPTransport::shared_pointer& getBroadcastTransport();
113 virtual const std::vector<ChannelProvider::shared_pointer>& getChannelProviders()
OVERRIDE FINAL;
119 bool isChannelProviderNamePreconfigured();
122 typedef std::map<std::string, std::tr1::weak_ptr<ChannelProvider> > s_channelNameToProvider_t;
123 s_channelNameToProvider_t s_channelNameToProvider;
135 std::string _beaconAddressList;
140 IfaceNodeVector _ifaceList;
142 osiSockAddr _ifaceAddr;
148 std::string _ignoreAddressList;
153 bool _autoBeaconAddressList;
163 epics::pvData::int32 _broadcastPort;
168 epics::pvData::int32 _serverPort;
173 epics::pvData::int32 _receiveBufferSize;
175 epics::pvData::Timer::shared_pointer _timer;
180 BlockingUDPTransportVector _udpTransports;
185 BlockingUDPTransport::shared_pointer _broadcastTransport;
187 BeaconEmitter::shared_pointer _beaconEmitter;
192 BlockingTCPAcceptor::shared_pointer _acceptor;
198 TransportRegistry _transportRegistry;
200 ResponseHandler::shared_pointer _responseHandler;
203 std::vector<ChannelProvider::shared_pointer> _channelProviders;
206 epics::pvData::Mutex _mutex;
209 epics::pvData::Event _runEvent;
214 BeaconServerStatusProvider::shared_pointer _beaconServerStatusProvider;
218 void loadConfiguration();
220 Configuration::const_shared_pointer configuration;
222 epicsTimeStamp _startTime;
virtual void authNZMessage(epics::pvData::PVStructure::shared_pointer const &data)=0
Pass data to the active security plug-in session.
#define FINAL
Copyright - See the COPYRIGHT that is included with this distribution.