summaryrefslogtreecommitdiff
path: root/misc/swig/callback/run.go
diff options
context:
space:
mode:
Diffstat (limited to 'misc/swig/callback/run.go')
-rw-r--r--misc/swig/callback/run.go39
1 files changed, 39 insertions, 0 deletions
diff --git a/misc/swig/callback/run.go b/misc/swig/callback/run.go
new file mode 100644
index 000000000..a76e636cb
--- /dev/null
+++ b/misc/swig/callback/run.go
@@ -0,0 +1,39 @@
+// Copyright 2011 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package main
+
+import (
+ "swig/callback"
+ "fmt"
+)
+
+type GoCallback struct{}
+
+func (p *GoCallback) Run() string {
+ return "GoCallback.Run"
+}
+
+func main() {
+ c := callback.NewCaller()
+ cb := callback.NewCallback()
+
+ c.SetCallback(cb)
+ s := c.Call()
+ fmt.Println(s)
+ if s != "Callback::run" {
+ panic(s)
+ }
+ c.DelCallback()
+
+ cb = callback.NewDirectorCallback(&GoCallback{})
+ c.SetCallback(cb)
+ s = c.Call()
+ fmt.Println(s)
+ if s != "GoCallback.Run" {
+ panic(s)
+ }
+ c.DelCallback()
+ callback.DeleteDirectorCallback(cb)
+}