OSDN Git Service

3c835d7360788d10338acff3b7bbdacdeaaa3836
[hos/hos-v4a.git] / aplfw / system / handle / handleobj.h
1 /** 
2  *  Hyper Operating System  Application Framework
3  *
4  * @file  handle.h
5  * @brief %jp{ハンドルオブジェクト}
6  *
7  * Copyright (C) 2006 by Project HOS
8  * http://sourceforge.jp/projects/hos/
9  */
10
11
12 #ifndef __HOS__hdlobj_h__
13 #define __HOS__hdlobj_h__
14
15
16 #include "system/handle/handle.h"
17
18
19 /* ハンドルオブジェクトクラスのメソッドテーブル定義 */
20 typedef struct t_handleobj_methods
21 {
22         void (*pfncDelete)(HANDLE handle);              /* デストラクタ */
23 } T_HANDLEOBJ_METHODS;
24
25
26 /* ハンドルオブジェクトクラス定義 */
27 typedef struct c_handleobj
28 {
29         const T_HANDLEOBJ_METHODS *pMethods;
30 } C_HANDLEOBJ;
31
32
33 #ifdef __cplusplus
34 extern "C" {
35 #endif
36
37 void    HandleObj_Create(C_HANDLEOBJ *self, const T_HANDLEOBJ_METHODS *pMethods);       /* コンストラクタ */
38 void    HandleObj_Delete(C_HANDLEOBJ *self);                                                                            /* デストラクタ */
39 #define HandleObj_GetMethods(self)              ((self)->pMethods)
40
41 void Handle_Close(HANDLE handle);                       /* ハンドルを閉じる */
42
43 #ifdef __cplusplus
44 }
45 #endif
46
47
48 #endif  /* __HOS__hdlobj_h__ */
49
50
51 /* end of file */