History log of /haiku/src/servers/registrar/MIMEManager.cpp
Revision Date Author Comments
# 4fbebc21 26-Jan-2024 Augustin Cavalier <waddlesplash@gmail.com>

registrar: Back out change to convert case in B_REG_MIME_GET_SUPPORTING_APPS.

This reverts commit 3ab43722bf0e4078ab924d015f7f790e84b570cb.

Now that GetSupportingApps does case conversion, we don't need to do it here.


# 3ab43722 17-Jan-2024 Humdinger <humdinger@mailbox.org>

MIMEManager: use lowercase MIME when calling GetSupportingApps()

The list of supporting applications is generated case-insensitive
by making all items lowercase, see
src/kits/storage/mime/SupportingApps.cpp:302

Force the MIME type to lowercase before calling GetSupportingApps()
or a MIME containing uppercase isn't found.

Fixes #18752

Change-Id: I38252cd1be8f059d7df4bf8775855b6343a489c0
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7340
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>


# 6140f897 21-Nov-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

TextSnifferAddon: Use MIME DB directly

A DatabaseLocation is passed to the constructor and used to verify that
the sniffed MIME type is installed instead of BMimeType::IsInstalled().
This makes the add-on independent of the default MIME DB.


# 85835e41 22-Nov-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

registrar: Move more classes to libstorage_kit_mime.a

Move MimeSnifferAddon, MimeSnifferAddonManager, and TextSnifferAddon to
libstorage_kit_mime.a, so we can reuse them.


# 865ab281 08-May-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

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.


# b6a89f41 07-May-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Pull class AppMetaMimeCreator out of CreateAppMetaMimeThread

Instead of using a BMimeType to set the MIME type properties, it
operates directly on the Database object, though.


# b94857b3 07-May-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Refactor MIME DB access

* Add class DatabaseLocation. It contains a list of the MIME DB
directory paths plus methods to access type files.
* Move all low-level MIME DB access functions from
database_{support,access} to DatabaseLocation. All code that formerly
used those now requires a DatabaseLocation object. In BMimeType and in
the registrar the default object is used, but the low-level classes
can now be reused with different locations.
* Move get_icon_data() from database_access to database_support and
delete the former, which is now empty.


# 9cda9c99 07-May-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Move MIME DB code back from registrar to src/kits/storage/mime

* Together with database_{access,support}.cpp it is built into a static
library.
* Add new interfaces MimeSniffer and Database::NotificationListener for
plugging in registrar specific functionality (the sniffer add-on
support and the notification mechanism).


# 50cedfd5 02-Aug-2012 Alex Smith <alex@alex-smith.me.uk>

Build registrar for x86_64.


# 2882dba2 24-Feb-2010 Alexandre Deckner <alex@zappotek.com>

