MySQL 5.6.14 Source Code Document
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
jtie_tconv_enum.hpp
1 /*
2  Copyright 2010 Sun Microsystems, Inc.
3  All rights reserved. Use is subject to license terms.
4 
5  This program is free software; you can redistribute it and/or modify
6  it under the terms of the GNU General Public License as published by
7  the Free Software Foundation; version 2 of the License.
8 
9  This program is distributed in the hope that it will be useful,
10  but WITHOUT ANY WARRANTY; without even the implied warranty of
11  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  GNU General Public License for more details.
13 
14  You should have received a copy of the GNU General Public License
15  along with this program; if not, write to the Free Software
16  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
17 */
18 /*
19  * jtie_tconv_enum.hpp
20  */
21 
22 #ifndef jtie_tconv_enum_hpp
23 #define jtie_tconv_enum_hpp
24 
25 #include <jni.h>
26 
27 // ---------------------------------------------------------------------------
28 // Java value <-> C enum conversions
29 // ---------------------------------------------------------------------------
30 
31 // currently, only Java int <-> C enum mappings are supported
32 
44  // the enum value (cannot be const to enable assignment)
45  jint value;
46 
47  // conversion constructor
48  _jtie_jint_Enum(jint v) : value(v) {}
49 
50  // conversion operator
51  operator jint() { return value; }
52 };
53 
67 #define JTIE_DEFINE_JINT_ENUM_TYPE_MAPPING( C, T ) \
68  typedef ttrait< jint, C, _jtie_jint_Enum \
69  > ttrait_##T##_iv; \
70  typedef ttrait< jint, C const, _jtie_jint_Enum \
71  > ttrait_##T##_c_iv;
72 
77 /*
78 template < typename J, typename C >
79 struct is_valid_enum_type_mapping;
80 */
81 
82 // XXX to document
83 #define JTIE_INSTANTIATE_JINT_ENUM_TYPE_MAPPING( C )
84 // template struct is_valid_enum_type_mapping< jint, C >;
85 
86 // ---------------------------------------------------------------------------
87 
88 #endif // jtie_tconv_enum_hpp