मैं नेटिवॉल इंटरफ़ेस के साथ काम कर रहा हूं।मैं नेटलकॉल कॉलबैक के माध्यम से एक पर्ल 6 ऑब्जेक्ट कैसे पास कर सकता हूं?
लाइब्रेरी मेरे कॉलबैक फ़ंक्शन को कई गुना कॉल करने जा रही है।
यह ठीक काम करता है। मैं सिर्फ हस्ताक्षर के साथ अपना कॉलबैक घोषित कर सकता हूं, इसे & कॉलबैक के रूप में पास कर सकता हूं और लाइब्रेरी उप सब ठीक कहती है।
इसमें कुछ भी पर पेलोड शून्य * सूचक सेट करने की क्षमता है, और इसमें मेरे कॉलबैक फ़ंक्शन को कॉल में शामिल किया जाएगा।
क्या मैं पर्ल स्ट्र को छुपा सकता हूं, उदाहरण के लिए, पेलोड में और सफलतापूर्वक यात्रा करने के लिए?
sub set_userdata(Pointer) returns int32 is native { ... }
sub set_callback(&callback(Pointer $userdata --> int32)) returns int32 is native { ... }
sub callback(Pointer $userdata) returns int32 {
my Str $mystring = ???
...
}
my Str $my-userdata-string;
set_userdata(???);
set_callback(&callback);
ऐसा लगता है जैसे कि यह बाध्यकारी के कुछ मंत्र के साथ काम कर सकता है,, nativecast() और/या .deref "rw है।"
जोनाथन वर्थिंगटन एक बेहतर दृष्टिकोण के साथ आने के बावजूद, मुझे लगता है कि आपके प्रयास का एक संक्षिप्त उदाहरण इस जवाब में देखने के लिए अच्छा होगा, क्योंकि लोग आपके समाधान की योग्यता के बारे में चर्चा कर सकते हैं, और यदि यह वास्तव में स्मृति को रिसाव करता है। यह सब के बाद एक सीखने की साइट है। –