1 // ServerQueryIterator.h 2 3 #ifndef NET_FS_SERVER_QUERY_ITERATOR_H 4 #define NET_FS_SERVER_QUERY_ITERATOR_H 5 6 #include "EntryInfo.h" 7 #include "NodeInfo.h" 8 #include "QueryIterator.h" 9 #include "HashString.h" 10 11 class ServerQueryIterator : public QueryIterator { 12 public: 13 ServerQueryIterator(Volume* volume); 14 virtual ~ServerQueryIterator(); 15 16 void SetRemoteCookie(int32 cookie); 17 int32 GetRemoteCookie() const; 18 19 status_t SetEntry(const int32* shareVolumeIDs, 20 int32 shareVolumeCount, 21 const NodeInfo& dirInfo, 22 const EntryInfo& entryInfo); 23 void UnsetEntry(); 24 25 const int32* GetShareVolumeIDs() const; 26 int32 CountShareVolumes() const; 27 const NodeInfo& GetDirectoryInfo() const; 28 const EntryInfo& GetEntryInfo() const; 29 30 bool HasNextShareVolumeID() const; 31 int32 NextShareVolumeID(); 32 33 private: 34 enum { IN_OBJECT_ID_COUNT = 4 }; 35 36 int32 fRemoteCookie; 37 int32* fShareVolumeIDs; 38 int32 fShareVolumeCount; 39 int32 fShareVolumeIndex; 40 NodeInfo fDirectoryInfo; 41 EntryInfo fEntryInfo; 42 HashString fEntryName; 43 int32 fInObjectIDs[IN_OBJECT_ID_COUNT]; 44 }; 45 46 #endif // NET_FS_SERVER_QUERY_ITERATOR_H 47