Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
|
|
@ -0,0 +1,56 @@
|
|||
/* go run distributed_programming_client.go */
|
||||
|
||||
package main
|
||||
|
||||
import(
|
||||
wren "github.com/crazyinfin8/WrenGo"
|
||||
"log"
|
||||
"net/rpc"
|
||||
"strings"
|
||||
)
|
||||
|
||||
type any = interface{}
|
||||
|
||||
func dialHTTP(vm *wren.VM, parameters []any) (any, error) {
|
||||
network := parameters[1].(string)
|
||||
address := parameters[2].(string)
|
||||
client, err := rpc.DialHTTP(network, address)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
return &client, nil
|
||||
}
|
||||
|
||||
func call(vm *wren.VM, parameters []any) (any, error) {
|
||||
handle := parameters[0].(*wren.ForeignHandle)
|
||||
ifc, _ := handle.Get()
|
||||
client := ifc.(**rpc.Client)
|
||||
serviceMethod := parameters[1].(string)
|
||||
amount := parameters[2].(float64)
|
||||
var tax float64
|
||||
err := (*client).Call(serviceMethod, amount, &tax)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
return tax, nil
|
||||
}
|
||||
|
||||
func moduleFn(vm *wren.VM, name string) (string, bool) {
|
||||
if name != "meta" && name != "random" && !strings.HasSuffix(name, ".wren") {
|
||||
name += ".wren"
|
||||
}
|
||||
return wren.DefaultModuleLoader(vm, name)
|
||||
}
|
||||
|
||||
func main() {
|
||||
cfg := wren.NewConfig()
|
||||
cfg.LoadModuleFn = moduleFn
|
||||
vm := cfg.NewVM()
|
||||
fileName := "distributed_programming_client.wren"
|
||||
clientMethodMap := wren.MethodMap { "call(_,_)": call }
|
||||
classMap := wren.ClassMap { "Client": wren.NewClass(dialHTTP, nil, clientMethodMap) }
|
||||
module := wren.NewModule(classMap)
|
||||
vm.SetModule(fileName, module)
|
||||
vm.InterpretFile(fileName)
|
||||
vm.Free()
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue