1 #include <rms/provider/EpicsMessenger.h> 26 messengerData = (
char *)eventHandlerArgs.dbr;
41 struct ca_client_context *caContext,
56 if (result != ECA_NORMAL) {
57 std::cout <<
"Failed to connect to " << pvName;
90 std::vector <MessageFragment *> fragments;
104 for (
unsigned int i = 0;
i < fragments.size();
i++) {
105 fragments[
i]->getBytes(&fragment, &size);
106 ca_array_put(DBR_CHAR, size,
_pvChannel, fragment);
123 ca_create_subscription(DBR_CHAR, 0,
_pvChannel, DBE_VALUE,
145 std::vector <ProviderListener *>::iterator
i;
150 if (*i == listener) {
165 std::vector <MessageAssembler *>::iterator
i;
171 if ((*i)->addFragment(fragment)) {
172 if ((*i)->hasCompleteMessage()) {
220 std::vector <MessageAssembler *>::iterator assemblerIterator;
237 delete *assemblerIterator;
static const double _PEND_OP_TIMEOUT
void epicsShareAPI ca_detach_context()
EpicsMessenger(std::string pvName, struct ca_client_context *caContext, int maxSize, util::UUIDGenerator *uuidGenerator)
bool hasCompleteMessage() const
void monitorChanged(char *data)
std::vector< ProviderListener * > _listenerList
std::vector< MessageAssembler * > _assemblerList
const XML_Char const XML_Char * data
std::string getMessage() const
void removeListener(ProviderListener *listener)
void addListener(ProviderListener *listener)
util::UUIDGenerator * _uuidGenerator
static std::vector< MessageFragment * > splitMessage(std::string messageText, int maxFragmentSize, const char *uuid)
void sendMessage(const std::string &messageText)
static void EpicsMessengerCallback(struct event_handler_args eventHandlerArgs)
std::string getName() const
void notifyListeners(std::string messageText)
struct ca_client_context * _caContext