/* Web Polygraph       http://www.web-polygraph.org/
 * (C) 2003-2006 The Measurement Factory
 * Licensed under the Apache License, Version 2.0 */

#ifndef POLYGRAPH__PROXY_PXYSRVXACT_H
#define POLYGRAPH__PROXY_PXYSRVXACT_H

#include "server/SrvXact.h"
#include "cache/Cache.h"

class PxySrvXact: public SrvXact, public CacheReader {
	public:
		PxySrvXact() { PxySrvXact::reset(); }
		virtual void reset();

		virtual void noteWriteReady(int fd);
		virtual void noteWriterLeft();
		virtual void noteCacheReady();
		virtual const ReqHdr *origReqHdrs() const;

	protected:
		virtual Size put200OkHead(ostream &os);
		virtual Error setTarget(const NetAddr &target);
		virtual void newState(State aState);

		Size put200OkHit(ostream &os);
		Size put200OkMiss(ostream &os);

	protected:
		bool waitForCache;
};

#endif



syntax highlighted by Code2HTML, v. 0.9.1