MySQL 5.6.14 Source Code Document
Main Page
Related Pages
Modules
Namespaces
Classes
Files
Examples
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
jtie_tconv_ptrbybb.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_ptrbybb.hpp
20
*/
21
22
#ifndef jtie_tconv_ptrbybb_hpp
23
#define jtie_tconv_ptrbybb_hpp
24
25
#include <jni.h>
26
27
#include "jtie_tconv.hpp"
28
29
// ---------------------------------------------------------------------------
30
// Java ByteBuffer <-> C array/pointer type conversions
31
// ---------------------------------------------------------------------------
32
33
// root type for ByteBuffer argument/result mappings
34
struct
_jtie_j_n_ByteBuffer
: _jobject {
35
// no need for a class name member as for user-defined classes
36
//static const char * const java_internal_class_name;
37
};
38
typedef
_jtie_j_n_ByteBuffer
*
jtie_j_n_ByteBuffer
;
39
40
// subtype for ByteBuffer mappings with a required/allocated buffer size
41
template
< j
long
N >
42
struct
_jtie_j_n_BoundedByteBuffer
:
_jtie_j_n_ByteBuffer
{
43
static
const
jlong capacity = N;
44
};
45
46
// wrapper type for BoundedByteBuffer mappings for template specialization
47
template
<
typename
J >
48
struct
_jtie_j_n_ByteBufferMapper
: J {};
49
65
#define JTIE_DEFINE_BYTEBUFFER_PTR_TYPE_MAPPING( C, T ) \
66
typedef ttrait< jobject, C *, jtie_j_n_ByteBuffer \
67
> ttrait_##T##_0p_bb; \
68
typedef ttrait< jobject, const C *, jtie_j_n_ByteBuffer \
69
> ttrait_##T##_0cp_bb; \
70
typedef ttrait< jobject, C * const, jtie_j_n_ByteBuffer \
71
> ttrait_##T##_0pc_bb; \
72
typedef ttrait< jobject, const C * const, jtie_j_n_ByteBuffer \
73
> ttrait_##T##_0cpc_bb;
74
75
JTIE_DEFINE_BYTEBUFFER_PTR_TYPE_MAPPING(
void
,
void
)
76
77
92
#define JTIE_DEFINE_BYTEBUFFER_PTR_LENGTH1_TYPE_MAPPING( C, T ) \
93
typedef ttrait< jobject, C *, _jtie_j_n_ByteBufferMapper< _jtie_j_n_BoundedByteBuffer< sizeof(C) > > * \
94
> ttrait_##T##_1p_bb; \
95
typedef ttrait< jobject, const C *, _jtie_j_n_ByteBufferMapper< _jtie_j_n_BoundedByteBuffer< sizeof(C) > > * \
96
> ttrait_##T##_1cp_bb; \
97
typedef ttrait< jobject, C * const, _jtie_j_n_ByteBufferMapper< _jtie_j_n_BoundedByteBuffer< sizeof(C) > > * \
98
> ttrait_##T##_1pc_bb; \
99
typedef ttrait< jobject, const C * const, _jtie_j_n_ByteBufferMapper< _jtie_j_n_BoundedByteBuffer< sizeof(C) > > * \
100
> ttrait_##T##_1cpc_bb;
101
102
// XXX cleanup (or remove corresponding unit test cases)
103
#if 1
104
// aliases for: <[const-]void>_<[const-]pointer>_<ByteBuffer<size=1>>
105
typedef
ttrait< jobject, const void *, _jtie_j_n_ByteBufferMapper< _jtie_j_n_BoundedByteBuffer< 1 >
> * >
ttrait_void_1cp_bb
;
106
typedef
ttrait< jobject, void *, _jtie_j_n_ByteBufferMapper< _jtie_j_n_BoundedByteBuffer< 1 >
> * >
ttrait_void_1p_bb
;
107
typedef
ttrait< jobject, const void * const, _jtie_j_n_ByteBufferMapper< _jtie_j_n_BoundedByteBuffer< 1 >
> * >
ttrait_void_1cpc_bb
;
108
typedef
ttrait< jobject, void * const, _jtie_j_n_ByteBufferMapper< _jtie_j_n_BoundedByteBuffer< 1 >
> * >
ttrait_void_1pc_bb
;
109
#endif
110
111
// ---------------------------------------------------------------------------
112
113
#endif // jtie_tconv_ptrbybb_hpp
storage
ndb
src
ndbjtie
jtie
jtie_tconv_ptrbybb.hpp
Generated on Sat Nov 9 2013 01:28:11 for MySQL 5.6.14 Source Code Document by
1.8.1.2