def transform_to_c(self): C.Helper('jobject_callback_wrapper_destroy') return TypeTransform([ C.Decl(self.c_type, self.c_name), ], [ C.Assign(self.c_name, 'jobject_callback_wrapper_destroy'), ])
def transform_to_jni(self): return TypeTransform([ C.Decl(self.jni_type, self.jni_name), ], [ C.Assign( self.jni_name, C.Helper(self.gir_type + '_to_java_enum', 'env', self.c_name)), ])
def transform_to_c(self): create = None if self.scope is None: create = C.Helper('jobject_wrapper_create', self.closure.jni_name, 'FALSE') else: create = C.Helper('jobject_callback_wrapper_create', self.closure.jni_name, 'TRUE' if self.scope == 'async' else 'FALSE') return TypeTransform([ C.Decl(self.c_type, self.c_name), ], [ C.Assign(self.c_name, create), ], self.scope == 'call' and [ C.Helper('jobject_callback_wrapper_destroy', self.c_name), ])
def transform_to_jni(self): return TypeTransform([ C.Decl(self.jni_type, self.jni_name), ], [ C.Assign(self.jni_name, C.Helper('gvalue_to_jobject', 'env', self.c_name)), ], self.transfer_ownership and [ C.Call('g_value_reset', self.c_name), ])
def transform_to_c(self): return TypeTransform([ C.Decl(self.c_type, self.c_name), ], [ C.Assign(self.c_name, C.Helper('jobject_to_gobject', 'env', self.jni_name)), C.Call('g_object_ref', self.c_name) if self.transfer_ownership else [], ])
def transform_to_jni(self): return TypeTransform([ C.Decl(self.jni_type, self.jni_name), ], [ C.Assign(self.jni_name, '((JObjectWrapper*) ' + self.c_name + ')->obj;'), ], self.transfer_ownership and [ C.Helper('jobject_wrapper_destroy', self.c_name, 'FALSE'), ])
def transform_to_c(self): return TypeTransform([ C.Decl(self.c_type, self.c_name), ], [ C.Assign( self.c_name, C.Helper('jobject_wrapper_create', self.closure.jni_name, 'FALSE')), ])
def transform_to_jni(self): return TypeTransform([ C.Decl(self.jni_type, self.jni_name), ], [ C.Assign( self.jni_name, C.Helper('gobject_to_jobject', 'env', self.c_name, 'TRUE' if not self.transfer_ownership else 'FALSE')) ])
def transform_to_jni(self): get = None if self.transfer_ownership: get = '((JObjectCallbackWrapper*) %s)->wrapper->obj;' % self.c_name else: get = '((JObjectWrapper*) %s)->obj;' % self.c_name return TypeTransform([ C.Decl(self.jni_type, self.jni_name), ], [ C.Assign(self.jni_name, get), ], self.transfer_ownership and [ C.If( '((JObjectCallbackWrapper *) %s)->should_destroy' % self.c_name, C.Helper('jobject_callback_wrapper_destroy', self.c_name), ), ])
def transform_to_jni(self): enum = self.inner_value return TypeTransform([ C.Decl(self.jni_type, self.jni_name), C.Decl(enum.jni_type, enum.jni_name), C.Decl(enum.c_type, enum.c_name), ], [ C.Assign( self.jni_name, C.Env.static_method( ('EnumSet', 'noneOf'), C.Cache(enum.java_type))), C.While( self.c_name, C.Assign(enum.c_name, "{0} & -{0}".format(self.c_name)), C.Assign( enum.jni_name, C.Helper(self.gir_type + '_to_java_enum', 'env', enum.c_name)), C.Env.method(self.jni_name, ('EnumSet', 'add'), enum.jni_name), C.Assign(self.c_name, "{0} & ({0} - 1)".format(self.c_name)), ) ])
C.Env('DeleteGlobalRef', 'wrapper->obj'), ]]), '', C.Call('g_slice_free', 'JObjectWrapper', 'wrapper'), C.ExceptionCheck(None), ])) C.Helper.add_helper( 'jobject_wrapper_closure_notify', C.Function('jobject_wrapper_closure_notify', return_type='void', params=['gpointer data_pointer', 'GClosure* ignored'], body=[ C.Decl('(void)', 'ignored'), C.Helper('jobject_wrapper_destroy', 'data_pointer', 'FALSE'), ])) C.Helper.add_helper( 'gobject_to_jobject', C.Function( 'gobject_to_jobject', return_type='jobject', params=[ 'JNIEnv* env', 'gpointer data_pointer', 'jclass clazz', 'gboolean take_ref' ], body=[ C.Decl('GObject*', 'gobj'), C.Decl('JObjectWrapper*', 'wrapper'), '',