corelib/include/ebcl/inline/VFS.hh

61 lines
1.5 KiB
C++
Raw Normal View History

2018-12-23 22:31:34 +01:00
/******************************************************************************/
/* 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