/* 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
syntax highlighted by Code2HTML, v. 0.9.1