From c5f33a7475bc42e8f371a5631e65d1fe03c9a040 Mon Sep 17 00:00:00 2001 From: Jeff Hill Date: Fri, 6 Oct 2000 00:14:00 +0000 Subject: [PATCH] allowed acces to the chid from the evid --- src/ca/access.cpp | 5 +++++ src/ca/acctst.c | 3 ++- src/ca/cac.cpp | 2 +- src/ca/cadef.h | 4 +++- src/ca/oldAccess.h | 1 + src/ca/oldSubscription.cpp | 5 +++++ 6 files changed, 17 insertions(+), 3 deletions(-) diff --git a/src/ca/access.cpp b/src/ca/access.cpp index 56a66635a..378071bf8 100644 --- a/src/ca/access.cpp +++ b/src/ca/access.cpp @@ -422,6 +422,11 @@ int epicsShareAPI ca_clear_event ( evid pMon ) return ECA_NORMAL; } +chid epicsShareAPI ca_evid_to_chid ( evid pMon ) +{ + return & pMon->channel (); +} + /* * ca_clear_channel () */ diff --git a/src/ca/acctst.c b/src/ca/acctst.c index 016c10d0d..354d7a8f6 100644 --- a/src/ca/acctst.c +++ b/src/ca/acctst.c @@ -1261,7 +1261,7 @@ void caTaskExistTest () printf ( "in ca_task_exit() for %f sec\n", delay ); } -verifyDataTypeMacros () +void verifyDataTypeMacros () { short type; @@ -1314,6 +1314,7 @@ int acctst ( char *pName, unsigned channelCount, unsigned repetitionCount ) status = ca_search ( pName, &chan ); SEVCHK ( status, NULL ); + assert ( strcmp ( pName, ca_name (chan) ) == 0 ); status = ca_pend_io ( 100.0 ); SEVCHK ( status, NULL ); diff --git a/src/ca/cac.cpp b/src/ca/cac.cpp index 80a6c7bf8..77c4dba64 100644 --- a/src/ca/cac.cpp +++ b/src/ca/cac.cpp @@ -479,7 +479,7 @@ void cac::beaconNotify ( const inetAddrID &addr ) status = getsockname ( this->pudpiiu->getSock (), (struct sockaddr *) &saddr, &saddr_length ); if ( status < 0 ) { - epicsPrintf ( "CAC: getsockname () error was \"%s\"\n", SOCKERRSTR (SOCKERRNO) ); + this->printf ( "CAC: getsockname () error was \"%s\"\n", SOCKERRSTR (SOCKERRNO) ); this->defaultMutex.unlock (); return; } diff --git a/src/ca/cadef.h b/src/ca/cadef.h index 4ec01c1f4..b7d1b5fc3 100644 --- a/src/ca/cadef.h +++ b/src/ca/cadef.h @@ -574,6 +574,8 @@ epicsShareFunc int epicsShareAPI ca_add_masked_array_event long mask ); +epicsShareFunc chid epicsShareAPI ca_evid_to_chid ( evid id ); + /************************************************************************/ /* Remove a function from a list of those specified to run */ /* whenever significant changes occur to a channel */ @@ -952,7 +954,7 @@ epicsShareFunc int epicsShareAPI ca_import_cancel (threadId tid); #else /* CAC_ANSI_FUNC_PROTO */ epicsShareFunc short epicsShareAPI ca_get_field_type (); epicsShareFunc unsigned long epicsShareAPI ca_element_count (); -epicsShareFunc char * epicsShareAPI ca_name (chid chan); +epicsShareFunc char * epicsShareAPI ca_name (); epicsShareFunc enum channel_state epicsShareAPI ca_state (); epicsShareFunc void epicsShareAPI ca_set_puser (); epicsShareFunc void epicsShareAPI ca_get_puser (); diff --git a/src/ca/oldAccess.h b/src/ca/oldAccess.h index 251500a80..cc1724ae5 100644 --- a/src/ca/oldAccess.h +++ b/src/ca/oldAccess.h @@ -87,6 +87,7 @@ struct oldSubscription : public cacNotify { public: oldSubscription ( oldChannel &chan, caEventCallBackFunc *pFunc, void *pPrivate ); void destroy (); + oldChannel &channel (); void * operator new ( size_t size ); void operator delete ( void *pCadaver, size_t size ); diff --git a/src/ca/oldSubscription.cpp b/src/ca/oldSubscription.cpp index bec8af7b1..febe09801 100644 --- a/src/ca/oldSubscription.cpp +++ b/src/ca/oldSubscription.cpp @@ -24,6 +24,11 @@ oldSubscription::~oldSubscription () { } +oldChannel &oldSubscription::channel () +{ + return this->chan; +} + void oldSubscription::completionNotify (unsigned type, unsigned long count, const void *pData) { struct event_handler_args args;