* remove left-overs of deprecated ClassInfo.h includes (cf. OpenGrok) except in SupportKit.h for backward source compatiblity (although it shouldn't really matter).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35604 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a0439d88 09-Nov-2009 Axel Dörfler <axeld@pinc-software.de>

* Adjusted thread priorities of several system services based on a mail from
Mikhail Panasyuk: since worker threads often end up with B_NORMAL_PRIORITY,
it might be a good idea to give system threads a higher priority.
* Minor cleanup (mostly automatic whitespace).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33961 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 654aaf6e 31-May-2008 Axel Dörfler <axeld@pinc-software.de>

Quick build fix.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25736 a95241bf-73f2-0310-859d-f6bbb57e9c96


# fde63f56 07-May-2008 Stephan Aßmus <superstippi@gmx.de>

Better naming of a variable.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25354 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f82c11c0 11-Jan-2008 Michael Lotz <mmlr@mlotz.ch>

bonefish+mmlr:
* Move most of MIME database support out of libbe and into registrar
* Use the (async) MessageDeliverer instead of a synchronous SendMessage in _SendMonitorUpdate

This fixes a deadlock when the message port of a MIME database watching
application gets full as documented in bug #1311.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23423 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7fb6186f 29-Aug-2006 Stephan Aßmus <superstippi@gmx.de>

* integration of vector icons with the registrar and the mime data base
* additional versions of SetIcon[ForType] and GetIcon[ForType] in BMimeType
and BAppFileInfo, which handle flat vector icon data
* changes in Tracker to support scalable icons (currently broken for
non-vector icons and needs cleanup) and drawing icons correctly with alpha
channel (large parts of this work done by Michael Lotz)

If someone feels like looking over the changes, that would be much
appreciated! :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18699 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e4f35acf 09-Jun-2006 Ingo Weinhold <ingo_weinhold@gmx.de>

* Added new (currently private) API class BMimeSnifferAddon,
representing the interface for, well, MIME sniffer add-ons.
* Implemented the respective add-on manager and make use of it in
the MIME database code. Unfortunately the MIME DB code completely
lives in libbe.so and hence I had to put my code there too.
IMHO we should (one day) remove the direct (read-only) MIME DB
access from libbe and move everything into the registrar.
Currently the add-on manager supports built-in add-ons only; it
doesn't really load anything from disk ATM.
* Added a built-in text sniffer add-on to the registrar. It's based
upon the BSD file tool code.

This closes bug #250 (plain text files are identified as such, now).



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17784 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 15424f3d 28-Jan-2006 Ingo Weinhold <ingo_weinhold@gmx.de>

Finally fixed update_mime_info(). As Be's version it understands two
different "force" levels now and updates the app file info attributes
for shared object files.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16123 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d8247d2b 17-Jan-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

Changes due to moving RegistrarDefs stuff into the BPrivate namespace.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10815 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 807ea2fa 14-Jan-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

More informative debug output. The MIME manager keeps on getting spurious what == 0xffffffff messages under Haiku. Needs to be investigated.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10729 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c1020631 11-Jan-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

The case for data-only-based MIME type sniffing was missing.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10684 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 41e9b8c4 28-Jul-2004 haydentech <haydentech@nowhere.fake>

gcc3 fixes necessary to compile and link the registrar


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8494 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6fe0c83d 01-Oct-2002 Tyler Dauwalder <tylerdauwalder@nowhere.fake>

Updated to use RegistrarThreadManager instead of ThreadManager


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1332 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4a94b7bb 29-Sep-2002 Tyler Dauwalder <tylerdauwalder@nowhere.fake>

+ Added ThreadManager object to MIMEManager
+ Reimplemented mime update calls to now handle both synchronous
and asynchronous calls, as well as work with RegistrarThreads and
the ThreadManager.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1277 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1bd963b6 23-Sep-2002 Tyler Dauwalder <tylerdauwalder@nowhere.fake>

+ Added file-extension based mime type guessing
+ Added sniffer rule based mime type guessing
+ Added get_device_icon()
+ Added complete (synchronous, asynchronous; recursive,
non-recursive; forcing, non-forcing; you name it we got it :-)
update_mime_info() implementation.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1152 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e3a2f206 09-Sep-2002 Tyler Dauwalder <tylerdauwalder@nowhere.fake>

+ Added SetSupportedTypes() test
+ Modified BMimeType::SetSupportedTypes functionality so it keeps track of
stranded types (i.e. previously supported types that have not had the now
unsupporting app signature removed from their supporting apps list yet due
to a false fullSync parameter) over consecutive SetSupportedTypes(...,
false) calls and updates all appropriate stranded types on the next
SetSupportedTypes(..., true) call.
+ Added fullSync parameter to BMimeType::DeleteSupportedTypes
+ Made BMimeType::Delete() do a DeleteSupportedTypes(..., true) call to
properly update the supporting apps lists when a mime type is deleted.
+ Added initial BMimeType::Get/SetSnifferRule
+ Updated BMimeType::CheckSnifferRule() to return B_BAD_VALUE when passed
a NULL rule string.
+ Brought CheckSnifferRule() tests up to date
+ Added lots of Mime::Database doxygen
+ Added any missing mime monitor notifications in Mime::Database
+ Possibly made some other changes as well... :-)


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1004 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d7526269 28-Aug-2002 Tyler Dauwalder <tylerdauwalder@nowhere.fake>

