⛏️ index : haiku.git

// RequestBufferReplacer.h

#ifndef NET_FS_REQUEST_BUFFER_REPLACER_H
#define NET_FS_REQUEST_BUFFER_REPLACER_H

#include "Request.h"

class RequestBufferReplacer : private RequestMemberVisitor {
public:
								RequestBufferReplacer();
								~RequestBufferReplacer();

			status_t			ReplaceBuffer(Request* request);

private:
	virtual	void				Visit(RequestMember* member, bool& data);
	virtual	void				Visit(RequestMember* member, int8& data);
	virtual	void				Visit(RequestMember* member, uint8& data);
	virtual	void				Visit(RequestMember* member, int16& data);
	virtual	void				Visit(RequestMember* member, uint16& data);
	virtual	void				Visit(RequestMember* member, int32& data);
	virtual	void				Visit(RequestMember* member, uint32& data);
	virtual	void				Visit(RequestMember* member, int64& data);
	virtual	void				Visit(RequestMember* member, uint64& data);
	virtual	void				Visit(RequestMember* member, Data& data);
	virtual	void				Visit(RequestMember* member, StringData& data);
	virtual	void				Visit(RequestMember* member,
									RequestMember& subMember);
	virtual	void				Visit(RequestMember* member,
									FlattenableRequestMember& subMember);

private:
			char*				fBuffer;
			int32				fBufferSize;
};

#endif	// NET_FS_REQUEST_BUFFER_REPLACER_H