// Requests.h
 
#ifndef NET_FS_REQUESTS_H
#define NET_FS_REQUESTS_H
 
#include "AttrDirInfo.h"
#include "Compatibility.h"
#include "DebugSupport.h"
#include "EntryInfo.h"
#include "NodeInfo.h"
#include "Request.h"
#include "RequestMemberArray.h"
#include "ServerInfo.h"
#include "ServerNodeID.h"
 
// request types
enum {
	CONNECTION_BROKEN_REQUEST	= -1,
	INIT_CONNECTION_REQUEST		= 0,
	INIT_CONNECTION_REPLY,
 
	MOUNT_REQUEST,
	MOUNT_REPLY,
	UNMOUNT_REQUEST,
	READ_VNODE_REQUEST,
	READ_VNODE_REPLY,
	WRITE_STAT_REQUEST,
	WRITE_STAT_REPLY,
	CREATE_FILE_REQUEST,
	CREATE_FILE_REPLY,
	OPEN_REQUEST,
	OPEN_REPLY,
	CLOSE_REQUEST,	// common for all kinds of cookies
	CLOSE_REPLY,
	READ_REQUEST,
	READ_REPLY,
	WRITE_REQUEST,
	WRITE_REPLY,
	CREATE_LINK_REQUEST,
	CREATE_LINK_REPLY,
	UNLINK_REQUEST,
	UNLINK_REPLY,
	CREATE_SYMLINK_REQUEST,
	CREATE_SYMLINK_REPLY,
	READ_LINK_REQUEST,
	READ_LINK_REPLY,
	RENAME_REQUEST,
	RENAME_REPLY,
	MAKE_DIR_REQUEST,
	MAKE_DIR_REPLY,
	REMOVE_DIR_REQUEST,
	REMOVE_DIR_REPLY,
	OPEN_DIR_REQUEST,
	OPEN_DIR_REPLY,
	READ_DIR_REQUEST,
	READ_DIR_REPLY,
	WALK_REQUEST,
	WALK_REPLY,
	MULTI_WALK_REQUEST,
	MULTI_WALK_REPLY,
 
	OPEN_ATTR_DIR_REQUEST,
	OPEN_ATTR_DIR_REPLY,
	READ_ATTR_DIR_REQUEST,
	READ_ATTR_DIR_REPLY,
	READ_ATTR_REQUEST,
	READ_ATTR_REPLY,
	WRITE_ATTR_REQUEST,
	WRITE_ATTR_REPLY,
	REMOVE_ATTR_REQUEST,
	REMOVE_ATTR_REPLY,
	RENAME_ATTR_REQUEST,
	RENAME_ATTR_REPLY,
	STAT_ATTR_REQUEST,
	STAT_ATTR_REPLY,
 
	OPEN_QUERY_REQUEST,
	OPEN_QUERY_REPLY,
	READ_QUERY_REQUEST,
	READ_QUERY_REPLY,
 
	// node monitoring notifications
	ENTRY_CREATED_REQUEST,
	ENTRY_REMOVED_REQUEST,
	ENTRY_MOVED_REQUEST,
	ENTRY_STAT_CHANGED_REQUEST,
	ENTRY_ATTRIBUTE_CHANGED_REQUEST,
 
	// server info
	SERVER_INFO_REQUEST,
};
 
struct ConnectionBrokenRequest;
struct InitConnectionRequest;
struct InitConnectionReply;
 
struct MountRequest;
struct MountReply;
struct UnmountRequest;
struct ReadVNodeRequest;
struct ReadVNodeReply;
struct WriteStatRequest;
struct WriteStatReply;
struct CreateFileRequest;
struct CreateFileReply;
struct OpenRequest;
struct OpenReply;
struct CloseRequest;
struct CloseReply;
struct ReadRequest;
struct ReadReply;
struct WriteRequest;
struct WriteReply;
struct CreateLinkRequest;
struct CreateLinkReply;
struct UnlinkRequest;
struct UnlinkReply;
struct CreateSymlinkRequest;
struct CreateSymlinkReply;
struct ReadLinkRequest;
struct ReadLinkReply;
struct RenameRequest;
struct RenameReply;
struct RemoveDirRequest;
struct RemoveDirReply;
struct MakeDirRequest;
struct MakeDirReply;
struct OpenDirRequest;
struct OpenDirReply;
struct ReadDirRequest;
struct ReadDirReply;
struct WalkRequest;
struct WalkReply;
struct MultiWalkRequest;
struct MultiWalkReply;
 
struct OpenAttrDirRequest;
struct OpenAttrDirReply;
struct ReadAttrDirRequest;
struct ReadAttrDirReply;
struct ReadAttrRequest;
struct ReadAttrReply;
struct WriteAttrRequest;
struct WriteAttrReply;
struct RemoveAttrRequest;
struct RemoveAttrReply;
struct RenameAttrRequest;
struct RenameAttrReply;
struct StatAttrRequest;
struct StatAttrReply;
 
struct OpenQueryRequest;
struct OpenQueryReply;
struct ReadQueryRequest;
struct ReadQueryReply;
 
struct NodeMonitoringRequest;
struct EntryCreatedRequest;
struct EntryRemovedRequest;
struct EntryMovedRequest;
struct StatChangedRequest;
struct AttributeChangedRequest;
 
struct ServerInfoRequest;
 
// RequestVisitor
class RequestVisitor {
public:
								RequestVisitor();
	virtual						~RequestVisitor();
 
	virtual	status_t			VisitConnectionBrokenRequest(
									ConnectionBrokenRequest* request);
	virtual	status_t			VisitInitConnectionRequest(
									InitConnectionRequest* request);
	virtual	status_t			VisitInitConnectionReply(
									InitConnectionReply* request);
 
