Hey guys, 

I want to write a c wrapper around a go code that has a callback 
func SomeGoComputation(address string, callback func(string,int)) {
         _, err = // do some computation with address, maybe go over the 
network 
         if (err != nil) {
         callback(err.Error(), 0)
      }
      // I mean you get the gist 
     callback("",1)
}

I've having trouble writing the callback signature which in c would be 
void(*c_callback)(*char, int)

//export Ccomputation
func Ccomputation(address *C.char, // how to write that callback) {
   SomeGoComputation(C.GoString(address), func(errString string, code int){ 
     //passing the go callback values to the c callback wrapper
        e := C.CString(errString)
        c :=  C.int(code)
       c_callback(e, c)
      // then free both e and c via unsafe pointer  
 })
}


I look around and some (articles or not related answer from go posts) say 
to use an interface, so I did try `(C.char*, C.int)interface {}` but I did 
get an error missing , at line where the callback was declared in the 
wrapper. 

Any ideas, all advice are welcome thanks .. :)

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to