Added B_REG_MIME_GET_SUPPORTING_APPS functionality


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@926 a95241bf-73f2-0310-859d-f6bbb57e9c96


# cf077673 25-Aug-2002 Ingo Weinhold <ingo_weinhold@gmx.de>

Added B_REG_MIME_UNSUPPORT_TYPES case in MessageReceived(). No implementation for now.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@883 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e20a514a 23-Aug-2002 Tyler Dauwalder <tylerdauwalder@nowhere.fake>

After implementing the BMimeType::GetInstalled[Super]Types()
functionality, it became apparent that some restructuring was
needed if I wanted to keep things clean and managble.
storage/MimeDatabase.{h,cpp} have been broken into:

storage/mime/database_support.{h,cpp}
+ MIME database constants
+ high-level database access functions like open_type(),
read_mime_attr(), etc.

storage/mime/database_access.{h,cpp}
+ atomic read functions
+ is_installed()
+ get_icon_data()

storage/mime/Database.{h,cpp}
+ Mime::Database class, which is responsible for all write,
non-atomic read, and mime monitor functionality.

storage/mime/InstalledTypes.{h,cpp}
+ Helper class for Mime::Database::GetInstalled[Super]Types()

storage/mime/Supertype.{h,cpp}
+ Helper class for Mime::InstalledTypes

I haven't merged my intial, somewhat cludgy GetInstalled[Super]Types
implementation into the new setup yet. That comes next, and it ought
to be a more graceful implementation now.

I also implemented BMimeType::Get/SetSupportingTypes(), though
they haven't been tested yet (sorry).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@862 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3155eae2 21-Aug-2002 Tyler Dauwalder <tylerdauwalder@nowhere.fake>

+ Added code/updated tests for
- AttrInfo
- FileExtensions
+ Updated Delete() code to send monitor updates
+ Tenatively added "be:action" field to monitor messages
+ Added data type constants


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@847 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1ed04c7c 20-Aug-2002 Tyler Dauwalder <tylerdauwalder@nowhere.fake>

Added code for:
+ {Get,Set}IconForType()
+ Delete*() functions


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@834 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7cf4e78a 19-Aug-2002 Tyler Dauwalder <tylerdauwalder@nowhere.fake>

+ Updated doxygen
+ Added code for:
- B_REG_MIME_SET_PARAM::B_REG_MIME_PREFERRED_APP
- B_REG_MIME_SET_PARAM::B_REG_MIME_APP_HINT
- B_REG_MIME_SET_PARAM::B_REG_MIME_ICON


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@821 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f978bce0 16-Aug-2002 Tyler Dauwalder <tylerdauwalder@nowhere.fake>

+ Added fMimeDatabase member
+ Updated MessageReceived to handle:
- B_REG_MIME_SET_PARAM.B_REG_MIME_DESCRIPTION
- B_REG_MIME_{START,STOP}_WATCHING
- B_REG_MIME_{INSTALL,DELETE}


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@789 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c09fb4b9 28-Jul-2002 Ingo Weinhold <ingo_weinhold@gmx.de>

Added doxygen comments.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@495 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4b8a7115 21-Jul-2002 Ingo Weinhold <ingo_weinhold@gmx.de>

Added a registrar skeleton.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@374 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6140f897d4bb393fd0fd1ca82261b7a0d440aab0 21-Nov-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

TextSnifferAddon: Use MIME DB directly

A DatabaseLocation is passed to the constructor and used to verify that
the sniffed MIME type is installed instead of BMimeType::IsInstalled().
This makes the add-on independent of the default MIME DB.


# 85835e41862b98714845fd143a4df5b2c7369dd9 22-Nov-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

