RKH
rkhfwk_cast.h
Go to the documentation of this file.
1 /*
2  * --------------------------------------------------------------------------
3  *
4  * Framework RKH
5  * -------------
6  *
7  * State-machine framework for reactive embedded systems
8  *
9  * Copyright (C) 2010 Leandro Francucci.
10  * All rights reserved. Protected by international copyright laws.
11  *
12  *
13  * RKH is free software: you can redistribute it and/or modify it under the
14  * terms of the GNU General Public License as published by the Free Software
15  * Foundation, either version 3 of the License, or (at your option) any
16  * later version.
17  *
18  * RKH is distributed in the hope that it will be useful, but WITHOUT ANY
19  * WARRANTY; without even the implied warranty of MERCHANTABILITY or
20  * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
21  * more details.
22  *
23  * You should have received a copy of the GNU General Public License along
24  * with RKH, see copying.txt file.
25  *
26  * Contact information:
27  * RKH web site: http://sourceforge.net/projects/rkh-reactivesys/
28  * e-mail: francuccilea@gmail.com
29  * ---------------------------------------------------------------------------
30  */
31 
38 /* -------------------------- Development history -------------------------- */
39 /*
40  * 2017.17.05 LeFr v2.4.05 Initial version
41  */
42 
43 /* -------------------------------- Authors -------------------------------- */
44 /*
45  * LeFr Leandro Francucci francuccilea@gmail.com
46  */
47 
48 /* --------------------------------- Notes --------------------------------- */
49 /* --------------------------------- Module -------------------------------- */
50 #ifndef __RKHFWK_CAST_H__
51 #define __RKHFWK_CAST_H__
52 
53 /* ----------------------------- Include files ----------------------------- */
54 #include "rkhtype.h"
55 #include "rkhcfg.h"
56 
57 /* ---------------------- External C language linkage ---------------------- */
58 #ifdef __cplusplus
59 extern "C" {
60 #endif
61 
62 /* --------------------------------- Macros -------------------------------- */
72 #define RKH_UPCAST(BaseType_, me_) ((BaseType_ *)me_)
73 
80 #define RKH_DOWNCAST(DerivedType_, me_) ((DerivedType_ *)me_)
81 
105 #define RKH_CAST(_type, _obj) ((_type *)(_obj))
106 
107 /* -------------------------------- Constants ------------------------------ */
108 /* ------------------------------- Data types ------------------------------ */
109 /* -------------------------- External variables --------------------------- */
110 /* -------------------------- Function prototypes -------------------------- */
111 /* -------------------- External C language linkage end -------------------- */
112 #ifdef __cplusplus
113 }
114 #endif
115 
116 /* ------------------------------ Module end ------------------------------- */
117 #endif
118 
119 /* ------------------------------ End of file ------------------------------ */
RKH user configurations.
Defines the data types that uses RKH.