Pull class MimeInfoUpdater out of UpdateMimeInfoThread

* Pull out base class MimeEntryProcessor out of AppMetaMimeCreator.
* Pull class MimeInfoUpdater out of UpdateMimeInfoThread and derive it
  from MimeEntryProcessor.
* MimeInfoUpdater: Instead of BMimeType::GuessMimeType(), use
  Database::GuessMimeType() directly.
This commit is contained in:
Ingo Weinhold
2013-05-09 01:48:36 +02:00
parent 9ea1940c48
commit 865ab2816d
14 changed files with 463 additions and 284 deletions
@@ -5,16 +5,11 @@
* Authors:
* Ingo Weinhold <[email protected]>
*/
#ifndef _MIME_APP_META_MIME_CREATOR_H
#define _MIME_APP_META_MIME_CREATOR_H
#ifndef _MIME_MIME_ENTRY_PROCESSOR_H
#define _MIME_MIME_ENTRY_PROCESSOR_H
#include <SupportDefs.h>
#include <MergedDirectory.h>
struct entry_ref;
#include <mime/MimeEntryProcessor.h>
namespace BPrivate {
@@ -22,35 +17,14 @@ namespace Storage {
namespace Mime {
class Database;
class AppMetaMimeCreator {
public:
class DatabaseLocker;
class AppMetaMimeCreator : public MimeEntryProcessor {
public:
AppMetaMimeCreator(Database* database,
DatabaseLocker* databaseLocker,
int32 force);
~AppMetaMimeCreator();
virtual ~AppMetaMimeCreator();
status_t Do(const entry_ref& entry, bool* _entryIsDir);
private:
Database* fDatabase;
DatabaseLocker* fDatabaseLocker;
int32 fForce;
};
class AppMetaMimeCreator::DatabaseLocker {
public:
virtual ~DatabaseLocker();
virtual bool Lock() = 0;
virtual void Unlock() = 0;
virtual status_t Do(const entry_ref& entry, bool* _entryIsDir);
};
@@ -59,4 +33,4 @@ public:
} // namespace BPrivate
#endif // _MIME_APP_META_MIME_CREATOR_H
#endif // _MIME_MIME_ENTRY_PROCESSOR_H
@@ -0,0 +1,61 @@
/*
* Copyright 2013, Haiku, Inc. All Rights Reserved.
* Distributed under the terms of the MIT License.
*
* Authors:
* Ingo Weinhold <[email protected]>
*/
#ifndef _MIME_APP_META_MIME_CREATOR_H
#define _MIME_APP_META_MIME_CREATOR_H
#include <SupportDefs.h>
struct entry_ref;
namespace BPrivate {
namespace Storage {
namespace Mime {
class Database;
class MimeEntryProcessor {
public:
class DatabaseLocker;
public:
MimeEntryProcessor(Database* database,
DatabaseLocker* databaseLocker,
int32 force);
virtual ~MimeEntryProcessor();
virtual status_t Do(const entry_ref& entry, bool* _entryIsDir)
= 0;
protected:
Database* fDatabase;
DatabaseLocker* fDatabaseLocker;
int32 fForce;
};
class MimeEntryProcessor::DatabaseLocker {
public:
virtual ~DatabaseLocker();
virtual bool Lock() = 0;
virtual void Unlock() = 0;
};
} // namespace Mime
} // namespace Storage
} // namespace BPrivate
#endif // _MIME_APP_META_MIME_CREATOR_H
@@ -0,0 +1,36 @@
/*
* Copyright 2013, Haiku, Inc. All Rights Reserved.
* Distributed under the terms of the MIT License.
*
* Authors:
* Ingo Weinhold <[email protected]>
*/
#ifndef _MIME_MIME_INFO_UPDATER_H
#define _MIME_MIME_INFO_UPDATER_H
#include <mime/MimeEntryProcessor.h>
namespace BPrivate {
namespace Storage {
namespace Mime {
class MimeInfoUpdater : public MimeEntryProcessor {
public:
MimeInfoUpdater(Database* database,
DatabaseLocker* databaseLocker,
int32 force);
virtual ~MimeInfoUpdater();
virtual status_t Do(const entry_ref& entry, bool* _entryIsDir);
};
} // namespace Mime
} // namespace Storage
} // namespace BPrivate
#endif // _MIME_MIME_INFO_UPDATER_H