OSDN Git Service

a5316e93f62ff21b445e5589a4f76f4002cbfd90
[hos/hos-v4a.git] / aplfw / system / file / fileobj.h
1 /** 
2  *  Hyper Operating System  Application Framework
3  *
4  * @file  fileobj.h
5  * @brief %jp{ファイルオブジェクト}
6  *
7  * %jp{ファイルディスクリプタとして機能するクラス}
8  *
9  * Copyright (C) 2006 by Project HOS
10  * http://sourceforge.jp/projects/hos/
11  */
12
13
14 #ifndef __HOS__fileobj_h__
15 #define __HOS__fileobj_h__
16
17
18 #include "system/handle/handleobj.h"
19 #include "system/file/file.h"
20
21 struct c_drvobj;
22
23 /* ファイルオブジェクトクラス基本メソッドテーブル */
24 typedef struct t_fileobj_methods
25 {
26         T_HANDLEOBJ_METHODS     HandlObjMethods;        /* ハンドルオブジェクトを継承 */
27 } T_FILEOBJ_METHODS;
28
29
30 /* ファイルブジェクト基本クラス定義 */
31 typedef struct c_fileobj
32 {
33         C_HANDLEOBJ             HandleObj;                              /* ハンドルオブジェクトを継承 */
34         struct c_drvobj *pDrvObj;                               /* デバイスドライバへの参照 */
35 } C_FILEOBJ;
36
37
38 #include "drvobj.h"
39
40
41 /* ハンドル変換 */
42 #define FILE_HANDLE2OBJ(hFile)          ((C_FILEOBJ *)(hFile))
43
44
45 #ifdef __cplusplus
46 extern "C" {
47 #endif
48
49 void FileObj_Create(C_FILEOBJ *self, struct c_drvobj *pDrvObj, const T_FILEOBJ_METHODS *pMethods);
50 void FileObj_Delete(HANDLE self);
51
52 #ifdef __cplusplus
53 }
54 #endif
55
56
57
58
59 #endif  /* __HOS__file_h__ */
60
61
62 /* end of file */