--- /dev/null
+package mockscoringmgr
+
+/*
+#include <stdlib.h>
+#include <dlfcn.h>
+#cgo LDFLAGS: -ldl
+
+int
+wrap_add(void *f, int a, int b){
+ return ((int (*)(int a, int b))f)(a,b);
+}
+*/
+import "C"
+import "unsafe"
+
+import (
+ "time"
+ scoringmgr "scoringmgr"
+)
+
+func LoadScoringAdd(libPath string, intervalMs int) {
+
+ sym := C.CString("add")
+ defer C.free(unsafe.Pointer(sym))
+
+ lib := C.CString(libPath)
+ defer C.free(unsafe.Pointer(lib))
+
+ handle, err := C.dlopen(lib , C.RTLD_LAZY)
+ defer C.dlclose(handle)
+
+ if err != nil {
+ scoringmgr.ELog.Fatal("dlopen error occured")
+ }
+
+ symbolPtr, symbolErr := C.dlsym(handle, sym)
+ if symbolErr != nil {
+ scoringmgr.ELog.Fatal("symbol error occured")
+ }
+
+ for {
+ scoringmgr.ILog.Println(C.wrap_add(symbolPtr,2,3))
+ time.Sleep(time.Duration(intervalMs) * time.Millisecond)
+ }
+
+ return
+}