7 #ifndef CHANNELSEARCHMANAGER_H 8 #define CHANNELSEARCHMANAGER_H 10 #ifdef epicsExportSharedSymbols 11 # define channelSearchManagerEpicsExportSharedSymbols 12 # undef epicsExportSharedSymbols 17 #ifdef channelSearchManagerEpicsExportSharedSymbols 18 # define epicsExportSharedSymbols 19 # undef channelSearchManagerEpicsExportSharedSymbols 56 public std::tr1::enable_shared_from_this<ChannelSearchManager>
70 int32_t registeredCount();
75 void registerSearchInstance(SearchInstance::shared_pointer
const & channel,
bool penalize =
false);
80 void unregisterSearchInstance(SearchInstance::shared_pointer
const & channel);
94 void newServerDetected();
111 bool generateSearchRequestMessage(SearchInstance::shared_pointer
const & channel,
bool allowNewFrame,
bool flush);
113 static bool generateSearchRequestMessage(SearchInstance::shared_pointer
const & channel,
118 void initializeSendBuffer();
119 void flushSendBuffer();
121 static bool isPowerOfTwo(int32_t x);
126 Context::weak_pointer m_context;
141 int32_t m_sequenceNumber;
151 typedef std::map<pvAccessID,SearchInstance::weak_pointer> m_channels_t;
152 m_channels_t m_channels;
157 int64_t m_lastTimeSent;
virtual int32_t & getUserValue()=0
virtual void searchResponse(const ServerGUID &guid, int8_t minorRevision, osiSockAddr *serverAddress)=0
Class that must be implemented by code that makes Timer requests.
TODO only here because of the Lockable.
virtual pvAccessID getSearchInstanceID()=0
This class implements a Bytebuffer that is like the java.nio.ByteBuffer.
virtual const std::string & getSearchInstanceName()=0
POINTER_DEFINITIONS(SearchInstance)
virtual ~SearchInstance()