registrar: Move more classes to libstorage_kit_mime.a

Move MimeSnifferAddon, MimeSnifferAddonManager, and TextSnifferAddon to
libstorage_kit_mime.a, so we can reuse them.


# 865ab2816de47da3e2d82a3ef808d03d69fe1436 08-May-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

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.


# b6a89f410eb68626663104bd9687830504634cb9 07-May-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Pull class AppMetaMimeCreator out of CreateAppMetaMimeThread

Instead of using a BMimeType to set the MIME type properties, it
operates directly on the Database object, though.


# b94857b322093c296230a18d47f6a98a2896b062 07-May-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Refactor MIME DB access

* Add class DatabaseLocation. It contains a list of the MIME DB
directory paths plus methods to access type files.
* Move all low-level MIME DB access functions from
database_{support,access} to DatabaseLocation. All code that formerly
used those now requires a DatabaseLocation object. In BMimeType and in
the registrar the default object is used, but the low-level classes
can now be reused with different locations.
* Move get_icon_data() from database_access to database_support and
delete the former, which is now empty.


# 9cda9c9905397675aec87ebc6bc9287df3ca2264 07-May-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Move MIME DB code back from registrar to src/kits/storage/mime

* Together with database_{access,support}.cpp it is built into a static
library.
* Add new interfaces MimeSniffer and Database::NotificationListener for
plugging in registrar specific functionality (the sniffer add-on
support and the notification mechanism).


# 50cedfd5b01a968c2da00bfd014360b24a3aac66 02-Aug-2012 Alex Smith <alex@alex-smith.me.uk>

Build registrar for x86_64.


# 2882dba2a1b05893c176324e99a80ccf7f857873 24-Feb-2010 Alexandre Deckner <alex@zappotek.com>

