7 #include <lufs/proto.h>
13 #include "file_handle.h"
14 #include "fs_modules.h"
17 /********* FSModule methods **************/
19 string FSModule::GetVirtualFilename(const char* fname)
21 if(endswith(fname, GetRealExtension()))
22 return string(fname)+GetVirtualExtension();
27 bool FSModule::IsMyVirtualFilename(const char* fname)
29 // ends with virtual extension ?
30 string real_candidate = removeend( fname, GetVirtualExtension() );
31 if( real_candidate.size() == 0 )
34 // real filename ends with real extension corresponding to the compression we use ?
35 return endswith(real_candidate.c_str(),GetRealExtension());
38 string FSModule::GetRealFilename( const char* virtuel )
40 return removeend( virtuel, GetVirtualExtension() );
43 FileHandle* FSModule::Open( const char* path )
45 TRACE(Identity()<<" tries to open "<<path);
47 if( !IsMyVirtualFilename(path) )
50 string real_path = GetRealFilename(path);
51 TRACE(Identity()<<" => name matches, i'll look closer at "<<path<<" ** "<<real_path);
53 FileHandle *handle = CreateHandle(path,real_path.c_str());
54 if( handle->Open()<0 )
64 /********* FSModule_Default methods **************/
66 string FSModule_Default::GetVirtualFilename(const char* fname)
71 bool FSModule_Default::IsMyVirtualFilename(const char* fname)
76 string FSModule_Default::GetRealFilename( const char* virtuel )
81 /********* FSModule_Flac methods **************/