	virtual	status_t			VisitMountRequest(MountRequest* request);
	virtual	status_t			VisitMountReply(MountReply* request);
	virtual	status_t			VisitUnmountRequest(UnmountRequest* request);
	virtual	status_t			VisitReadVNodeRequest(
									ReadVNodeRequest* request);
	virtual	status_t			VisitReadVNodeReply(ReadVNodeReply* request);
	virtual	status_t			VisitWriteStatRequest(
									WriteStatRequest* request);
	virtual	status_t			VisitWriteStatReply(WriteStatReply* request);
	virtual	status_t			VisitCreateFileRequest(
									CreateFileRequest* request);
	virtual	status_t			VisitCreateFileReply(CreateFileReply* request);
	virtual	status_t			VisitOpenRequest(OpenRequest* request);
	virtual	status_t			VisitOpenReply(OpenReply* request);
	virtual	status_t			VisitCloseRequest(CloseRequest* request);
	virtual	status_t			VisitCloseReply(CloseReply* request);
	virtual	status_t			VisitReadRequest(ReadRequest* request);
	virtual	status_t			VisitReadReply(ReadReply* request);
	virtual	status_t			VisitWriteRequest(WriteRequest* request);
	virtual	status_t			VisitWriteReply(WriteReply* request);
	virtual	status_t			VisitCreateLinkRequest(
									CreateLinkRequest* request);
	virtual	status_t			VisitCreateLinkReply(CreateLinkReply* request);
	virtual	status_t			VisitUnlinkRequest(UnlinkRequest* request);
	virtual	status_t			VisitUnlinkReply(UnlinkReply* request);
	virtual	status_t			VisitCreateSymlinkRequest(
									CreateSymlinkRequest* request);
	virtual	status_t			VisitCreateSymlinkReply(
									CreateSymlinkReply* request);
	virtual	status_t			VisitReadLinkRequest(ReadLinkRequest* request);
	virtual	status_t			VisitReadLinkReply(ReadLinkReply* request);
	virtual	status_t			VisitRenameRequest(RenameRequest* request);
	virtual	status_t			VisitRenameReply(RenameReply* request);
	virtual	status_t			VisitMakeDirRequest(MakeDirRequest* request);
	virtual	status_t			VisitMakeDirReply(MakeDirReply* request);
	virtual	status_t			VisitRemoveDirRequest(
									RemoveDirRequest* request);
	virtual	status_t			VisitRemoveDirReply(RemoveDirReply* request);
	virtual	status_t			VisitOpenDirRequest(OpenDirRequest* request);
	virtual	status_t			VisitOpenDirReply(OpenDirReply* request);
	virtual	status_t			VisitReadDirRequest(ReadDirRequest* request);
	virtual	status_t			VisitReadDirReply(ReadDirReply* request);
	virtual	status_t			VisitWalkRequest(WalkRequest* request);
	virtual	status_t			VisitWalkReply(WalkReply* request);
	virtual	status_t			VisitMultiWalkRequest(
									MultiWalkRequest* request);
	virtual	status_t			VisitMultiWalkReply(MultiWalkReply* request);
 
	virtual	status_t			VisitOpenAttrDirRequest(
									OpenAttrDirRequest* request);
	virtual	status_t			VisitOpenAttrDirReply(
									OpenAttrDirReply* request);
	virtual	status_t			VisitReadAttrDirRequest(
									ReadAttrDirRequest* request);
	virtual	status_t			VisitReadAttrDirReply(
									ReadAttrDirReply* request);
	virtual	status_t			VisitReadAttrRequest(ReadAttrRequest* request);
	virtual	status_t			VisitReadAttrReply(ReadAttrReply* request);
	virtual	status_t			VisitWriteAttrRequest(
									WriteAttrRequest* request);
	virtual	status_t			VisitWriteAttrReply(WriteAttrReply* request);
	virtual	status_t			VisitRemoveAttrRequest(
									RemoveAttrRequest* request);
	virtual	status_t			VisitRemoveAttrReply(RemoveAttrReply* request);
	virtual	status_t			VisitRenameAttrRequest(
									RenameAttrRequest* request);
	virtual	status_t			VisitRenameAttrReply(RenameAttrReply* request);
	virtual	status_t			VisitStatAttrRequest(StatAttrRequest* request);
	virtual	status_t			VisitStatAttrReply(StatAttrReply* request);
 
	virtual	status_t			VisitOpenQueryRequest(
									OpenQueryRequest* request);
	virtual	status_t			VisitOpenQueryReply(OpenQueryReply* request);
	virtual	status_t			VisitReadQueryRequest(
									ReadQueryRequest* request);
	virtual	status_t			VisitReadQueryReply(ReadQueryReply* request);
 
	virtual	status_t			VisitNodeMonitoringRequest(
									NodeMonitoringRequest* request);
	virtual	status_t			VisitEntryCreatedRequest(
									EntryCreatedRequest* request);
	virtual	status_t			VisitEntryRemovedRequest(
									EntryRemovedRequest* request);
	virtual	status_t			VisitEntryMovedRequest(
									EntryMovedRequest* request);
	virtual	status_t			VisitStatChangedRequest(
									StatChangedRequest* request);
	virtual	status_t			VisitAttributeChangedRequest(
									AttributeChangedRequest* request);
 
	virtual	status_t			VisitServerInfoRequest(
									ServerInfoRequest* request);
 
	virtual	status_t			VisitAny(Request* request);
};
 
// ReplyRequest
struct ReplyRequest : Request {
	ReplyRequest(uint32 type) : Request(type) {}
 
	status_t		error;
};
 
// VolumeRequest
struct VolumeRequest : Request {
	VolumeRequest(uint32 type) : Request(type) {}
 
	int32			volumeID;
};
 
// ConnectionBrokenRequest
struct ConnectionBrokenRequest : Request {
	ConnectionBrokenRequest() : Request(CONNECTION_BROKEN_REQUEST) {}
	virtual status_t Accept(RequestVisitor* visitor)
		{ return visitor->VisitConnectionBrokenRequest(this); }
	virtual void ShowAround(RequestMemberVisitor* visitor)
	{
		visitor->Visit(this, error);
	}
 
	status_t		error;
};
 
// InitConnectionRequest
struct InitConnectionRequest : Request {
	InitConnectionRequest() : Request(INIT_CONNECTION_REQUEST) {}
	virtual status_t Accept(RequestVisitor* visitor)
		{ return visitor->VisitInitConnectionRequest(this); }
	virtual void ShowAround(RequestMemberVisitor* visitor)
	{
		visitor->Visit(this, bigEndian);
	}
 
	bool			bigEndian;
};
 
// InitConnectionReply
struct InitConnectionReply : ReplyRequest {
	InitConnectionReply() : ReplyRequest(INIT_CONNECTION_REPLY) {}
	virtual status_t Accept(RequestVisitor* visitor)
		{ return visitor->VisitInitConnectionReply(this); }
	virtual void ShowAround(RequestMemberVisitor* visitor)
	{
		visitor->Visit(this, error);
	}
};
 
