1/* 2 * Copyright 2013, Haiku, Inc. All Rights Reserved. 3 * Distributed under the terms of the MIT License. 4 * 5 * Authors: 6 * Ingo Weinhold <ingo_weinhold@gmx.de> 7 */ 8#ifndef _MIME_APP_META_MIME_CREATOR_H 9#define _MIME_APP_META_MIME_CREATOR_H 10 11 12#include <SupportDefs.h> 13 14 15struct entry_ref; 16 17 18namespace BPrivate { 19namespace Storage { 20namespace Mime { 21 22 23class Database; 24 25 26class MimeEntryProcessor { 27public: 28 class DatabaseLocker; 29 30public: 31 MimeEntryProcessor(Database* database, 32 DatabaseLocker* databaseLocker, 33 int32 force); 34 virtual ~MimeEntryProcessor(); 35 36 virtual status_t Do(const entry_ref& entry, bool* _entryIsDir) 37 = 0; 38 39 status_t DoRecursively(const entry_ref& entry); 40 41protected: 42 Database* fDatabase; 43 DatabaseLocker* fDatabaseLocker; 44 int32 fForce; 45 46}; 47 48 49class MimeEntryProcessor::DatabaseLocker { 50public: 51 virtual ~DatabaseLocker(); 52 53 virtual bool Lock() = 0; 54 virtual void Unlock() = 0; 55}; 56 57 58} // namespace Mime 59} // namespace Storage 60} // namespace BPrivate 61 62 63#endif // _MIME_APP_META_MIME_CREATOR_H 64