/* Web Polygraph http://www.web-polygraph.org/ * (C) 2003-2006 The Measurement Factory * Licensed under the Apache License, Version 2.0 */ #ifndef POLYGRAPH__CLIENT_CLTXACTMGR_H #define POLYGRAPH__CLIENT_CLTXACTMGR_H #include "xstd/FileScanner.h" class CltXact; class Connection; // interface for managing of CltXact actions that may depend on other CltXacts // essential for supporting pipelined messages "transparently" to CltXact class CltXactMgr: public FileScanUser { public: CltXactMgr(): useLevel(0) {} virtual ~CltXactMgr() {} virtual void reset() { useLevel = 0; } virtual void control(CltXact *x) = 0; // start filling,writing,reading virtual void rewind(CltXact *x) = 0; // restart filling,writing,reading virtual void noteAbort(CltXact *x) = 0; virtual void noteDone(CltXact *x) = 0; virtual void noteLastXaction(CltXact *x) = 0; // conn is closing virtual void noteReadReady(int fd) = 0; virtual void noteWriteReady(int fd) = 0; virtual Connection *conn() = 0; public: int useLevel; protected: Size theWrSize; }; #endif