// MountRequest
struct MountRequest : Request {
	MountRequest() : Request(MOUNT_REQUEST) {}
	virtual status_t Accept(RequestVisitor* visitor)
		{ return visitor->VisitMountRequest(this); }
	virtual void ShowAround(RequestMemberVisitor* visitor)
	{
		visitor->Visit(this, share);
		visitor->Visit(this, user);
		visitor->Visit(this, password);
		visitor->Visit(this, flags);
	}
 
	StringData		share;
	StringData		user;		// can be NULL, if the connection supports
	StringData		password;	// authentication; otherwise NULL means anonymous
	uint32			flags;
};
 
// MountReply
struct MountReply : ReplyRequest {
	MountReply() : ReplyRequest(MOUNT_REPLY) {}
	virtual status_t Accept(RequestVisitor* visitor)
		{ return visitor->VisitMountReply(this); }
	virtual void ShowAround(RequestMemberVisitor* visitor)
	{
		visitor->Visit(this, error);
		visitor->Visit(this, volumeID);
		visitor->Visit(this, sharePermissions);
		visitor->Visit(this, nodeInfo);
		visitor->Visit(this, noPermission);
	}
 
	int32			volumeID;
	uint32			sharePermissions;
	NodeInfo		nodeInfo;
	bool			noPermission;	// always set (just as error)
};
 
// UnmountRequest
struct UnmountRequest : VolumeRequest {
	UnmountRequest() : VolumeRequest(UNMOUNT_REQUEST) {}
	virtual status_t Accept(RequestVisitor* visitor)
		{ return visitor->VisitUnmountRequest(this); }
	virtual void ShowAround(RequestMemberVisitor* visitor)
	{
		visitor->Visit(this, volumeID);
	}
};
 
// ReadVNodeRequest
struct ReadVNodeRequest : VolumeRequest {
	ReadVNodeRequest() : VolumeRequest(READ_VNODE_REQUEST) {}
	virtual status_t Accept(RequestVisitor* visitor)
		{ return visitor->VisitReadVNodeRequest(this); }
	virtual void ShowAround(RequestMemberVisitor* visitor)
	{
		visitor->Visit(this, volumeID);
		visitor->Visit(this, nodeID);
	}
 
	ServerNodeID		nodeID;
};
 
// ReadVNodeReply
struct ReadVNodeReply : ReplyRequest {
	ReadVNodeReply() : ReplyRequest(READ_VNODE_REPLY) {}
	virtual status_t Accept(RequestVisitor* visitor)
		{ return visitor->VisitReadVNodeReply(this); }
	virtual void ShowAround(RequestMemberVisitor* visitor)
	{
		visitor->Visit(this, error);
		visitor->Visit(this, nodeInfo);
	}
 
	NodeInfo		nodeInfo;
};
 
// WriteStatRequest
struct WriteStatRequest : VolumeRequest {
	WriteStatRequest() : VolumeRequest(WRITE_STAT_REQUEST) {}
	virtual status_t Accept(RequestVisitor* visitor)
		{ return visitor->VisitWriteStatRequest(this); }
	virtual void ShowAround(RequestMemberVisitor* visitor)
	{
		visitor->Visit(this, volumeID);
		visitor->Visit(this, nodeID);
		visitor->Visit(this, nodeInfo);
		visitor->Visit(this, mask);
	}
 
	ServerNodeID	nodeID;
	NodeInfo		nodeInfo;
	uint32			mask;
};
 
// WriteStatReply
struct WriteStatReply : ReplyRequest {
	WriteStatReply() : ReplyRequest(WRITE_STAT_REPLY) {}
	virtual status_t Accept(RequestVisitor* visitor)
		{ return visitor->VisitWriteStatReply(this); }
	virtual void ShowAround(RequestMemberVisitor* visitor)
	{
		visitor->Visit(this, error);
		visitor->Visit(this, nodeInfo);
		visitor->Visit(this, nodeInfoValid);
	}
 
	NodeInfo		nodeInfo;
	bool			nodeInfoValid;
};
 
// CreateFileRequest
struct CreateFileRequest : VolumeRequest {
	CreateFileRequest() : VolumeRequest(CREATE_FILE_REQUEST) {}
	virtual status_t Accept(RequestVisitor* visitor)
		{ return visitor->VisitCreateFileRequest(this); }
	virtual void ShowAround(RequestMemberVisitor* visitor)
	{
		visitor->Visit(this, volumeID);
		visitor->Visit(this, directoryID);
		visitor->Visit(this, name);
		visitor->Visit(this, openMode);
		visitor->Visit(this, mode);
	}
 
	ServerNodeID	directoryID;
	StringData		name;
	int32			openMode;
	uint32			mode;
};
 
// CreateFileReply
struct CreateFileReply : ReplyRequest {
	CreateFileReply() : ReplyRequest(CREATE_FILE_REPLY) {}
	virtual status_t Accept(RequestVisitor* visitor)
		{ return visitor->VisitCreateFileReply(this); }
	virtual void ShowAround(RequestMemberVisitor* visitor)
	{
		visitor->Visit(this, error);
		visitor->Visit(this, entryInfo);
		visitor->Visit(this, cookie);
	}
 
	EntryInfo		entryInfo;
	intptr_t		cookie;
};
 
// OpenRequest
struct OpenRequest : VolumeRequest {
	OpenRequest() : VolumeRequest(OPEN_REQUEST) {}
	virtual status_t Accept(RequestVisitor* visitor)
		{ return visitor->VisitOpenRequest(this); }
	virtual void ShowAround(RequestMemberVisitor* visitor)
	{
		visitor->Visit(this, volumeID);
		visitor->Visit(this, nodeID);
		visitor->Visit(this, openMode);
	}
 
	ServerNodeID	nodeID;
	int32			openMode;
};
 
// OpenReply
struct OpenReply : ReplyRequest {
	OpenReply() : ReplyRequest(OPEN_REPLY) {}
	virtual status_t Accept(RequestVisitor* visitor)
		{ return visitor->VisitOpenReply(this); }
	virtual void ShowAround(RequestMemberVisitor* visitor)
	{
		visitor->Visit(this, error);
		visitor->Visit(this, nodeInfo);
		visitor->Visit(this, cookie);
	}
 
	NodeInfo		nodeInfo;
	intptr_t		cookie;
};
 
// CloseRequest
struct CloseRequest : VolumeRequest {
	CloseRequest() : VolumeRequest(CLOSE_REQUEST) {}
	virtual status_t Accept(RequestVisitor* visitor)
		{ return visitor->VisitCloseRequest(this); }
	virtual void ShowAround(RequestMemberVisitor* visitor)
	{
		visitor->Visit(this, volumeID);
		visitor->Visit(this, cookie);
	}
 
	intptr_t		cookie;
};
 
// CloseReply
struct CloseReply : ReplyRequest {
	CloseReply() : ReplyRequest(CLOSE_REPLY) {}
	virtual status_t Accept(RequestVisitor* visitor)
		{ return visitor->VisitCloseReply(this); }
	virtual void ShowAround(RequestMemberVisitor* visitor)
	{
		visitor->Visit(this, error);
	}
 
};
 
// ReadRequest
struct ReadRequest : VolumeRequest {
	ReadRequest() : VolumeRequest(READ_REQUEST) {}
	virtual status_t Accept(RequestVisitor* visitor)
		{ return visitor->VisitReadRequest(this); }
	virtual void ShowAround(RequestMemberVisitor* visitor)
	{
		visitor->Visit(this, volumeID);
		visitor->Visit(this, cookie);
		visitor->Visit(this, pos);
		visitor->Visit(this, size);
	}
 
	intptr_t		cookie;
	off_t			pos;
	int32			size;
};
 
// ReadReply
struct ReadReply : ReplyRequest {
	ReadReply() : ReplyRequest(READ_REPLY) {}
	virtual status_t Accept(RequestVisitor* visitor)
		{ return visitor->VisitReadReply(this); }
	virtual void ShowAround(RequestMemberVisitor* visitor)
	{
		visitor->Visit(this, error);
		visitor->Visit(this, pos);
		visitor->Visit(this, data);
		visitor->Visit(this, moreToCome);
	}
 
	off_t			pos;
	Data			data;
	bool			moreToCome;
};
 
// WriteRequest
struct WriteRequest : VolumeRequest {
	WriteRequest() : VolumeRequest(WRITE_REQUEST) {}
	virtual status_t Accept(RequestVisitor* visitor)
		{ return visitor->VisitWriteRequest(this); }
	virtual void ShowAround(RequestMemberVisitor* visitor)
	{
		visitor->Visit(this, volumeID);
		visitor->Visit(this, cookie);
		visitor->Visit(this, pos);
		visitor->Visit(this, data);
	}
 
	intptr_t		cookie;
	off_t			pos;
	Data			data;
};
 
// WriteReply
struct WriteReply : ReplyRequest {
	WriteReply() : ReplyRequest(WRITE_REPLY) {}
	virtual status_t Accept(RequestVisitor* visitor)
		{ return visitor->VisitWriteReply(this); }
	virtual void ShowAround(RequestMemberVisitor* visitor)
	{
		visitor->Visit(this, error);
	}
};
 
// CreateLinkRequest
struct CreateLinkRequest : VolumeRequest {
	CreateLinkRequest() : VolumeRequest(CREATE_LINK_REQUEST) {}
	virtual status_t Accept(RequestVisitor* visitor)
		{ return visitor->VisitCreateLinkRequest(this); }
	virtual void ShowAround(RequestMemberVisitor* visitor)
	{
		visitor->Visit(this, volumeID);
		visitor->Visit(this, directoryID);
		visitor->Visit(this, name);
		visitor->Visit(this, nodeID);
	}
 
	ServerNodeID	directoryID;
	StringData		name;
	ServerNodeID	nodeID;
};
 
// CreateLinkReply
struct CreateLinkReply : ReplyRequest {
	CreateLinkReply() : ReplyRequest(CREATE_LINK_REPLY) {}
	virtual status_t Accept(RequestVisitor* visitor)
		{ return visitor->VisitCreateLinkReply(this); }
	virtual void ShowAround(RequestMemberVisitor* visitor)
	{
		visitor->Visit(this, error);
	}
};
 
// UnlinkRequest
struct UnlinkRequest : VolumeRequest {
	UnlinkRequest() : VolumeRequest(UNLINK_REQUEST) {}
	virtual status_t Accept(RequestVisitor* visitor)
		{ return visitor->VisitUnlinkRequest(this); }
	virtual void ShowAround(RequestMemberVisitor* visitor)
	{
		visitor->Visit(this, volumeID);
		visitor->Visit(this, directoryID);
		visitor->Visit(this, name);
	}
 
	ServerNodeID	directoryID;
	StringData		name;
};
 
// UnlinkReply
struct UnlinkReply : ReplyRequest {
	UnlinkReply() : ReplyRequest(UNLINK_REPLY) {}
	virtual status_t Accept(RequestVisitor* visitor)
		{ return visitor->VisitUnlinkReply(this); }
	virtual void ShowAround(RequestMemberVisitor* visitor)
	{
		visitor->Visit(this, error);
	}
};
 
// CreateSymlinkRequest
struct CreateSymlinkRequest : VolumeRequest {
	CreateSymlinkRequest() : VolumeRequest(CREATE_SYMLINK_REQUEST) {}
	virtual status_t Accept(RequestVisitor* visitor)
		{ return visitor->VisitCreateSymlinkRequest(this); }
	virtual void ShowAround(RequestMemberVisitor* visitor)
	{
		visitor->Visit(this, volumeID);
		visitor->Visit(this, directoryID);
		visitor->Visit(this, name);
		visitor->Visit(this, target);
	}
 
	ServerNodeID	directoryID;
	StringData		name;
	StringData		target;
};
 
// CreateSymlinkReply
struct CreateSymlinkReply : ReplyRequest {
	CreateSymlinkReply() : ReplyRequest(CREATE_SYMLINK_REPLY) {}
	virtual status_t Accept(RequestVisitor* visitor)
		{ return visitor->VisitCreateSymlinkReply(this); }
	virtual void ShowAround(RequestMemberVisitor* visitor)
	{
		visitor->Visit(this, error);
	}
};
 
// ReadLinkRequest
struct ReadLinkRequest : VolumeRequest {
	ReadLinkRequest() : VolumeRequest(READ_LINK_REQUEST) {}
	virtual status_t Accept(RequestVisitor* visitor)
		{ return visitor->VisitReadLinkRequest(this); }
	virtual void ShowAround(RequestMemberVisitor* visitor)
	{
		visitor->Visit(this, volumeID);
		visitor->Visit(this, nodeID);
		visitor->Visit(this, maxSize);
	}
 
	ServerNodeID	nodeID;
	int32			maxSize;
};
 
// ReadLinkReply
struct ReadLinkReply : ReplyRequest {
	ReadLinkReply() : ReplyRequest(READ_LINK_REPLY) {}
	virtual status_t Accept(RequestVisitor* visitor)
		{ return visitor->VisitReadLinkReply(this); }
	virtual void ShowAround(RequestMemberVisitor* visitor)
	{
		visitor->Visit(this, error);
		visitor->Visit(this, nodeInfo);
		visitor->Visit(this, data);
	}
 
	NodeInfo		nodeInfo;
	Data			data;
};
 
// RenameRequest
struct RenameRequest : VolumeRequest {
	RenameRequest() : VolumeRequest(RENAME_REQUEST) {}
	virtual status_t Accept(RequestVisitor* visitor)
		{ return visitor->VisitRenameRequest(this); }
	virtual void ShowAround(RequestMemberVisitor* visitor)
	{
		visitor->Visit(this, volumeID);
		visitor->Visit(this, oldDirectoryID);
		visitor->Visit(this, oldName);
		visitor->Visit(this, newDirectoryID);
		visitor->Visit(this, newName);
	}
 
	ServerNodeID	oldDirectoryID;
	StringData		oldName;
	ServerNodeID	newDirectoryID;
	StringData		newName;
};
 
// RenameReply
struct RenameReply : ReplyRequest {
	RenameReply() : ReplyRequest(RENAME_REPLY) {}
	virtual status_t Accept(RequestVisitor* visitor)
		{ return visitor->VisitRenameReply(this); }
	virtual void ShowAround(RequestMemberVisitor* visitor)
	{
		visitor->Visit(this, error);
	}
};
 
// MakeDirRequest
struct MakeDirRequest : VolumeRequest {
	MakeDirRequest() : VolumeRequest(MAKE_DIR_REQUEST) {}
	virtual status_t Accept(RequestVisitor* visitor)
		{ return visitor->VisitMakeDirRequest(this); }
	virtual void ShowAround(RequestMemberVisitor* visitor)
	{
		visitor->Visit(this, volumeID);
		visitor->Visit(this, directoryID);
		visitor->Visit(this, name);
		visitor->Visit(this, mode);
	}
 
	ServerNodeID	directoryID;
	StringData		name;
	uint32			mode;
};
 
// MakeDirReply
struct MakeDirReply : ReplyRequest {
	MakeDirReply() : ReplyRequest(MAKE_DIR_REPLY) {}
	virtual status_t Accept(RequestVisitor* visitor)
		{ return visitor->VisitMakeDirReply(this); }
	virtual void ShowAround(RequestMemberVisitor* visitor)
	{
		visitor->Visit(this, error);
	}
};
 
// RemoveDirRequest
struct RemoveDirRequest : VolumeRequest {
	RemoveDirRequest() : VolumeRequest(REMOVE_DIR_REQUEST) {}
	virtual status_t Accept(RequestVisitor* visitor)
		{ return visitor->VisitRemoveDirRequest(this); }
	virtual void ShowAround(RequestMemberVisitor* visitor)
	{
		visitor->Visit(this, volumeID);
		visitor->Visit(this, directoryID);
		visitor->Visit(this, name);
	}
 
	ServerNodeID	directoryID;
	StringData		name;
};
 
// RemoveDirReply
struct RemoveDirReply : ReplyRequest {
	RemoveDirReply() : ReplyRequest(REMOVE_DIR_REPLY) {}
	virtual status_t Accept(RequestVisitor* visitor)
		{ return visitor->VisitRemoveDirReply(this); }
	virtual void ShowAround(RequestMemberVisitor* visitor)
	{
		visitor->Visit(this, error);
	}
};
 
// OpenDirRequest
struct OpenDirRequest : VolumeRequest {
	OpenDirRequest() : VolumeRequest(OPEN_DIR_REQUEST) {}
	virtual status_t Accept(RequestVisitor* visitor)
		{ return visitor->VisitOpenDirRequest(this); }
	virtual void ShowAround(RequestMemberVisitor* visitor)
	{
		visitor->Visit(this, volumeID);
		visitor->Visit(this, nodeID);
	}
 
	ServerNodeID	nodeID;
};
 
// OpenDirReply
struct OpenDirReply : ReplyRequest {
	OpenDirReply() : ReplyRequest(OPEN_DIR_REPLY) {}
	virtual status_t Accept(RequestVisitor* visitor)
		{ return visitor->VisitOpenDirReply(this); }
	virtual void ShowAround(RequestMemberVisitor* visitor)
	{
		visitor->Visit(this, error);
		visitor->Visit(this, nodeInfo);
		visitor->Visit(this, cookie);
	}
 
	NodeInfo		nodeInfo;
	intptr_t		cookie;
};
 
// ReadDirRequest
struct ReadDirRequest : VolumeRequest {
	ReadDirRequest() : VolumeRequest(READ_DIR_REQUEST) {}
	virtual status_t Accept(RequestVisitor* visitor)
		{ return visitor->VisitReadDirRequest(this); }
	virtual void ShowAround(RequestMemberVisitor* visitor)
	{
		visitor->Visit(this, volumeID);
		visitor->Visit(this, cookie);
		visitor->Visit(this, count);
		visitor->Visit(this, rewind);
	}
 
	intptr_t		cookie;
	int32			count;
	bool			rewind;
};
 
// ReadDirReply
struct ReadDirReply : ReplyRequest {
	ReadDirReply() : ReplyRequest(READ_DIR_REPLY) {}
	virtual status_t Accept(RequestVisitor* visitor)
		{ return visitor->VisitReadDirReply(this); }
	virtual void ShowAround(RequestMemberVisitor* visitor)
	{
		visitor->Visit(this, error);
		visitor->Visit(this, entryInfos);
		visitor->Visit(this, revision);
		visitor->Visit(this, done);
	}
 
	RequestMemberArray<EntryInfo> entryInfos;
	int64			revision;
	bool			done;
};
 
// WalkRequest
struct WalkRequest : VolumeRequest {
	WalkRequest() : VolumeRequest(WALK_REQUEST) {}
	virtual status_t Accept(RequestVisitor* visitor)
		{ return visitor->VisitWalkRequest(this); }
	virtual void ShowAround(RequestMemberVisitor* visitor)
	{
		visitor->Visit(this, volumeID);
		visitor->Visit(this, nodeID);
		visitor->Visit(this, name);
		visitor->Visit(this, resolveLink);
	}
 
	ServerNodeID	nodeID;
	StringData		name;
	bool			resolveLink;
};
 
// WalkReply
struct WalkReply : ReplyRequest {
	WalkReply() : ReplyRequest(WALK_REPLY) {}
	virtual status_t Accept(RequestVisitor* visitor)
		{ return visitor->VisitWalkReply(this); }
	virtual void ShowAround(RequestMemberVisitor* visitor)
	{
		visitor->Visit(this, error);
		visitor->Visit(this, entryInfo);
		visitor->Visit(this, linkPath);
	}
 
	EntryInfo		entryInfo;
	StringData		linkPath;
};
 
// MulitWalkRequest
struct MultiWalkRequest : VolumeRequest {
	MultiWalkRequest() : VolumeRequest(MULTI_WALK_REQUEST) {}
	virtual status_t Accept(RequestVisitor* visitor)
		{ return visitor->VisitMultiWalkRequest(this); }
	virtual void ShowAround(RequestMemberVisitor* visitor)
	{
		visitor->Visit(this, volumeID);
		visitor->Visit(this, nodeID);
		visitor->Visit(this, names);
	}
 
	ServerNodeID	nodeID;
	RequestMemberArray<StringData> names;
};
 
// MultiWalkReply
struct MultiWalkReply : ReplyRequest {
	MultiWalkReply() : ReplyRequest(MULTI_WALK_REPLY) {}
	virtual status_t Accept(RequestVisitor* visitor)
		{ return visitor->VisitMultiWalkReply(this); }
	virtual void ShowAround(RequestMemberVisitor* visitor)
	{
		visitor->Visit(this, error);
		visitor->Visit(this, entryInfos);
	}
 
	RequestMemberArray<EntryInfo> entryInfos;
};
 
// OpenAttrDirRequest
struct OpenAttrDirRequest : VolumeRequest {
	OpenAttrDirRequest() : VolumeRequest(OPEN_ATTR_DIR_REQUEST) {}
	virtual status_t Accept(RequestVisitor* visitor)
		{ return visitor->VisitOpenAttrDirRequest(this); }
	virtual void ShowAround(RequestMemberVisitor* visitor)
	{
		visitor->Visit(this, volumeID);
		visitor->Visit(this, nodeID);
	}
 
	ServerNodeID	nodeID;
};
 
// OpenAttrDirReply
struct OpenAttrDirReply : ReplyRequest {
	OpenAttrDirReply() : ReplyRequest(OPEN_ATTR_DIR_REPLY) {}
	virtual status_t Accept(RequestVisitor* visitor)
		{ return visitor->VisitOpenAttrDirReply(this); }
	virtual void ShowAround(RequestMemberVisitor* visitor)
	{
		visitor->Visit(this, error);
		visitor->Visit(this, attrDirInfo);
		visitor->Visit(this, cookie);
	}
 
	AttrDirInfo		attrDirInfo;
	intptr_t		cookie;
};
 
// ReadAttrDirRequest
struct ReadAttrDirRequest : VolumeRequest {
	ReadAttrDirRequest() : VolumeRequest(READ_ATTR_DIR_REQUEST) {}
	virtual status_t Accept(RequestVisitor* visitor)
		{ return visitor->VisitReadAttrDirRequest(this); }
	virtual void ShowAround(RequestMemberVisitor* visitor)
	{
		visitor->Visit(this, volumeID);
		visitor->Visit(this, cookie);
		visitor->Visit(this, rewind);
	}
 
	intptr_t		cookie;
	int32			count;
	bool			rewind;
};
 
// ReadAttrDirReply
struct ReadAttrDirReply : ReplyRequest {
	ReadAttrDirReply() : ReplyRequest(READ_ATTR_DIR_REPLY) {}
	virtual status_t Accept(RequestVisitor* visitor)
		{ return visitor->VisitReadAttrDirReply(this); }
	virtual void ShowAround(RequestMemberVisitor* visitor)
	{
		visitor->Visit(this, error);
		visitor->Visit(this, name);
		visitor->Visit(this, count);
	}
 
	StringData		name;	// TODO: This should be a list.
	int32			count;
};
 
// ReadAttrRequest
struct ReadAttrRequest : VolumeRequest {
	ReadAttrRequest() : VolumeRequest(READ_ATTR_REQUEST) {}
	virtual status_t Accept(RequestVisitor* visitor)
		{ return visitor->VisitReadAttrRequest(this); }
	virtual void ShowAround(RequestMemberVisitor* visitor)
	{
		visitor->Visit(this, volumeID);
		visitor->Visit(this, nodeID);
		visitor->Visit(this, name);
		visitor->Visit(this, type);
		visitor->Visit(this, pos);
		visitor->Visit(this, size);
	}
 
	ServerNodeID	nodeID;
	StringData		name;
	uint32			type;
	off_t			pos;
	int32			size;
};
 
// ReadAttrReply
struct ReadAttrReply : ReplyRequest {
	ReadAttrReply() : ReplyRequest(READ_ATTR_REPLY) {}
	virtual status_t Accept(RequestVisitor* visitor)
		{ return visitor->VisitReadAttrReply(this); }
	virtual void ShowAround(RequestMemberVisitor* visitor)
	{
		visitor->Visit(this, error);
		visitor->Visit(this, pos);
		visitor->Visit(this, data);
		visitor->Visit(this, moreToCome);
	}
 
	off_t			pos;
	Data			data;
	bool			moreToCome;
};
 
// WriteAttrRequest
struct WriteAttrRequest : VolumeRequest {
	WriteAttrRequest() : VolumeRequest(WRITE_ATTR_REQUEST) {}
	virtual status_t Accept(RequestVisitor* visitor)
		{ return visitor->VisitWriteAttrRequest(this); }
	virtual void ShowAround(RequestMemberVisitor* visitor)
	{
		visitor->Visit(this, volumeID);
		visitor->Visit(this, nodeID);
		visitor->Visit(this, name);
		visitor->Visit(this, type);
		visitor->Visit(this, pos);
		visitor->Visit(this, data);
	}
 
	ServerNodeID	nodeID;
	StringData		name;
	uint32			type;
	off_t			pos;
	Data			data;
};
 
// WriteAttrReply
struct WriteAttrReply : ReplyRequest {
	WriteAttrReply() : ReplyRequest(WRITE_ATTR_REPLY) {}
	virtual status_t Accept(RequestVisitor* visitor)
		{ return visitor->VisitWriteAttrReply(this); }
	virtual void ShowAround(RequestMemberVisitor* visitor)
	{
		visitor->Visit(this, error);
	}
};
 
// RemoveAttrRequest
struct RemoveAttrRequest : VolumeRequest {
	RemoveAttrRequest() : VolumeRequest(REMOVE_ATTR_REQUEST) {}
	virtual status_t Accept(RequestVisitor* visitor)
		{ return visitor->VisitRemoveAttrRequest(this); }
	virtual void ShowAround(RequestMemberVisitor* visitor)
	{
		visitor->Visit(this, volumeID);
		visitor->Visit(this, nodeID);
		visitor->Visit(this, name);
	}
 
	ServerNodeID	nodeID;
	StringData		name;
};
 
// RemoveAttrReply
struct RemoveAttrReply : ReplyRequest {
	RemoveAttrReply() : ReplyRequest(REMOVE_ATTR_REPLY) {}
	virtual status_t Accept(RequestVisitor* visitor)
		{ return visitor->VisitRemoveAttrReply(this); }
	virtual void ShowAround(RequestMemberVisitor* visitor)
	{
		visitor->Visit(this, error);
	}
};
 
// RenameAttrRequest
struct RenameAttrRequest : VolumeRequest {
	RenameAttrRequest() : VolumeRequest(RENAME_ATTR_REQUEST) {}
	virtual status_t Accept(RequestVisitor* visitor)
		{ return visitor->VisitRenameAttrRequest(this); }
	virtual void ShowAround(RequestMemberVisitor* visitor)
	{
		visitor->Visit(this, volumeID);
		visitor->Visit(this, nodeID);
		visitor->Visit(this, oldName);
		visitor->Visit(this, newName);
	}
 
	ServerNodeID	nodeID;
	StringData		oldName;
	StringData		newName;
};
 
// RenameAttrReply
struct RenameAttrReply : ReplyRequest {
	RenameAttrReply() : ReplyRequest(RENAME_ATTR_REPLY) {}
	virtual status_t Accept(RequestVisitor* visitor)
		{ return visitor->VisitRenameAttrReply(this); }
	virtual void ShowAround(RequestMemberVisitor* visitor)
	{
		visitor->Visit(this, error);
	}
};
 
// StatAttrRequest
struct StatAttrRequest : VolumeRequest {
	StatAttrRequest() : VolumeRequest(STAT_ATTR_REQUEST) {}
	virtual status_t Accept(RequestVisitor* visitor)
		{ return visitor->VisitStatAttrRequest(this); }
	virtual void ShowAround(RequestMemberVisitor* visitor)
	{
		visitor->Visit(this, volumeID);
		visitor->Visit(this, nodeID);
		visitor->Visit(this, name);
	}
 
	ServerNodeID	nodeID;
	StringData		name;
};
 
// StatAttrReply
struct StatAttrReply : ReplyRequest {
	StatAttrReply() : ReplyRequest(STAT_ATTR_REPLY) {}
	virtual status_t Accept(RequestVisitor* visitor)
		{ return visitor->VisitStatAttrReply(this); }
	virtual void ShowAround(RequestMemberVisitor* visitor)
	{
		visitor->Visit(this, error);
		visitor->Visit(this, attrInfo);
	}
 
	AttributeInfo	attrInfo;
};
 
// OpenQueryRequest
struct OpenQueryRequest : Request {
	OpenQueryRequest() : Request(OPEN_QUERY_REQUEST) {}
	virtual status_t Accept(RequestVisitor* visitor)
		{ return visitor->VisitOpenQueryRequest(this); }
	virtual void ShowAround(RequestMemberVisitor* visitor)
	{
		visitor->Visit(this, queryString);
		visitor->Visit(this, flags);
		visitor->Visit(this, port);
		visitor->Visit(this, token);
	}
 
	StringData		queryString;
	uint32			flags;
	int32			port;
	int32			token;
};
 
// OpenQueryReply
struct OpenQueryReply : ReplyRequest {
	OpenQueryReply() : ReplyRequest(OPEN_QUERY_REPLY) {}
	virtual status_t Accept(RequestVisitor* visitor)
		{ return visitor->VisitOpenQueryReply(this); }
	virtual void ShowAround(RequestMemberVisitor* visitor)
	{
		visitor->Visit(this, error);
		visitor->Visit(this, cookie);
	}
 
	intptr_t		cookie;
};
 
// ReadQueryRequest
struct ReadQueryRequest : Request {
	ReadQueryRequest() : Request(READ_QUERY_REQUEST) {}
	virtual status_t Accept(RequestVisitor* visitor)
		{ return visitor->VisitReadQueryRequest(this); }
	virtual void ShowAround(RequestMemberVisitor* visitor)
	{
		visitor->Visit(this, cookie);
	}
 
	intptr_t		cookie;
	int32			count;
};
 
// ReadQueryReply
struct ReadQueryReply : ReplyRequest {
	ReadQueryReply() : ReplyRequest(READ_QUERY_REPLY) {}
	virtual status_t Accept(RequestVisitor* visitor)
		{ return visitor->VisitReadQueryReply(this); }
	virtual void ShowAround(RequestMemberVisitor* visitor)
	{
		visitor->Visit(this, error);
		visitor->Visit(this, clientVolumeIDs);
		visitor->Visit(this, dirInfo);
		visitor->Visit(this, entryInfo);
		visitor->Visit(this, count);
	}
 
	RequestMemberArray<int32>	clientVolumeIDs;
	NodeInfo					dirInfo;	// TODO: This should be a list.
	EntryInfo					entryInfo;	//
	int32						count;
};
 
// NodeMonitoringRequest
struct NodeMonitoringRequest : VolumeRequest {
	NodeMonitoringRequest(uint32 type) : VolumeRequest(type) {}
 
	int32			opcode;
	int64			revision;
	ServerNodeID	nodeID;
	bool			queryUpdate;	// true, if this is a query update
	int32			port;			// for query updates
	int32			token;			//
};
 
// EntryCreatedRequest
struct EntryCreatedRequest : NodeMonitoringRequest {
	EntryCreatedRequest() : NodeMonitoringRequest(ENTRY_CREATED_REQUEST) {}
	virtual status_t Accept(RequestVisitor* visitor)
		{ return visitor->VisitEntryCreatedRequest(this); }
	virtual void ShowAround(RequestMemberVisitor* visitor)
	{
		visitor->Visit(this, volumeID);
		visitor->Visit(this, opcode);
		visitor->Visit(this, revision);
		visitor->Visit(this, nodeID);
		visitor->Visit(this, queryUpdate);
		visitor->Visit(this, port);
		visitor->Visit(this, token);
		visitor->Visit(this, directoryID);
		visitor->Visit(this, name);
		visitor->Visit(this, entryInfo);
		visitor->Visit(this, entryInfoValid);
	}
 
	ServerNodeID	directoryID;
	StringData		name;
	EntryInfo		entryInfo;
	bool			entryInfoValid;
};
 
// EntryRemovedRequest
struct EntryRemovedRequest : NodeMonitoringRequest {
	EntryRemovedRequest() : NodeMonitoringRequest(ENTRY_REMOVED_REQUEST) {}
	virtual status_t Accept(RequestVisitor* visitor)
		{ return visitor->VisitEntryRemovedRequest(this); }
	virtual void ShowAround(RequestMemberVisitor* visitor)
	{
		visitor->Visit(this, volumeID);
		visitor->Visit(this, opcode);
		visitor->Visit(this, revision);
		visitor->Visit(this, nodeID);
		visitor->Visit(this, queryUpdate);
		visitor->Visit(this, port);
		visitor->Visit(this, token);
		visitor->Visit(this, directoryID);
		visitor->Visit(this, name);
	}
 
	ServerNodeID	directoryID;
	StringData		name;
};
 
// EntryMovedRequest
struct EntryMovedRequest : NodeMonitoringRequest {
	EntryMovedRequest() : NodeMonitoringRequest(ENTRY_MOVED_REQUEST) {}
	virtual status_t Accept(RequestVisitor* visitor)
		{ return visitor->VisitEntryMovedRequest(this); }
	virtual void ShowAround(RequestMemberVisitor* visitor)
	{
		visitor->Visit(this, volumeID);
		visitor->Visit(this, opcode);
		visitor->Visit(this, revision);
		visitor->Visit(this, nodeID);
		visitor->Visit(this, queryUpdate);
		visitor->Visit(this, port);
		visitor->Visit(this, token);
		visitor->Visit(this, fromDirectoryID);
		visitor->Visit(this, toDirectoryID);
		visitor->Visit(this, fromName);
		visitor->Visit(this, toName);
		visitor->Visit(this, entryInfo);
		visitor->Visit(this, entryInfoValid);
	}
 
	ServerNodeID	fromDirectoryID;
	ServerNodeID	toDirectoryID;
	StringData		fromName;
	StringData		toName;
	EntryInfo		entryInfo;
	bool			entryInfoValid;
};
 
// StatChangedRequest
struct StatChangedRequest : NodeMonitoringRequest {
	StatChangedRequest() : NodeMonitoringRequest(ENTRY_STAT_CHANGED_REQUEST) {}
	virtual status_t Accept(RequestVisitor* visitor)
		{ return visitor->VisitStatChangedRequest(this); }
	virtual void ShowAround(RequestMemberVisitor* visitor)
	{
		visitor->Visit(this, volumeID);
		visitor->Visit(this, opcode);
		visitor->Visit(this, revision);
		visitor->Visit(this, nodeID);
		visitor->Visit(this, queryUpdate);
		visitor->Visit(this, port);
		visitor->Visit(this, token);
		visitor->Visit(this, nodeInfo);
	}
 
	NodeInfo		nodeInfo;
};
 
// AttributeChangedRequest
struct AttributeChangedRequest : NodeMonitoringRequest {
	AttributeChangedRequest()
		: NodeMonitoringRequest(ENTRY_ATTRIBUTE_CHANGED_REQUEST) {}
	virtual status_t Accept(RequestVisitor* visitor)
		{ return visitor->VisitAttributeChangedRequest(this); }
	virtual void ShowAround(RequestMemberVisitor* visitor)
	{
		visitor->Visit(this, volumeID);
		visitor->Visit(this, opcode);
		visitor->Visit(this, revision);
		visitor->Visit(this, nodeID);
		visitor->Visit(this, queryUpdate);
		visitor->Visit(this, port);
		visitor->Visit(this, token);
		visitor->Visit(this, attrDirInfo);
		visitor->Visit(this, attrInfo);
		visitor->Visit(this, valid);
		visitor->Visit(this, removed);
	}
 
	AttrDirInfo		attrDirInfo;
	AttributeInfo	attrInfo;
	bool			valid;
	bool			removed;
};
 
// ServerInfoRequest
struct ServerInfoRequest : Request {
	ServerInfoRequest() : Request(SERVER_INFO_REQUEST) {}
	virtual status_t Accept(RequestVisitor* visitor)
		{ return visitor->VisitServerInfoRequest(this); }
	virtual void ShowAround(RequestMemberVisitor* visitor)
	{
		visitor->Visit(this, serverInfo);
	}
 
	ServerInfo		serverInfo;
};
 
#endif	// NET_FS_REQUESTS_H

V730 Not all members of a class are initialized inside the constructor. Consider inspecting: count.

V730 Not all members of a class are initialized inside the constructor. Consider inspecting: bigEndian.

V730 Not all members of a class are initialized inside the constructor. Consider inspecting: openMode.

V730 Not all members of a class are initialized inside the constructor. Consider inspecting: cookie.

V730 Not all members of a class are initialized inside the constructor. Consider inspecting: cookie.

V730 Not all members of a class are initialized inside the constructor. Consider inspecting: mask.

V730 Not all members of a class are initialized inside the constructor. Consider inspecting: volumeID.

V730 Not all members of a class are initialized inside the constructor. Consider inspecting: maxSize.

V730 Not all members of a class are initialized inside the constructor. Consider inspecting: mode.

V730 Not all members of a class are initialized inside the constructor. Consider inspecting: cookie.

V730 Not all members of a class are initialized inside the constructor. Consider inspecting: cookie.

V730 Not all members of a class are initialized inside the constructor. Consider inspecting: resolveLink.

V730 Not all members of a class are initialized inside the constructor. Consider inspecting: flags.

V730 Not all members of a class are initialized inside the constructor. Consider inspecting: count.

V730 Not all members of a class are initialized inside the constructor. Consider inspecting: error.

V730 Not all members of a class are initialized inside the constructor. Consider inspecting: error.

V730 Not all members of a class are initialized inside the constructor. Consider inspecting: entryInfoValid.

V730 Not all members of a class are initialized inside the constructor. Consider inspecting: cookie.

V730 Not all members of a class are initialized inside the constructor. Consider inspecting: entryInfoValid.

V730 Not all members of a class are initialized inside the constructor. Consider inspecting: cookie.

V730 Not all members of a class are initialized inside the constructor. Consider inspecting: nodeInfoValid.