コード例 #1
0
ファイル: field.hpp プロジェクト: felipealmeida/javabind
void write_field(environment e, jobject obj, const char* name, T value)
{
  std::string descriptor;
  jvb::detail::descriptors::descriptor<T>
    (e, std::back_inserter(descriptor));
  jclass cls = e.raw()->GetObjectClass(obj);
  jfieldID fid = e.raw()->GetFieldID(cls, name, descriptor.c_str());
  assert(fid != 0);
  jvb::detail::set_field(e.raw(), obj, fid, value);
}
コード例 #2
0
ファイル: field.hpp プロジェクト: felipealmeida/javabind
void write_static_field(environment e, jvb::class_ class_, const char* name, T value)
{
  std::string descriptor;
  jvb::detail::descriptors::descriptor<T>
    (e, std::back_inserter(descriptor));
  jclass cls = class_.raw();
  jfieldID fid = e.raw()->GetStaticFieldID(cls, name, descriptor.c_str());
  assert(fid != 0);
  jvb::detail::set_static_field(e.raw(), cls, fid, value);
}
コード例 #3
0
ファイル: field.hpp プロジェクト: felipealmeida/javabind
T read_static_field(environment e, jvb::class_ class_, const char* name)
{
  std::string descriptor;
  jvb::detail::descriptors::descriptor<T>
    (e, std::back_inserter(descriptor));
  jclass cls = class_.raw();
  std::cout << "Searching for " << name << " with descriptor " << descriptor << std::endl;
  jfieldID fid = e.raw()->GetStaticFieldID(cls, name, descriptor.c_str());
  assert(fid != 0);
  return jvb::detail::get_static_field(e.raw(), cls, fid, jvb::detail::tag<T>());
}
コード例 #4
0
ファイル: unwrap.hpp プロジェクト: felipealmeida/javabind
inline jstring unwrap(environment e, const char* c)
{
  assert(c != 0);
  jstring str = e.raw()->NewStringUTF(c);
  assert(str != 0);
  return str;
}
コード例 #5
0
 static jmethodID find_id(environment e, Class cls)
 {
   std::string descriptor;
   jvb::detail::descriptors::descriptor_function
     <void, typename boost::function_types::parameter_types<F>::type>
     (e, std::back_inserter(descriptor));
   jmethodID id = e.raw()->GetMethodID(cls.raw(), "<init>", descriptor.c_str());
   assert(id != 0);
   return id;
 }
コード例 #6
0
 static jmethodID find_id(environment e, jclass cls, const char* name)
 {
     typedef typename boost::function_types::result_type<F>::type return_type;
     typedef typename boost::function_types::parameter_types<F>::type parameter_types;
     std::string type;
     detail::descriptors::descriptor_function<return_type, parameter_types>
     (e, std::back_inserter<std::string>(type));
     assert(cls != 0);
     jmethodID id = e.raw()->GetStaticMethodID(cls, name, type.c_str());
     assert(id != 0);
     return id;
 }
コード例 #7
0
 static void set_array_region(environment e, jshortArray ar, jint start, jint len
                              , jshort const* raw_ar)
 {
   e.raw()->SetShortArrayRegion(ar, start, len, const_cast<jshort*>(raw_ar));
 }
コード例 #8
0
 static void release_array_elements(environment e, jshortArray ar, jshort* raw_ar
                                    , jint mode)
 {
   e.raw()->ReleaseShortArrayElements(ar, raw_ar, mode);
 }
コード例 #9
0
 static void set_array_region(environment e, jcharArray ar, jint start, jint len
                              , jchar const* raw_ar)
 {
   e.raw()->SetCharArrayRegion(ar, start, len, const_cast<jchar*>(raw_ar));
 }
コード例 #10
0
 static void release_array_elements(environment e, jcharArray ar, jchar* raw_ar
                                    , jint mode)
 {
   e.raw()->ReleaseCharArrayElements(ar, raw_ar, mode);
 }
コード例 #11
0
 static void set_array_region(environment e, jbyteArray ar, jint start, jint len
                              , jbyte const* raw_ar)
 {
   e.raw()->SetByteArrayRegion(ar, start, len, const_cast<jbyte*>(raw_ar));
 }
コード例 #12
0
 static void release_array_elements(environment e, jbyteArray ar, jbyte* raw_ar
                                    , jint mode)
 {
   e.raw()->ReleaseByteArrayElements(ar, raw_ar, mode);
 }
コード例 #13
0
 static void set_array_region(environment e, jlongArray ar, jint start, jint len
                              , jlong const* raw_ar)
 {
   e.raw()->SetLongArrayRegion(ar, start, len, const_cast<jlong*>(raw_ar));
 }
コード例 #14
0
 static void release_array_elements(environment e, jlongArray ar, jlong* raw_ar
                                    , jint mode)
 {
   e.raw()->ReleaseLongArrayElements(ar, raw_ar, mode);
 }
コード例 #15
0
ファイル: string.hpp プロジェクト: felipealmeida/javabind
 string(environment e, const char* cstring)
 {
   s = e.raw()->NewStringUTF(cstring);
 }
コード例 #16
0
ファイル: object.hpp プロジェクト: felipealmeida/javabind
 jvb::class_ class_(environment e) const
 {
     return e.raw()->GetObjectClass(obj);
 }