1//---------------------------------------------------------------------- 2// This software is part of the Haiku distribution and is covered 3// by the MIT License. 4//--------------------------------------------------------------------- 5/*! 6 \file MimeUpdateThread.h 7 MimeUpdateThread interface declaration 8*/ 9 10#ifndef _MIME_UPDATE_THREAD_H 11#define _MIME_UPDATE_THREAD_H 12 13#include <Entry.h> 14#include <Messenger.h> 15//#include <RegistrarThread.h> 16#include <SupportDefs.h> 17 18#include <list> 19#include <utility> 20 21struct entry_ref; 22class BMessage; 23 24namespace BPrivate { 25namespace Storage { 26namespace Mime { 27 28class MimeUpdateThread /*: public RegistrarThread*/ { 29public: 30 MimeUpdateThread(const char *name, int32 priority, 31 BMessenger managerMessenger, const entry_ref *root, bool recursive, 32 int32 force, BMessage *replyee); 33 virtual ~MimeUpdateThread(); 34 35 virtual status_t InitCheck(); 36 37 status_t DoUpdate() { return ThreadFunction(); } 38 39protected: 40 virtual status_t ThreadFunction(); 41 virtual status_t DoMimeUpdate(const entry_ref *entry, bool *entryIsDir) = 0; 42 43 const entry_ref fRoot; 44 const bool fRecursive; 45 const int32 fForce; 46 BMessage *fReplyee; 47 48 bool DeviceSupportsAttributes(dev_t device); 49 50private: 51 std::list< std::pair<dev_t, bool> > fAttributeSupportList; 52 53 status_t UpdateEntry(const entry_ref *ref); 54 55 status_t fStatus; 56}; 57 58} // namespace Mime 59} // namespace Storage 60} // namespace BPrivate 61 62#endif // _MIME_UPDATE_THREAD_H 63