60 lines
1.5 KiB
C++
60 lines
1.5 KiB
C++
/******************************************************************************/
|
|
/* VIRTUAL FILE SYSTEM - INLINE CODE ******************************************/
|
|
/******************************************************************************/
|
|
|
|
#ifndef _H_EBCL_INLINE_VFS
|
|
#define _H_EBCL_INLINE_VFS
|
|
#include <ebcl/VFS.hh>
|
|
namespace ebcl {
|
|
|
|
|
|
/*= A_VFSDriver ==============================================================*/
|
|
|
|
inline A_VFSDriver::~A_VFSDriver( )
|
|
{ }
|
|
|
|
inline bool A_VFSDriver::exists( T_FSPath const& path )
|
|
{
|
|
const auto et( typeOf( path ) );
|
|
return et != E_FSEntryType::NONE;
|
|
}
|
|
|
|
|
|
/*= T_VFSFilesystemDriver ====================================================*/
|
|
|
|
inline T_FSPath const& T_VFSFilesystemDriver::root( ) const
|
|
{
|
|
return root_;
|
|
}
|
|
|
|
|
|
/*= X_VFSInitialisationFailure ===============================================*/
|
|
|
|
inline X_VFSInitialisationFailure::X_VFSInitialisationFailure( )
|
|
: std::runtime_error( "unable to initialise VFS" )
|
|
{ }
|
|
|
|
|
|
/*= T_VFS ====================================================================*/
|
|
|
|
template<
|
|
typename DriverType ,
|
|
typename... ArgTypes
|
|
>
|
|
inline T_RegisteredItem T_VFS::addDriver( ArgTypes&& ... arguments )
|
|
{
|
|
return addDriver( NewOwned< DriverType >(
|
|
std::forward< ArgTypes >( arguments ) ... ) );
|
|
}
|
|
|
|
inline constexpr T_FSPathStyle T_VFS::Style( ) noexcept
|
|
{
|
|
return T_FSPathStyle{ true , false ,
|
|
T_Flags< E_FSPathSeparator >{
|
|
E_FSPathSeparator::SLASH ,
|
|
E_FSPathSeparator::BACKSLASH } };
|
|
}
|
|
|
|
|
|
}
|
|
#endif // _H_EBCL_INLINE_VFS
|