OSDN Git Service

new repo
[bytom/vapor.git] / vendor / github.com / go-kit / kit / examples / addsvc / thrift / gen-go / addsvc / add_service-remote / add_service-remote.go
1 // Autogenerated by Thrift Compiler (1.0.0-dev)
2 // DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
3
4 package main
5
6 import (
7         "context"
8         "flag"
9         "fmt"
10         "math"
11         "net"
12         "net/url"
13         "os"
14         "strconv"
15         "strings"
16         "github.com/apache/thrift/lib/go/thrift"
17         "github.com/go-kit/kit/examples/addsvc/thrift/gen-go/addsvc"
18 )
19
20
21 func Usage() {
22   fmt.Fprintln(os.Stderr, "Usage of ", os.Args[0], " [-h host:port] [-u url] [-f[ramed]] function [arg1 [arg2...]]:")
23   flag.PrintDefaults()
24   fmt.Fprintln(os.Stderr, "\nFunctions:")
25   fmt.Fprintln(os.Stderr, "  SumReply Sum(i64 a, i64 b)")
26   fmt.Fprintln(os.Stderr, "  ConcatReply Concat(string a, string b)")
27   fmt.Fprintln(os.Stderr)
28   os.Exit(0)
29 }
30
31 func main() {
32   flag.Usage = Usage
33   var host string
34   var port int
35   var protocol string
36   var urlString string
37   var framed bool
38   var useHttp bool
39   var parsedUrl url.URL
40   var trans thrift.TTransport
41   _ = strconv.Atoi
42   _ = math.Abs
43   flag.Usage = Usage
44   flag.StringVar(&host, "h", "localhost", "Specify host and port")
45   flag.IntVar(&port, "p", 9090, "Specify port")
46   flag.StringVar(&protocol, "P", "binary", "Specify the protocol (binary, compact, simplejson, json)")
47   flag.StringVar(&urlString, "u", "", "Specify the url")
48   flag.BoolVar(&framed, "framed", false, "Use framed transport")
49   flag.BoolVar(&useHttp, "http", false, "Use http")
50   flag.Parse()
51   
52   if len(urlString) > 0 {
53     parsedUrl, err := url.Parse(urlString)
54     if err != nil {
55       fmt.Fprintln(os.Stderr, "Error parsing URL: ", err)
56       flag.Usage()
57     }
58     host = parsedUrl.Host
59     useHttp = len(parsedUrl.Scheme) <= 0 || parsedUrl.Scheme == "http"
60   } else if useHttp {
61     _, err := url.Parse(fmt.Sprint("http://", host, ":", port))
62     if err != nil {
63       fmt.Fprintln(os.Stderr, "Error parsing URL: ", err)
64       flag.Usage()
65     }
66   }
67   
68   cmd := flag.Arg(0)
69   var err error
70   if useHttp {
71     trans, err = thrift.NewTHttpClient(parsedUrl.String())
72   } else {
73     portStr := fmt.Sprint(port)
74     if strings.Contains(host, ":") {
75            host, portStr, err = net.SplitHostPort(host)
76            if err != nil {
77                    fmt.Fprintln(os.Stderr, "error with host:", err)
78                    os.Exit(1)
79            }
80     }
81     trans, err = thrift.NewTSocket(net.JoinHostPort(host, portStr))
82     if err != nil {
83       fmt.Fprintln(os.Stderr, "error resolving address:", err)
84       os.Exit(1)
85     }
86     if framed {
87       trans = thrift.NewTFramedTransport(trans)
88     }
89   }
90   if err != nil {
91     fmt.Fprintln(os.Stderr, "Error creating transport", err)
92     os.Exit(1)
93   }
94   defer trans.Close()
95   var protocolFactory thrift.TProtocolFactory
96   switch protocol {
97   case "compact":
98     protocolFactory = thrift.NewTCompactProtocolFactory()
99     break
100   case "simplejson":
101     protocolFactory = thrift.NewTSimpleJSONProtocolFactory()
102     break
103   case "json":
104     protocolFactory = thrift.NewTJSONProtocolFactory()
105     break
106   case "binary", "":
107     protocolFactory = thrift.NewTBinaryProtocolFactoryDefault()
108     break
109   default:
110     fmt.Fprintln(os.Stderr, "Invalid protocol specified: ", protocol)
111     Usage()
112     os.Exit(1)
113   }
114   client := addsvc.NewAddServiceClientFactory(trans, protocolFactory)
115   if err := trans.Open(); err != nil {
116     fmt.Fprintln(os.Stderr, "Error opening socket to ", host, ":", port, " ", err)
117     os.Exit(1)
118   }
119   
120   switch cmd {
121   case "Sum":
122     if flag.NArg() - 1 != 2 {
123       fmt.Fprintln(os.Stderr, "Sum requires 2 args")
124       flag.Usage()
125     }
126     argvalue0, err6 := (strconv.ParseInt(flag.Arg(1), 10, 64))
127     if err6 != nil {
128       Usage()
129       return
130     }
131     value0 := argvalue0
132     argvalue1, err7 := (strconv.ParseInt(flag.Arg(2), 10, 64))
133     if err7 != nil {
134       Usage()
135       return
136     }
137     value1 := argvalue1
138     fmt.Print(client.Sum(context.Background(), value0, value1))
139     fmt.Print("\n")
140     break
141   case "Concat":
142     if flag.NArg() - 1 != 2 {
143       fmt.Fprintln(os.Stderr, "Concat requires 2 args")
144       flag.Usage()
145     }
146     argvalue0 := flag.Arg(1)
147     value0 := argvalue0
148     argvalue1 := flag.Arg(2)
149     value1 := argvalue1
150     fmt.Print(client.Concat(context.Background(), value0, value1))
151     fmt.Print("\n")
152     break
153   case "":
154     Usage()
155     break
156   default:
157     fmt.Fprintln(os.Stderr, "Invalid function ", cmd)
158   }
159 }