registrar: Move more classes to libstorage_kit_mime.a

Move MimeSnifferAddon, MimeSnifferAddonManager, and TextSnifferAddon to
libstorage_kit_mime.a, so we can reuse them.
This commit is contained in:
Ingo Weinhold
2013-11-22 12:24:12 +01:00
parent eb539d59e7
commit 85835e4186
9 changed files with 71 additions and 31 deletions
@@ -0,0 +1,67 @@
/*
* Copyright 2006-2013, Ingo Weinhold, [email protected].
* Distributed under the terms of the MIT License.
*/
#ifndef _MINE_MIME_SNIFFER_ADDON_MANAGER_H
#define _MINE_MIME_SNIFFER_ADDON_MANAGER_H
#include <List.h>
#include <Locker.h>
#include <mime/MimeSniffer.h>
class BFile;
class BMimeSnifferAddon;
class BMimeType;
namespace BPrivate {
namespace Storage {
namespace Mime {
class MimeSnifferAddonManager : public BPrivate::Storage::Mime::MimeSniffer {
private:
MimeSnifferAddonManager();
~MimeSnifferAddonManager();
public:
static MimeSnifferAddonManager* Default();
static status_t CreateDefault();
static void DeleteDefault();
status_t AddMimeSnifferAddon(BMimeSnifferAddon* addon);
virtual size_t MinimalBufferSize();
virtual float GuessMimeType(const char* fileName,
BMimeType* type);
virtual float GuessMimeType(BFile* file,
const void* buffer, int32 length,
BMimeType* type);
private:
struct AddonReference;
status_t _GetAddons(AddonReference**& references,
int32& count);
void _PutAddons(AddonReference** references,
int32 count);
static MimeSnifferAddonManager* sManager;
BLocker fLock;
BList fAddons;
size_t fMinimalBufferSize;
};
} // namespace Mime
} // namespace Storage
} // namespace BPrivate
#endif // _MINE_MIME_SNIFFER_ADDON_MANAGER_H
@@ -0,0 +1,37 @@
/*
* Copyright 2006-2013, Ingo Weinhold, [email protected].
* Distributed under the terms of the MIT License.
*/
#ifndef _MIME_TEXT_SNIFFER_ADDON_H
#define _MIME_TEXT_SNIFFER_ADDON_H
#include <MimeSnifferAddon.h>
namespace BPrivate {
namespace Storage {
namespace Mime {
class TextSnifferAddon : public BMimeSnifferAddon {
public:
TextSnifferAddon();
virtual ~TextSnifferAddon();
virtual size_t MinimalBufferSize();
virtual float GuessMimeType(const char* fileName,
BMimeType* type);
virtual float GuessMimeType(BFile* file,
const void* buffer, int32 length,
BMimeType* type);
};
} // namespace Mime
} // namespace Storage
} // namespace BPrivate
#endif // _MIME_TEXT_SNIFFER_ADDON_H