vfs: check userland buffers before reading them.
[haiku.git] / src / add-ons / kernel / file_systems / ramfs / NameIndex.h
blob3503b7c961f0d905c32b3a6e0165ce84ffeead41
1 // NameIndex.h
3 #ifndef NAME_INDEX_H
4 #define NAME_INDEX_H
6 #include "EntryListener.h"
7 #include "Index.h"
8 #include "TwoKeyAVLTree.h"
10 class NameIndexEntryIterator;
12 // NameIndex
13 class NameIndex : public Index, private EntryListener {
14 public:
15 NameIndex(Volume *volume);
16 virtual ~NameIndex();
18 virtual int32 CountEntries() const;
20 virtual status_t Changed(Entry *entry, const char *oldName);
22 private:
23 virtual void EntryAdded(Entry *entry);
24 virtual void EntryRemoved(Entry *entry);
26 protected:
27 virtual AbstractIndexEntryIterator *InternalGetIterator();
28 virtual AbstractIndexEntryIterator *InternalFind(const uint8 *key,
29 size_t length);
31 private:
32 class EntryTree;
33 friend class NameIndexEntryIterator;
35 void _UpdateLiveQueries(Entry* entry, const char* oldName,
36 const char* newName);
38 private:
39 EntryTree *fEntries;
42 #endif // NAME_INDEX_H