func main() { socket, err := thrift.NewTSocket("localhost:9090") if err != nil { panic(err) } transportFactory := thrift.NewTFramedTransportFactory(thrift.NewTTransportFactory()) protocolFactory := thrift.NewTBinaryProtocolFactoryDefault() transport := transportFactory.GetTransport(socket) client := contact.NewContactSvcClientFactory(transport, protocolFactory) defer client.Transport.Close() if err := client.Transport.Open(); err != nil { panic(err) } c1 := contact.NewContactInit("Bob", "111-1111", "*****@*****.**") c1, err = client.Create(c1) if err != nil { panic(err) } c2, err := client.Read(c1.Id) if err != nil { panic(err) } fmt.Println(c2) }
func main() { transportFactory := thrift.NewTFramedTransportFactory(thrift.NewTTransportFactory()) protocolFactory := thrift.NewTBinaryProtocolFactoryDefault() serverTransport, err := thrift.NewTServerSocket(NetworkAddr) if err != nil { log.Printf("NewTServerSocket error: %v\n", err) return } processor := translate.NewProxyTransProcessor(&proxyTrans{}) server := thrift.NewTSimpleServer4(processor, serverTransport, transportFactory, protocolFactory) log.Println(server.Serve()) }
func ThriftConnect(host string, thriftPort string) (*elasticsearch.RestClient, error) { binaryProtocol := thrift.NewTBinaryProtocolFactoryDefault() socket, err := thrift.NewTSocket(net.JoinHostPort(host, thriftPort)) if err != nil { return nil, err } bufferedTransport := thrift.NewTBufferedTransport(socket, BUFFER_SIZE) client := elasticsearch.NewRestClientFactory(bufferedTransport, binaryProtocol) if err := bufferedTransport.Open(); err != nil { return nil, err } return client, nil }
func NewPhonebookServer(host string) *PhonebookServer { handler := NewContactHandler() processor := contact.NewContactSvcProcessor(handler) transport, err := thrift.NewTServerSocket(host) if err != nil { panic(err) } transportFactory := thrift.NewTFramedTransportFactory(thrift.NewTTransportFactory()) protocolFactory := thrift.NewTBinaryProtocolFactoryDefault() server := thrift.NewTSimpleServer4(processor, transport, transportFactory, protocolFactory) return &PhonebookServer{ host: host, handler: handler, processor: processor, transport: transport, transportFactory: transportFactory, protocolFactory: protocolFactory, server: server, } }
func NewEchoServer(host string) *EchoServer { handler := NewEchoHandler() processor := NewEchoSrvProcessor(handler) transport, err := thrift.NewTServerSocket(host) if err != nil { panic(err) } transportFactory := thrift.NewTTransportFactory() protocolFactory := thrift.NewTBinaryProtocolFactoryDefault() server := thrift.NewTSimpleServer4(processor, transport, transportFactory, protocolFactory) return &EchoServer{ host: host, handler: handler, processor: processor, transport: transport, transportFactory: transportFactory, protocolFactory: protocolFactory, server: server, } }
func main() { tSocket, err := thrift.NewTSocket(HOSTPORT) if err != nil { log.Printf("NewTSocket error: %v\n", err) } transport := thrift.NewTFramedTransport(tSocket) protocolFactory := thrift.NewTBinaryProtocolFactoryDefault() client := translate.NewProxyTransClientFactory(transport, protocolFactory) if err := transport.Open(); err != nil { log.Printf("transport.Open error: %v\n", err) } defer transport.Close() var count = 0 ticker := time.NewTicker(time.Second) for { select { case <-ticker.C: log.Println(count) count = 0 default: var buf []*translate.LogEntry for i := 0; i < 200; i++ { entry := &translate.LogEntry{ Hostname: "", Message: logData, } buf = append(buf, entry) } code, err := client.Log(buf) if err != nil { log.Printf("Log error: %v, code: %d\n", err, code) } count += 200 time.Sleep(time.Millisecond) } } }
func init() { // init server server = phonebook.NewPhonebookServer(TEST_HOST) // init client socket, err := thrift.NewTSocket(TEST_HOST) if err != nil { panic(err) } transportFactory := thrift.NewTFramedTransportFactory(thrift.NewTTransportFactory()) protocolFactory := thrift.NewTBinaryProtocolFactoryDefault() transport := transportFactory.GetTransport(socket) client = contact.NewContactSvcClientFactory(transport, protocolFactory) // run server go server.Run() // run client time.Sleep(2 * time.Second) // wait for server if err := client.Transport.Open(); err != nil { panic(err) } }
func main() { flag.Usage = Usage var host string var port int var protocol string var urlString string var framed bool var useHttp bool var parsedUrl url.URL var trans thrift.TTransport _ = math.MinInt32 // will become unneeded eventually _ = strconv.Atoi flag.Usage = Usage flag.StringVar(&host, "h", "localhost", "Specify host and port") flag.IntVar(&port, "p", 9090, "Specify port") flag.StringVar(&protocol, "P", "binary", "Specify the protocol (binary, compact, simplejson, json)") flag.StringVar(&urlString, "u", "", "Specify the url") flag.BoolVar(&framed, "framed", false, "Use framed transport") flag.BoolVar(&useHttp, "http", false, "Use http") flag.Parse() if len(urlString) > 0 { parsedUrl, err := url.Parse(urlString) if err != nil { fmt.Fprintln(os.Stderr, "Error parsing URL: ", err) flag.Usage() } host = parsedUrl.Host useHttp = len(parsedUrl.Scheme) <= 0 || parsedUrl.Scheme == "http" } else if useHttp { _, err := url.Parse(fmt.Sprint("http://", host, ":", port)) if err != nil { fmt.Fprintln(os.Stderr, "Error parsing URL: ", err) flag.Usage() } } cmd := flag.Arg(0) var err error if useHttp { trans, err = thrift.NewTHttpClient(parsedUrl.String()) } else { portStr := fmt.Sprint(port) if strings.Contains(host, ":") { host, portStr, err = net.SplitHostPort(host) if err != nil { fmt.Fprintln(os.Stderr, "error with host:", err) os.Exit(1) } } trans, err = thrift.NewTSocket(net.JoinHostPort(host, portStr)) if err != nil { fmt.Fprintln(os.Stderr, "error resolving address:", err) os.Exit(1) } if framed { trans = thrift.NewTFramedTransport(trans) } } if err != nil { fmt.Fprintln(os.Stderr, "Error creating transport", err) os.Exit(1) } defer trans.Close() var protocolFactory thrift.TProtocolFactory switch protocol { case "compact": protocolFactory = thrift.NewTCompactProtocolFactory() break case "simplejson": protocolFactory = thrift.NewTSimpleJSONProtocolFactory() break case "json": protocolFactory = thrift.NewTJSONProtocolFactory() break case "binary", "": protocolFactory = thrift.NewTBinaryProtocolFactoryDefault() break default: fmt.Fprintln(os.Stderr, "Invalid protocol specified: ", protocol) Usage() os.Exit(1) } client := contact.NewContactSvcClientFactory(trans, protocolFactory) if err := trans.Open(); err != nil { fmt.Fprintln(os.Stderr, "Error opening socket to ", host, ":", port, " ", err) os.Exit(1) } switch cmd { case "create": if flag.NArg()-1 != 1 { fmt.Fprintln(os.Stderr, "Create requires 1 args") flag.Usage() } arg27 := flag.Arg(1) mbTrans28 := thrift.NewTMemoryBufferLen(len(arg27)) defer mbTrans28.Close() _, err29 := mbTrans28.WriteString(arg27) if err29 != nil { Usage() return } factory30 := thrift.NewTSimpleJSONProtocolFactory() jsProt31 := factory30.GetProtocol(mbTrans28) argvalue0 := contact.NewContact() err32 := argvalue0.Read(jsProt31) if err32 != nil { Usage() return } value0 := argvalue0 fmt.Print(client.Create(value0)) fmt.Print("\n") break case "read": if flag.NArg()-1 != 1 { fmt.Fprintln(os.Stderr, "Read requires 1 args") flag.Usage() } argvalue0 := flag.Arg(1) value0 := argvalue0 fmt.Print(client.Read(value0)) fmt.Print("\n") break case "update": if flag.NArg()-1 != 1 { fmt.Fprintln(os.Stderr, "Update requires 1 args") flag.Usage() } arg34 := flag.Arg(1) mbTrans35 := thrift.NewTMemoryBufferLen(len(arg34)) defer mbTrans35.Close() _, err36 := mbTrans35.WriteString(arg34) if err36 != nil { Usage() return } factory37 := thrift.NewTSimpleJSONProtocolFactory() jsProt38 := factory37.GetProtocol(mbTrans35) argvalue0 := contact.NewContact() err39 := argvalue0.Read(jsProt38) if err39 != nil { Usage() return } value0 := argvalue0 fmt.Print(client.Update(value0)) fmt.Print("\n") break case "destroy": if flag.NArg()-1 != 1 { fmt.Fprintln(os.Stderr, "Destroy requires 1 args") flag.Usage() } argvalue0 := flag.Arg(1) value0 := argvalue0 fmt.Print(client.Destroy(value0)) fmt.Print("\n") break case "fetch": if flag.NArg()-1 != 0 { fmt.Fprintln(os.Stderr, "Fetch requires 0 args") flag.Usage() } fmt.Print(client.Fetch()) fmt.Print("\n") break case "reset": if flag.NArg()-1 != 0 { fmt.Fprintln(os.Stderr, "Reset requires 0 args") flag.Usage() } fmt.Print(client.Reset()) fmt.Print("\n") break case "": Usage() break default: fmt.Fprintln(os.Stderr, "Invalid function ", cmd) } }
func main() { flag.Usage = Usage var host string var port int var protocol string var urlString string var framed bool var useHttp bool var parsedUrl url.URL var trans thrift.TTransport _ = strconv.Atoi _ = math.Abs flag.Usage = Usage flag.StringVar(&host, "h", "localhost", "Specify host and port") flag.IntVar(&port, "p", 9090, "Specify port") flag.StringVar(&protocol, "P", "binary", "Specify the protocol (binary, compact, simplejson, json)") flag.StringVar(&urlString, "u", "", "Specify the url") flag.BoolVar(&framed, "framed", false, "Use framed transport") flag.BoolVar(&useHttp, "http", false, "Use http") flag.Parse() if len(urlString) > 0 { parsedUrl, err := url.Parse(urlString) if err != nil { fmt.Fprintln(os.Stderr, "Error parsing URL: ", err) flag.Usage() } host = parsedUrl.Host useHttp = len(parsedUrl.Scheme) <= 0 || parsedUrl.Scheme == "http" } else if useHttp { _, err := url.Parse(fmt.Sprint("http://", host, ":", port)) if err != nil { fmt.Fprintln(os.Stderr, "Error parsing URL: ", err) flag.Usage() } } cmd := flag.Arg(0) var err error if useHttp { trans, err = thrift.NewTHttpClient(parsedUrl.String()) } else { portStr := fmt.Sprint(port) if strings.Contains(host, ":") { host, portStr, err = net.SplitHostPort(host) if err != nil { fmt.Fprintln(os.Stderr, "error with host:", err) os.Exit(1) } } trans, err = thrift.NewTSocket(net.JoinHostPort(host, portStr)) if err != nil { fmt.Fprintln(os.Stderr, "error resolving address:", err) os.Exit(1) } if framed { trans = thrift.NewTFramedTransport(trans) } } if err != nil { fmt.Fprintln(os.Stderr, "Error creating transport", err) os.Exit(1) } defer trans.Close() var protocolFactory thrift.TProtocolFactory switch protocol { case "compact": protocolFactory = thrift.NewTCompactProtocolFactory() break case "simplejson": protocolFactory = thrift.NewTSimpleJSONProtocolFactory() break case "json": protocolFactory = thrift.NewTJSONProtocolFactory() break case "binary", "": protocolFactory = thrift.NewTBinaryProtocolFactoryDefault() break default: fmt.Fprintln(os.Stderr, "Invalid protocol specified: ", protocol) Usage() os.Exit(1) } client := echo.NewEchoSrvClientFactory(trans, protocolFactory) if err := trans.Open(); err != nil { fmt.Fprintln(os.Stderr, "Error opening socket to ", host, ":", port, " ", err) os.Exit(1) } switch cmd { case "echo": if flag.NArg()-1 != 1 { fmt.Fprintln(os.Stderr, "Echo requires 1 args") flag.Usage() } argvalue0 := flag.Arg(1) value0 := argvalue0 fmt.Print(client.Echo(value0)) fmt.Print("\n") break case "echo2times": if flag.NArg()-1 != 1 { fmt.Fprintln(os.Stderr, "Echo2times requires 1 args") flag.Usage() } argvalue0 := flag.Arg(1) value0 := argvalue0 fmt.Print(client.Echo2times(value0)) fmt.Print("\n") break case "": Usage() break default: fmt.Fprintln(os.Stderr, "Invalid function ", cmd) } }