31 static const unsigned fdiToFdRegTypeNElements =
sizeof (fdiToFdRegType) /
sizeof (fdiToFdRegType[0]);
50 LIBCOM_API
virtual void callBack ();
52 fdRegForOldFdmgr & operator = (
const fdRegForOldFdmgr & );
63 LIBCOM_API
virtual ~timerForOldFdmgr ();
76 LIBCOM_API expireStatus expire (
const epicsTime &
currentTime );
77 timerForOldFdmgr (
const timerForOldFdmgr & );
78 timerForOldFdmgr & operator = (
const timerForOldFdmgr & );
95 # pragma warning ( push ) 96 # pragma warning ( disable:4660 ) 103 # pragma warning ( pop ) 108 const bool onceOnlyIn,
fdManager &managerIn,
110 fdReg (fdIn, typeIn, onceOnlyIn, managerIn),
111 pFunc (pFuncIn), pParam (pParamIn)
120 if (this->pFunc==
NULL) {
125 LIBCOM_API
void fdRegForOldFdmgr::callBack ()
127 (*this->pFunc) (this->pParam);
132 timer ( fdmgrIn.createTimer() ),
133 fdmgr ( fdmgrIn ), pFunc ( pFuncIn ), pParam( pParamIn )
135 if ( pFuncIn ==
NULL ) {
148 epicsTimerNotify::expireStatus timerForOldFdmgr::expire (
const epicsTime & )
150 (*this->pFunc) (this->pParam);
168 return (
fdctx *) pfdm;
174 double delay = ptimeout->tv_sec + ptimeout->tv_usec / static_cast <
const double> (
uSecPerSec);
186 (*pfdm, delay, pFunc, pParam);
193 id = pTimer->getId ();
215 pTimer = pfdm->resTbl.
remove (
id);
249 fdiType = (unsigned) fdi;
251 if (fdiType>=fdiToFdRegTypeNElements) {
256 pfdrbc =
new fdRegForOldFdmgr (fd, fdiToFdRegType[fdiType], onceOnly, *pfdm, pFunc, pParam);
282 pFDR = pfdm->
lookUpFD (fd, fdiToFdRegType[fdi]);
301 double delay = ptimeout->tv_sec + ptimeout->tv_usec / static_cast <
const double> (
uSecPerSec);
332 fdctx *pfdctx,
SOCKET fd,
void (*pfunc)(
void *pParam),
void *param)
virtual LIBCOM_API ~timerForOldFdmgr()
LIBCOM_API int epicsStdCall fdmgr_clear_fd(fdctx *pfdctx, SOCKET fd)
LIBCOM_API int epicsStdCall fdmgr_pend_event(fdctx *pfdctx, struct timeval *ptimeout)
void(* pCallBackFDMgr)(void *)
LIBCOM_API fdRegForOldFdmgr(const SOCKET fdIn, const fdRegType type, const bool onceOnly, fdManager &manager, pCallBackFDMgr pFunc, void *pParam)
An EPICS-specific replacement for ANSI C's assert.
pvd::StructureConstPtr type
const unsigned getId() const
LIBCOM_API fdmgrAlarmId epicsStdCall fdmgr_add_timeout(fdctx *pfdctx, struct timeval *ptimeout, pCallBackFDMgr pFunc, void *pParam)
LIBCOM_API int epicsStdCall fdmgr_delete(fdctx *pfdctx)
LIBCOM_API int epicsStdCall fdmgr_clear_timeout(fdctx *pfdctx, fdmgrAlarmId id)
LIBCOM_API class fdReg * lookUpFD(const SOCKET fd, const fdRegType type)
void idAssignAdd(ITEM &item)
LIBCOM_API timerForOldFdmgr(oldFdmgr &fdmgr, double delay, pCallBackFDMgr pFunc, void *pParam)
BSD and SRV5 Unix timestamp.
LIBCOM_API int epicsStdCall fdmgr_clear_callback(fdctx *pfdctx, SOCKET fd, enum fdi_type fdi)
LIBCOM_API void process(double delay)
T * remove(const ID &idIn)
fdReg(const SOCKET fdIn, const fdRegType type, const bool onceOnly=false, fdManager &manager=fileDescriptorManager)
LIBCOM_API int epicsStdCall fdmgr_add_callback(fdctx *pfdctx, SOCKET fd, enum fdi_type fdi, pCallBackFDMgr pFunc, void *pParam)
LIBCOM_API int epicsStdCall fdmgr_add_fd(fdctx *pfdctx, SOCKET fd, void(*pfunc)(void *pParam), void *param)
LIBCOM_API fdctx *epicsStdCall fdmgr_init(void)
const unsigned uSecPerSec
#define throwWithLocation(parm)
LIBCOM_API ~fdRegForOldFdmgr()
const unsigned mSecPerSec
void start(class epicsTimerNotify &, const epicsTime &)