pvAccessCPP  7.1.6
beaconServerStatusProvider.h
1 /**
2  * Copyright - See the COPYRIGHT that is included with this distribution.
3  * pvAccessCPP is distributed subject to a Software License Agreement found
4  * in file LICENSE that is included with this distribution.
5  */
6 
7 #ifndef BEACONSERVERSTATUSPROVIDER_H
8 #define BEACONSERVERSTATUSPROVIDER_H
9 
10 #ifdef epicsExportSharedSymbols
11 # define beaconServerStatusProviderEpicsExportSharedSymbols
12 # undef epicsExportSharedSymbols
13 #endif
14 
15 #include <pv/pvData.h>
16 #include <pv/sharedPtr.h>
17 
18 #ifdef beaconServerStatusProviderEpicsExportSharedSymbols
19 # define epicsExportSharedSymbols
20 # undef beaconServerStatusProviderEpicsExportSharedSymbols
21 #endif
22 
23 #include <shareLib.h>
24 
25 namespace epics {
26 namespace pvAccess {
27 
28 class ServerContext;
29 
30 /**
31  * BeaconServerStatusProvider
32  */
33 class epicsShareClass BeaconServerStatusProvider
34 {
35 public:
36  typedef std::tr1::shared_ptr<BeaconServerStatusProvider> shared_pointer;
37  typedef std::tr1::shared_ptr<const BeaconServerStatusProvider> const_shared_pointer;
38 
39  virtual ~BeaconServerStatusProvider() {};
40 
41  /**
42  * Gets server status data.
43  */
44  virtual epics::pvData::PVField::shared_pointer getServerStatusData() = 0;
45 };
46 
47 /**
48  * DefaultBeaconServerStatusProvider
49  */
50 class epicsShareClass DefaultBeaconServerStatusProvider : public BeaconServerStatusProvider
51 {
52 public:
53  /**
54  * Constructor.
55  * @param context PVA context.
56  */
57 // DefaultBeaconServerStatusProvider(ServerContext::shared_pointer const & context);
58  DefaultBeaconServerStatusProvider(std::tr1::shared_ptr<ServerContext> const & context);
59  /**
60  * Destructor.
61  */
62  virtual ~DefaultBeaconServerStatusProvider();
63 
64  virtual epics::pvData::PVField::shared_pointer getServerStatusData();
65 
66 private:
67  epics::pvData::PVStructure::shared_pointer _status;
68 };
69 
70 }
71 }
72 
73 #endif /* BEACONSERVERSTATUSPROVIDER_H */