Files
pcas/src/ca/netiiu.h
2003-02-24 16:05:22 +00:00

73 lines
2.8 KiB
C++

/*************************************************************************\
* Copyright (c) 2002 The University of Chicago, as Operator of Argonne
* National Laboratory.
* Copyright (c) 2002 The Regents of the University of California, as
* Operator of Los Alamos National Laboratory.
* EPICS BASE Versions 3.13.7
* and higher are distributed subject to a Software License Agreement found
* in file LICENSE that is included with this distribution.
\*************************************************************************/
/*
* $Id$
*
*
* L O S A L A M O S
* Los Alamos National Laboratory
* Los Alamos, New Mexico 87545
*
* Copyright, 1986, The Regents of the University of California.
*
*
* Author Jeffrey O. Hill
* johill@lanl.gov
* 505 665 1831
*/
#ifndef netiiuh
#define netiiuh
#include "tsDLList.h"
#include "nciu.h"
class netWriteNotifyIO;
class netReadNotifyIO;
class netSubscription;
class cacMutex;
union osiSockAddr;
class cac;
class callbackMutex;
class netiiu {
public:
virtual ~netiiu ();
virtual void hostName ( char *pBuf, unsigned bufLength ) const = 0;
virtual const char * pHostName () const = 0; // deprecated - please do not use
virtual bool ca_v42_ok () const = 0;
virtual void writeRequest ( epicsGuard < cacMutex > &, nciu &,
unsigned type, unsigned nElem, const void *pValue ) = 0;
virtual void writeNotifyRequest ( epicsGuard < cacMutex > &,
nciu &, netWriteNotifyIO &,
unsigned type, unsigned nElem, const void *pValue ) = 0;
virtual void readNotifyRequest ( epicsGuard < cacMutex > &, nciu &,
netReadNotifyIO &, unsigned type, unsigned nElem ) = 0;
virtual void clearChannelRequest ( epicsGuard < cacMutex > &,
ca_uint32_t sid, ca_uint32_t cid ) = 0;
virtual void subscriptionRequest ( epicsGuard < cacMutex > &,
nciu &, netSubscription &subscr ) = 0;
virtual void subscriptionCancelRequest ( epicsGuard < cacMutex > &,
nciu & chan, netSubscription & subscr ) = 0;
virtual void flushRequest () = 0;
virtual bool flushBlockThreshold ( epicsGuard < cacMutex > & ) const = 0;
virtual void flushRequestIfAboveEarlyThreshold ( epicsGuard < cacMutex > & ) = 0;
virtual void blockUntilSendBacklogIsReasonable
( cacNotify &, epicsGuard < cacMutex > & ) = 0;
virtual void requestRecvProcessPostponedFlush () = 0;
virtual osiSockAddr getNetworkAddress () const = 0;
virtual void uninstallChan ( epicsGuard < cacMutex > &, nciu & ) = 0;
virtual double receiveWatchdogDelay () const = 0;
};
#endif // netiiuh