2 * “yurina”: yurina unpretentious renderer is not an anathema
\r
4 * This software is distributed under a BSD-style license.
\r
5 * See license.txt for more information.
\r
10 #include "base/yurinaCommon.h"
\r
11 #include "base/MountInformation.h"
\r
12 //#include "base/YuriFile.h" // 循環参照回避
\r
16 class MountInformation;
\r
21 * @attention マウント情報の扱いがスレッドアンセーフ
\r
40 static MountInformation mountInfo;
\r
41 /** ストレージの型を表すユニークな値.*/
\r
42 static const int ST_VIRTUAL = 0x00;
\r
44 static const int ST_INVALID = -1;
\r
46 /** 現在マウントされているポイントの数. */
\r
51 virtual ~Storage( void );
\r
52 int getStorageType( void ) const { return storageType; }
\r
56 * @attention 飽くまでデバッグ用(再帰を使用するので注意)
\r
58 virtual YuriString toString( void ) const;
\r
60 virtual bool mountOn( const FilePath &targetDirectory );
\r
62 virtual bool unmount( const FilePath &targetDirectory );
\r
65 * ファイル/ディレクトリが存在するか確認する.
\r
66 * @param path 確認するファイル/ディレクトリのパス
\r
68 * @attention 戻り値が真であっても対象が有効である(開ける)保証はない.
\r
70 virtual bool exists( const FilePath &path ) const;
\r
74 * @param filePath サイズを取得するファイルのパス
\r
75 * @return ファイルのサイズ. 失敗した場合は負数を返す
\r
77 virtual off64_t getSizeOf( const FilePath &filePath ) const;
\r
81 * @param filePath 開くファイルのパス
\r
83 * @return 開いたファイル. 成功すると,ファイルの状態はOPENになる
\r
85 virtual YuriFile open( const FilePath &filePath, FileMode mode ) const;
\r
89 * @param file 閉じるファイル
\r
90 * @return 成功した場合0,失敗した場合0以外
\r
91 * @note 閉じるのに成功すると,ファイルの状態はCLOSEDになる
\r
93 virtual int close( YuriFile &file ) const;
\r
96 * ファイルを開き,内容を読み込み,ファイルを閉じる.
\r
97 * @param filePath 読み込むファイルのパス
\r
98 * @param buffer[out] ファイル内容の出力先
\r
99 * @param size 読み込むbyte数の最大値
\r
100 * @param offset 読み込みを開始するファイル先頭からのオフセット
\r
101 * @return 実際に読み込まれたbyte数.
\r
102 * @note size に達する前にファイルの終端に達すると戻り値はsize以下になる
\r
103 * @attention 32bit環境ではsizeは最大2GB
\r
105 virtual size_t read( const FilePath &filePath, unsigned char *buffer,
\r
106 size_t size, off64_t offset = 0 ) const;
\r
110 * @param file 読み込むファイル
\r
111 * @param buffer[out] ファイル内容の出力先
\r
112 * @param size 読み込むbyte数の最大値
\r
113 * @param offset 読み込みを開始するファイル先頭からのオフセット
\r
114 * @return 実際に読み込まれたbyte数.
\r
115 * @note size に達する前にファイルの終端に達すると戻り値はsize以下になる
\r
116 * @attention sizeを省略すると失敗する. 32bit環境ではsizeは最大2GB
\r
118 virtual size_t read( YuriFile &file, unsigned char *buffer,
\r
119 size_t size, off64_t offset = 0 ) const;
\r
122 * 指定された位置にファイルポインタを移動する.
\r
123 * @param file 対象のファイル
\r
124 * @param offset byte単位の移動量
\r
126 * @return 成功した場合0,失敗した場合0以外
\r
128 virtual int seek( YuriFile &file, off64_t offset, SeekOrigin origin ) const;
\r
131 * 指定したストレージを全てアンマウントする.
\r
132 * @param storage 対象ストレージ
\r
133 * @return アンマウントに成功した回数
\r
134 * @attention 全探索を行うので常用すべきでない
\r
136 size_t unmountAll( const Storage *storage );
\r