2015-01-30 5 views
0

Я строю эквивалент в OS X mds демон или mdworker который является бэкенд, что spotlight использует http://en.wikipedia.org/wiki/Spotlight_%28software%29 индексировать файлы (каталоги файлов!) После создания, удаления и модификации.Фоновая файл индексатор (Win, * Nix, кроссплатформенная)

Как видно здесь, «Прожектор», уведомляется OS X ядро ​​каких-либо изменений, которые она отвечает на - https://developer.apple.com/library/mac/documentation/Carbon/Conceptual/MetadataIntro/Concepts/HowDoesItWork.html#//apple_ref/doc/uid/TP40001847-CJBEJBHH

Я делаю это как для Windows, * Nix/Linux и OS X. ли есть ли какая-либо библиотека кросс-платформы, которая обеспечивает перехваты или делает это? Если нет, знаете ли вы какие-либо ресурсы для API Win32, API Nix, API OS X, которые позволят мне это сделать?

Я полностью доволен доступом только для чтения и лишен доступа к системным файлам, но чем больше я могу получить, тем лучше!

Вот список поисковых систем для настольных компьютеров, некоторые с открытым исходным кодом - возможно, если кто-либо из вас вникает в код, вы знаете, если и в этом случае, как они его управляют? Например, возможно, Unity Dash делает это? http://en.wikipedia.org/wiki/List_of_search_engines#Desktop_search_engines

Мое расследование дела продолжается здесь: https://github.com/Centril/open-spotlight/wiki/Technical-in-depth#watcher

ответ

1

Мои собственные исследования появились следующие ресурсы:

http://en.wikipedia.org/wiki/File_Alteration_Monitor, NFS aware == great for network 
http://www.linuxdevcenter.com/pub/a/linux/2004/12/16/fam.html 
http://en.wikipedia.org/wiki/Inotify (Linux only) 
http://en.wikipedia.org/wiki/Gamin (Linux => Inotify, FreeBSD => kqueue) 
http://en.wikipedia.org/wiki/FSEvents (OS X > 10.7 (Lion), target >= Yosemite 10.10) 
http://en.wikipedia.org/wiki/Libevent (Platform Independent!) 
Even better: https://github.com/facebook/hhvm/issues/2047 
Winner: https://github.com/libuv/libuv, used by rust via libgreen. 

Libuv, кажется, большая библиотека.