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 := services.NewAreaSvcClientFactory(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 "createArea": if flag.NArg()-1 != 2 { fmt.Fprintln(os.Stderr, "CreateArea requires 2 args") flag.Usage() } argvalue0 := flag.Arg(1) value0 := argvalue0 arg144 := flag.Arg(2) mbTrans145 := thrift.NewTMemoryBufferLen(len(arg144)) defer mbTrans145.Close() _, err146 := mbTrans145.WriteString(arg144) if err146 != nil { Usage() return } factory147 := thrift.NewTSimpleJSONProtocolFactory() jsProt148 := factory147.GetProtocol(mbTrans145) argvalue1 := services.NewArea() err149 := argvalue1.Read(jsProt148) if err149 != nil { Usage() return } value1 := argvalue1 fmt.Print(client.CreateArea(value0, value1)) fmt.Print("\n") break case "updateArea": if flag.NArg()-1 != 2 { fmt.Fprintln(os.Stderr, "UpdateArea requires 2 args") flag.Usage() } argvalue0 := flag.Arg(1) value0 := argvalue0 arg151 := flag.Arg(2) mbTrans152 := thrift.NewTMemoryBufferLen(len(arg151)) defer mbTrans152.Close() _, err153 := mbTrans152.WriteString(arg151) if err153 != nil { Usage() return } factory154 := thrift.NewTSimpleJSONProtocolFactory() jsProt155 := factory154.GetProtocol(mbTrans152) argvalue1 := services.NewArea() err156 := argvalue1.Read(jsProt155) if err156 != nil { Usage() return } value1 := argvalue1 fmt.Print(client.UpdateArea(value0, value1)) fmt.Print("\n") break case "deleteArea": if flag.NArg()-1 != 2 { fmt.Fprintln(os.Stderr, "DeleteArea requires 2 args") flag.Usage() } argvalue0 := flag.Arg(1) value0 := argvalue0 arg158 := flag.Arg(2) mbTrans159 := thrift.NewTMemoryBufferLen(len(arg158)) defer mbTrans159.Close() _, err160 := mbTrans159.WriteString(arg158) if err160 != nil { Usage() return } factory161 := thrift.NewTSimpleJSONProtocolFactory() jsProt162 := factory161.GetProtocol(mbTrans159) argvalue1 := services.NewArea() err163 := argvalue1.Read(jsProt162) if err163 != nil { Usage() return } value1 := argvalue1 fmt.Print(client.DeleteArea(value0, value1)) fmt.Print("\n") break case "getAreaById": if flag.NArg()-1 != 2 { fmt.Fprintln(os.Stderr, "GetAreaById requires 2 args") flag.Usage() } argvalue0 := flag.Arg(1) value0 := argvalue0 argvalue1 := flag.Arg(2) value1 := argvalue1 fmt.Print(client.GetAreaById(value0, value1)) fmt.Print("\n") break case "wasHere": if flag.NArg()-1 != 3 { fmt.Fprintln(os.Stderr, "WasHere requires 3 args") flag.Usage() } argvalue0 := flag.Arg(1) value0 := argvalue0 argvalue1 := flag.Arg(2) value1 := argvalue1 argvalue2, err168 := (strconv.ParseInt(flag.Arg(3), 10, 64)) if err168 != nil { Usage() return } value2 := argvalue2 fmt.Print(client.WasHere(value0, value1, value2)) fmt.Print("\n") break case "getNearBy": if flag.NArg()-1 != 3 { fmt.Fprintln(os.Stderr, "GetNearBy requires 3 args") flag.Usage() } argvalue0 := flag.Arg(1) value0 := argvalue0 arg170 := flag.Arg(2) mbTrans171 := thrift.NewTMemoryBufferLen(len(arg170)) defer mbTrans171.Close() _, err172 := mbTrans171.WriteString(arg170) if err172 != nil { Usage() return } factory173 := thrift.NewTSimpleJSONProtocolFactory() jsProt174 := factory173.GetProtocol(mbTrans171) argvalue1 := services.NewCoordinate() err175 := argvalue1.Read(jsProt174) if err175 != nil { Usage() return } value1 := argvalue1 tmp2, err176 := (strconv.Atoi(flag.Arg(3))) if err176 != nil { Usage() return } argvalue2 := int32(tmp2) value2 := argvalue2 fmt.Print(client.GetNearBy(value0, value1, value2)) fmt.Print("\n") break case "getAllAreasInCity": if flag.NArg()-1 != 1 { fmt.Fprintln(os.Stderr, "GetAllAreasInCity requires 1 args") flag.Usage() } argvalue0 := flag.Arg(1) value0 := argvalue0 fmt.Print(client.GetAllAreasInCity(value0)) 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 := services.NewCitySvcClientFactory(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 "createCity": if flag.NArg()-1 != 3 { fmt.Fprintln(os.Stderr, "CreateCity requires 3 args") flag.Usage() } argvalue0 := flag.Arg(1) value0 := argvalue0 argvalue1 := flag.Arg(2) value1 := argvalue1 arg191 := flag.Arg(3) mbTrans192 := thrift.NewTMemoryBufferLen(len(arg191)) defer mbTrans192.Close() _, err193 := mbTrans192.WriteString(arg191) if err193 != nil { Usage() return } factory194 := thrift.NewTSimpleJSONProtocolFactory() jsProt195 := factory194.GetProtocol(mbTrans192) containerStruct2 := services.NewCitySvcCreateCityArgs() err196 := containerStruct2.ReadField3(jsProt195) if err196 != nil { Usage() return } argvalue2 := containerStruct2.Coords value2 := argvalue2 fmt.Print(client.CreateCity(value0, value1, value2)) fmt.Print("\n") break case "getNearBy": if flag.NArg()-1 != 2 { fmt.Fprintln(os.Stderr, "GetNearBy requires 2 args") flag.Usage() } arg197 := flag.Arg(1) mbTrans198 := thrift.NewTMemoryBufferLen(len(arg197)) defer mbTrans198.Close() _, err199 := mbTrans198.WriteString(arg197) if err199 != nil { Usage() return } factory200 := thrift.NewTSimpleJSONProtocolFactory() jsProt201 := factory200.GetProtocol(mbTrans198) argvalue0 := services.NewCoordinate() err202 := argvalue0.Read(jsProt201) if err202 != nil { Usage() return } value0 := argvalue0 tmp1, err203 := (strconv.Atoi(flag.Arg(2))) if err203 != nil { Usage() return } argvalue1 := int32(tmp1) value1 := argvalue1 fmt.Print(client.GetNearBy(value0, value1)) fmt.Print("\n") break case "getAllCities": if flag.NArg()-1 != 0 { fmt.Fprintln(os.Stderr, "GetAllCities requires 0 args") flag.Usage() } fmt.Print(client.GetAllCities()) fmt.Print("\n") break case "": Usage() break default: fmt.Fprintln(os.Stderr, "Invalid function ", cmd) } }