⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gateasyncio.h

📁 EPICS CA gateway, base on channel access protocol
💻 H
字号:
/*************************************************************************\* Copyright (c) 2002 The University of Chicago, as Operator of Argonne* National Laboratory.* Copyright (c) 2002 Berliner Speicherring-Gesellschaft fuer Synchrotron-* Strahlung mbH (BESSY).* Copyright (c) 2002 The Regents of the University of California, as* Operator of Los Alamos National Laboratory.* This file is distributed subject to a Software License Agreement found* in the file LICENSE that is included with this distribution. \*************************************************************************/#ifndef _GATEASYNCIO_H_#define _GATEASYNCIO_H_/*+********************************************************************* * * File:       gateAsyncIO.h * Project:    CA Proxy Gateway * * Descr.:     Asynchronous Read / Write / pvExistTest * * Author(s):  J. Kowalkowski, J. Anderson, K. Evans (APS) *             R. Lange (BESSY) * *********************************************************************-*/#include "tsDLList.h"#include "casdef.h"class gateVcData;// ---------------------- async exist test pendingclass gateAsyncE : public casAsyncPVExistIO, public tsDLNode<gateAsyncE>{public:	gateAsyncE(const casCtx &ctx, tsDLList<gateAsyncE> *eioIn) :		casAsyncPVExistIO(ctx),eio(eioIn)	{}	virtual ~gateAsyncE(void);	void removeFromQueue(void) {		if(eio) {			eio->remove(*this);			eio=NULL;		}	}private:	tsDLList<gateAsyncE> *eio;};// ---------------------- async read pendingclass gateAsyncR : public casAsyncReadIO, public tsDLNode<gateAsyncR>{public:	gateAsyncR(const casCtx &ctx, gdd& ddIn, tsDLList<gateAsyncR> *rioIn) :		casAsyncReadIO(ctx),dd(ddIn),rio(rioIn)	{ dd.reference(); }	virtual ~gateAsyncR(void);	gdd& DD(void) const { return dd; }	void removeFromQueue(void) {		if(rio) {			rio->remove(*this);			rio=NULL;		}	}private:	gdd& dd;	tsDLList<gateAsyncR> *rio;};// ---------------------- async write pendingclass gateAsyncW : public casAsyncWriteIO, public tsDLNode<gateAsyncW>{public:	gateAsyncW(const casCtx &ctx, const gdd& ddIn, tsDLList<gateAsyncW> *wioIn) :	  casAsyncWriteIO(ctx),dd(ddIn),wio(wioIn)	  { dd.reference(); }	virtual ~gateAsyncW(void);	const gdd& DD(void) const { return dd; }	void removeFromQueue(void) {		if(wio) {			wio->remove(*this);			wio=NULL;		}	}private:	const gdd& dd;	tsDLList<gateAsyncW> *wio;};class gatePendingWrite : public casAsyncWriteIO{public:	gatePendingWrite(gateVcData &wowner, const casCtx &ctx, const gdd& wdd) :	  casAsyncWriteIO(ctx),	  owner(wowner),	  dd(wdd)	  { dd.reference(); }		virtual ~gatePendingWrite(void);		const gdd &DD(void) const { return dd; }private:	gateVcData &owner;	const gdd &dd;};#endif/* **************************** Emacs Editing Sequences ***************** *//* Local Variables: *//* tab-width: 4 *//* c-basic-offset: 4 *//* c-comment-only-line-offset: 0 *//* c-file-offsets: ((substatement-open . 0) (label . 0)) *//* End: */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -