#ifndef NET_FS_SERVER_QUERY_ITERATOR_H
#define NET_FS_SERVER_QUERY_ITERATOR_H
#include "EntryInfo.h"
#include "NodeInfo.h"
#include "QueryIterator.h"
#include "HashString.h"
class ServerQueryIterator : public QueryIterator {
public:
ServerQueryIterator(Volume* volume);
virtual ~ServerQueryIterator();
void SetRemoteCookie(int32 cookie);
int32 GetRemoteCookie() const;
status_t SetEntry(const int32* shareVolumeIDs,
int32 shareVolumeCount,
const NodeInfo& dirInfo,
const EntryInfo& entryInfo);
void UnsetEntry();
const int32* GetShareVolumeIDs() const;
int32 CountShareVolumes() const;
const NodeInfo& GetDirectoryInfo() const;
const EntryInfo& GetEntryInfo() const;
bool HasNextShareVolumeID() const;
int32 NextShareVolumeID();
private:
enum { IN_OBJECT_ID_COUNT = 4 };
int32 fRemoteCookie;
int32* fShareVolumeIDs;
int32 fShareVolumeCount;
int32 fShareVolumeIndex;
NodeInfo fDirectoryInfo;
EntryInfo fEntryInfo;
HashString fEntryName;
int32 fInObjectIDs[IN_OBJECT_ID_COUNT];
};
#endif