import "unsafe"
import "fmt"
import "time"
+import "log"
+import "os"
+
+var ILog *log.Logger = log.New(os.Stdout, "[scoringmgr] INFO : ", log.LstdFlags)
+var ELog *log.Logger = log.New(os.Stdout, "[scoringmgr] ERROR : ", log.LstdFlags)
+var DLog *log.Logger = log.New(os.Stdout, "[scoringmgr] DEBUG : ", log.LstdFlags)
func main() {
- libPath := "src/scoringmgr/mock/mysum/libmysum.so"
- LoadScoringAdd(libPath, 1000)
+ // LoadScoringAdd("src/scoringmgr/mock/mysum/libmysum.so", 1000)
+ go func(){
+
+ symbol := Init()
+ LoadScoringAddInterface(symbol)
+ }()
+
for {}
}
}()
return
-}
\ No newline at end of file
+}
+
+
+
+func Init() unsafe.Pointer {
+
+
+ lib := C.CString("src/scoringmgr/mock/mysum/libmysum.so")
+ defer C.free(unsafe.Pointer(lib))
+
+ dl, err := C.dlopen(lib , C.RTLD_LAZY)
+ //TODO : release dlclose
+ // defer C.dlclose(dl)
+
+ if err != nil {
+ ELog.Fatal("dlopen error occured")
+ }
+
+
+ sym := C.CString("add")
+ defer C.free(unsafe.Pointer(sym))
+
+ symbol, symbolErr := C.dlsym(dl, sym)
+ if symbolErr != nil {
+ ELog.Fatal("symbol error occured")
+ }
+
+ return symbol
+}
+
+func LoadScoringAddInterface(symbol unsafe.Pointer) {
+
+ ILog.Println(C.wrap_add(symbol,2,3))
+
+ return
+}