* remove left-overs of deprecated ClassInfo.h includes (cf. OpenGrok) except in SupportKit.h for backward source compatiblity (although it shouldn't really matter).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35604 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a0439d88df9202e0a5aea9fbe587a1eaf88dd348 09-Nov-2009 Axel Dörfler <axeld@pinc-software.de>

* Adjusted thread priorities of several system services based on a mail from
Mikhail Panasyuk: since worker threads often end up with B_NORMAL_PRIORITY,
it might be a good idea to give system threads a higher priority.
* Minor cleanup (mostly automatic whitespace).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33961 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 654aaf6ee219b433f8a5937abb4ad265c0cfa15c 31-May-2008 Axel Dörfler <axeld@pinc-software.de>

Quick build fix.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25736 a95241bf-73f2-0310-859d-f6bbb57e9c96


# fde63f56024a7f6a50dd3f09e9d1caffa23ab6d3 07-May-2008 Stephan Aßmus <superstippi@gmx.de>

Better naming of a variable.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25354 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f82c11c0793269f483e03fc6f1a3a93aa1d092f0 11-Jan-2008 Michael Lotz <mmlr@mlotz.ch>

bonefish+mmlr:
* Move most of MIME database support out of libbe and into registrar
* Use the (async) MessageDeliverer instead of a synchronous SendMessage in _SendMonitorUpdate

This fixes a deadlock when the message port of a MIME database watching
application gets full as documented in bug #1311.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23423 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7fb6186f3cb93a14ea0f96a82bdfc3d18f3ad56e 29-Aug-2006 Stephan Aßmus <superstippi@gmx.de>

* integration of vector icons with the registrar and the mime data base
* additional versions of SetIcon[ForType] and GetIcon[ForType] in BMimeType
and BAppFileInfo, which handle flat vector icon data
* changes in Tracker to support scalable icons (currently broken for
non-vector icons and needs cleanup) and drawing icons correctly with alpha
channel (large parts of this work done by Michael Lotz)

If someone feels like looking over the changes, that would be much
appreciated! :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18699 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e4f35acf7c780f50e5f4ca4fc664b6c6806e8fbf 09-Jun-2006 Ingo Weinhold <ingo_weinhold@gmx.de>

* Added new (currently private) API class BMimeSnifferAddon,
representing the interface for, well, MIME sniffer add-ons.
* Implemented the respective add-on manager and make use of it in
the MIME database code. Unfortunately the MIME DB code completely
lives in libbe.so and hence I had to put my code there too.
IMHO we should (one day) remove the direct (read-only) MIME DB
access from libbe and move everything into the registrar.
Currently the add-on manager supports built-in add-ons only; it
doesn't really load anything from disk ATM.
* Added a built-in text sniffer add-on to the registrar. It's based
upon the BSD file tool code.

This closes bug #250 (plain text files are identified as such, now).



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17784 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 15424f3d37665c19370cc5af241f1a37ece82e85 28-Jan-2006 Ingo Weinhold <ingo_weinhold@gmx.de>

Finally fixed update_mime_info(). As Be's version it understands two
different "force" levels now and updates the app file info attributes
for shared object files.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16123 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d8247d2bd96c27450ba2a298ef6dacd05c6ac604 17-Jan-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

Changes due to moving RegistrarDefs stuff into the BPrivate namespace.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10815 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 807ea2fa80345c67de40f37338f8f3788bc23646 14-Jan-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

More informative debug output. The MIME manager keeps on getting spurious what == 0xffffffff messages under Haiku. Needs to be investigated.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10729 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c10206311d7d063a8acc5655ad8a33d7ffbae886 11-Jan-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

The case for data-only-based MIME type sniffing was missing.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10684 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 41e9b8c42ac34497610bf1c495513f5ece3816fe 28-Jul-2004 haydentech <haydentech@nowhere.fake>

gcc3 fixes necessary to compile and link the registrar


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8494 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6fe0c83d382545336f1c7a3829ffff21b7e536e1 01-Oct-2002 Tyler Dauwalder <tylerdauwalder@nowhere.fake>

Updated to use RegistrarThreadManager instead of ThreadManager


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1332 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4a94b7bbb3b7dd28ec1b999c2b6407733e15631c 29-Sep-2002 Tyler Dauwalder <tylerdauwalder@nowhere.fake>

+ Added ThreadManager object to MIMEManager
+ Reimplemented mime update calls to now handle both synchronous
and asynchronous calls, as well as work with RegistrarThreads and
the ThreadManager.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1277 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1bd963b6c27017324c3589c8ea29d635e1552b7f 23-Sep-2002 Tyler Dauwalder <tylerdauwalder@nowhere.fake>

+ Added file-extension based mime type guessing
+ Added sniffer rule based mime type guessing
+ Added get_device_icon()
+ Added complete (synchronous, asynchronous; recursive,
non-recursive; forcing, non-forcing; you name it we got it :-)
update_mime_info() implementation.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1152 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e3a2f2069e5e2614e2a96c24502c91b482ec8e65 09-Sep-2002 Tyler Dauwalder <tylerdauwalder@nowhere.fake>

+ Added SetSupportedTypes() test
+ Modified BMimeType::SetSupportedTypes functionality so it keeps track of
stranded types (i.e. previously supported types that have not had the now
unsupporting app signature removed from their supporting apps list yet due
to a false fullSync parameter) over consecutive SetSupportedTypes(...,
false) calls and updates all appropriate stranded types on the next
SetSupportedTypes(..., true) call.
+ Added fullSync parameter to BMimeType::DeleteSupportedTypes
+ Made BMimeType::Delete() do a DeleteSupportedTypes(..., true) call to
properly update the supporting apps lists when a mime type is deleted.
+ Added initial BMimeType::Get/SetSnifferRule
+ Updated BMimeType::CheckSnifferRule() to return B_BAD_VALUE when passed
a NULL rule string.
+ Brought CheckSnifferRule() tests up to date
+ Added lots of Mime::Database doxygen
+ Added any missing mime monitor notifications in Mime::Database
+ Possibly made some other changes as well... :-)


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1004 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d7526269d7111f8bbb555fd14530759495a57a23 28-Aug-2002 Tyler Dauwalder <tylerdauwalder@nowhere.fake>

Added B_REG_MIME_GET_SUPPORTING_APPS functionality


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@926 a95241bf-73f2-0310-859d-f6bbb57e9c96


# cf077673938647cf3d764b8f2ab33f8d9d1addb4 25-Aug-2002 Ingo Weinhold <ingo_weinhold@gmx.de>

Added B_REG_MIME_UNSUPPORT_TYPES case in MessageReceived(). No implementation for now.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@883 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e20a514ae90bd65d06ff19517a1220b3f92760ee 23-Aug-2002 Tyler Dauwalder <tylerdauwalder@nowhere.fake>

After implementing the BMimeType::GetInstalled[Super]Types()
functionality, it became apparent that some restructuring was
needed if I wanted to keep things clean and managble.
storage/MimeDatabase.{h,cpp} have been broken into:

storage/mime/database_support.{h,cpp}
+ MIME database constants
+ high-level database access functions like open_type(),
read_mime_attr(), etc.

storage/mime/database_access.{h,cpp}
+ atomic read functions
+ is_installed()
+ get_icon_data()

storage/mime/Database.{h,cpp}
+ Mime::Database class, which is responsible for all write,
non-atomic read, and mime monitor functionality.

storage/mime/InstalledTypes.{h,cpp}
+ Helper class for Mime::Database::GetInstalled[Super]Types()

storage/mime/Supertype.{h,cpp}
+ Helper class for Mime::InstalledTypes

I haven't merged my intial, somewhat cludgy GetInstalled[Super]Types
implementation into the new setup yet. That comes next, and it ought
to be a more graceful implementation now.

I also implemented BMimeType::Get/SetSupportingTypes(), though
they haven't been tested yet (sorry).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@862 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3155eae222d119aa730971cebdfad8575838eb44 21-Aug-2002 Tyler Dauwalder <tylerdauwalder@nowhere.fake>

+ Added code/updated tests for
- AttrInfo
- FileExtensions
+ Updated Delete() code to send monitor updates
+ Tenatively added "be:action" field to monitor messages
+ Added data type constants


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@847 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1ed04c7ce321cd6d04cc7d154ec760e19240fb20 20-Aug-2002 Tyler Dauwalder <tylerdauwalder@nowhere.fake>

Added code for:
+ {Get,Set}IconForType()
+ Delete*() functions


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@834 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7cf4e78a5d7ab6fdcea2e8e5eca30aec2f6355c7 19-Aug-2002 Tyler Dauwalder <tylerdauwalder@nowhere.fake>

+ Updated doxygen
+ Added code for:
- B_REG_MIME_SET_PARAM::B_REG_MIME_PREFERRED_APP
- B_REG_MIME_SET_PARAM::B_REG_MIME_APP_HINT
- B_REG_MIME_SET_PARAM::B_REG_MIME_ICON


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@821 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f978bce0b03085f75103d8df91dc4f4c1106a520 16-Aug-2002 Tyler Dauwalder <tylerdauwalder@nowhere.fake>

+ Added fMimeDatabase member
+ Updated MessageReceived to handle:
- B_REG_MIME_SET_PARAM.B_REG_MIME_DESCRIPTION
- B_REG_MIME_{START,STOP}_WATCHING
- B_REG_MIME_{INSTALL,DELETE}


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@789 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c09fb4b9716af9fe514087b57f5a3a08f9040530 28-Jul-2002 Ingo Weinhold <ingo_weinhold@gmx.de>

Added doxygen comments.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@495 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4b8a71155aa54849431a5d3fa9e76b9c8a3a0308 21-Jul-2002 Ingo Weinhold <ingo_weinhold@gmx.de>

Added a registrar skeleton.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@374 a95241bf-73f2-0310-859d-f6bbb57e9c96