Libmagicxx v10.0.3
A modern C++23 wrapper for libmagic — the library that powers the Unix file command.
Loading...
Searching...
No Matches

Instance initialization methods. More...

Collaboration diagram for Open Reopen:

Functions

void Recognition::Magic::MagicPrivate::Open (FlagsMaskT flags_mask)
 Open the magic instance with flags (throwing version).
bool Recognition::Magic::MagicPrivate::Open (FlagsMaskT flags_mask, const std::nothrow_t &tag) noexcept
 Open the magic instance with flags (noexcept version).
void Recognition::Magic::MagicPrivate::Open (const FlagsContainerT &flags_container)
 Open with flags container (throwing version).
bool Recognition::Magic::MagicPrivate::Open (const FlagsContainerT &flags_container, const std::nothrow_t &tag) noexcept
 Open with flags container (noexcept version).

Detailed Description

Instance initialization methods.

Methods for opening and reopening the libmagic cookie.

Function Documentation

◆ Open() [1/4]

void Recognition::Magic::MagicPrivate::Open ( const FlagsContainerT & flags_container)
inline

Open with flags container (throwing version).

Convenience overload accepting a container of individual Flags values. Converts to bitmask and delegates to Open(FlagsMaskT).

Parameters
[in]flags_containerContainer (vector) of Flags enum values.
Exceptions
MagicOpenErrorIf magic_open() fails.
See also
Magic::Open(const FlagsContainerT&)
Open(FlagsMaskT)
FlagsConverter

◆ Open() [2/4]

bool Recognition::Magic::MagicPrivate::Open ( const FlagsContainerT & flags_container,
const std::nothrow_t & tag )
inlinenodiscardnoexcept

Open with flags container (noexcept version).

Non-throwing convenience overload accepting a container of Flags.

Parameters
[in]flags_containerContainer (vector) of Flags enum values.
[in]tagPass std::nothrow to select this overload.
Returns
true on success, false on failure.
See also
Magic::Open(const FlagsContainerT&, const std::nothrow_t&)

◆ Open() [3/4]

void Recognition::Magic::MagicPrivate::Open ( FlagsMaskT flags_mask)
inline

Open the magic instance with flags (throwing version).

Allocates the libmagic cookie with the specified configuration flags. This is required before loading a database or identifying files.

Parameters
[in]flags_maskConfiguration flags as a bitmask.
Exceptions
MagicOpenErrorIf magic_open() fails.
Lifecycle Transitions
  • ClosedOpened
  • OpenedOpened (reopens, database unloaded)
  • ValidOpened (reopens, database unloaded)
libmagic Call
m_cookie.reset(Detail::magic_open(FlagsConverter(flags_mask)));
CookieT m_cookie
Definition magic.cpp:1920
Converter between C++ flag types and libmagic flag values.
Definition magic.cpp:2105
Note
Calling Open() on an already-open instance will reopen it, which unloads any previously loaded database.
See also
Magic::Open(FlagsMaskT)
LoadDatabaseFile()
FlagsConverter

◆ Open() [4/4]

bool Recognition::Magic::MagicPrivate::Open ( FlagsMaskT flags_mask,
const std::nothrow_t & tag )
inlinenodiscardnoexcept

Open the magic instance with flags (noexcept version).

Non-throwing variant that returns success/failure status.

Parameters
[in]flags_maskConfiguration flags as a bitmask.
[in]tagPass std::nothrow to select this overload.
Returns
true on success (now in Opened state), false if magic_open() fails.
Lifecycle Transitions
  • ClosedOpened on success
  • Opened/ValidOpened on success (database unloaded)
  • No transition on failure
See also
Magic::Open(FlagsMaskT, const std::nothrow_t&)
LoadDatabaseFile()