21#ifndef __ANTARES_FS_WALKER_REGISTRY_H__
22#define __ANTARES_FS_WALKER_REGISTRY_H__
27#include <yuni/core/noncopyable.h>
34 using OnDirectoryEventList = std::vector<OnDirectoryEvent>;
35 using OnFileEventList = std::vector<OnFileEvent>;
36 using IndexList = std::vector<uint>;
37 using UserDataList = std::vector<void*>;
50 OnDirectoryEventList enter;
52 UserDataList userdata;
57 OnFileEventList access;
59 UserDataList userdata;
69inline EventsRegistry::~EventsRegistry()
74void EventsRegistry::finalize()
91 extension.userdataDestroy(userdata);
97 file.userdata.clear();
99 directory.indexes.clear();
100 directory.enter.clear();
101 directory.userdata.clear();
106void EventsRegistry::initialize(
const IExtension::Vector& exts, DispatchJobEvent& queue)
119 auto access = extension.fileEvent();
121 auto directoryEnter = extension.directoryEvent();
123 if (!access && !directoryEnter)
129 void* userdata = extension.userdataCreate(queue);
134 file.indexes.push_back(i);
135 file.access.push_back(access);
136 file.userdata.push_back(userdata);
141 directory.indexes.push_back(i);
142 directory.enter.push_back(directoryEnter);
143 directory.userdata.push_back(userdata);
Definition registry.inc.hxx:32
IExtension::Vector extensions
Extensions.
Definition registry.inc.hxx:63
UserDataList uniqueUserdata
Unique user data per extension.
Definition registry.inc.hxx:65
std::vector< Ptr > Vector
List.
Definition fswalker.h:61