func Reset() { world_lock.Lock() if global_world != nil { C.raptor_free_world(global_world) } global_world = C.raptor_new_world_internal(C.RAPTOR_VERSION) world_lock.Unlock() }
func NewSerializer(name string) *Serializer { cname := C.CString(name) world := C.raptor_new_world_internal(C.RAPTOR_VERSION) rserializer := C.raptor_new_serializer(world, cname) C.raptor_serializer_set_option(rserializer, C.RAPTOR_OPTION_WRITE_BASE_URI, nil, 0) serializer := &Serializer{world: world, serializer: rserializer} C.free(unsafe.Pointer(cname)) serializer.SetLogHandler(func(level int, text string) { log.Printf("[%s] %s", LogLevels[level], text) }) runtime.SetFinalizer(serializer, func(s *Serializer) { if s != nil { s.Free() } }) return serializer }
func NewParser(name string) *Parser { cname := C.CString(name) world := C.raptor_new_world_internal(C.RAPTOR_VERSION) rparser := C.raptor_new_parser(world, cname) C.raptor_parser_set_option(rparser, C.RAPTOR_OPTION_LOAD_EXTERNAL_ENTITIES, nil, 0) parser := &Parser{world: world, parser: rparser} C.free(unsafe.Pointer(cname)) C.go_raptor_parser_set_statement_handler(rparser, unsafe.Pointer(parser)) C.go_raptor_parser_set_namespace_handler(rparser, unsafe.Pointer(parser)) parser.SetLogHandler(func(level int, text string) { log.Printf("[%s] %s", LogLevels[level], text) }) parser.SetNamespaceHandler(func(prefix, uri string) {}) runtime.SetFinalizer(parser, func(p *Parser) { if p != nil { p.Free() } }) return parser }