Checking in vendor folder for ease of using go get.
This commit is contained in:
parent
7a1251853b
commit
cdb4b5a1d0
3554 changed files with 1270116 additions and 0 deletions
71
vendor/git.apache.org/thrift.git/tutorial/dart/Makefile.am
generated
vendored
Normal file
71
vendor/git.apache.org/thrift.git/tutorial/dart/Makefile.am
generated
vendored
Normal file
|
@ -0,0 +1,71 @@
|
|||
#
|
||||
# Licensed to the Apache Software Foundation (ASF) under one
|
||||
# or more contributor license agreements. See the NOTICE file
|
||||
# distributed with this work for additional information
|
||||
# regarding copyright ownership. The ASF licenses this file
|
||||
# to you under the Apache License, Version 2.0 (the
|
||||
# "License"); you may not use this file except in compliance
|
||||
# with the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing,
|
||||
# software distributed under the License is distributed on an
|
||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
# KIND, either express or implied. See the License for the
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
#
|
||||
|
||||
BUILT_SOURCES = gen-dart/tutorial/lib/tutorial.dart gen-dart/shared/lib/shared.dart
|
||||
|
||||
THRIFT = $(top_builddir)/compiler/cpp/thrift
|
||||
|
||||
gen-dart/tutorial/lib/tutorial.dart gen-dart/shared/lib/shared.dart: $(top_srcdir)/tutorial/tutorial.thrift
|
||||
$(THRIFT) --gen dart -r $<
|
||||
|
||||
all-local: gen-dart/tutorial/lib/tutorial.dart pub-get
|
||||
|
||||
clean-local:
|
||||
$(RM) -r gen-*
|
||||
find . -type d -name "packages" | xargs $(RM) -r
|
||||
find . -type f -name ".packages" | xargs $(RM)
|
||||
|
||||
pub-get: pub-get-gen pub-get-client pub-get-console-client pub-get-server
|
||||
|
||||
pub-get-gen: pub-get-tutorial pub-get-shared
|
||||
|
||||
pub-get-tutorial: gen-dart/tutorial/lib/tutorial.dart
|
||||
cd gen-dart/tutorial; ${DARTPUB} get
|
||||
|
||||
pub-get-shared: gen-dart/shared/lib/shared.dart
|
||||
cd gen-dart/shared; ${DARTPUB} get
|
||||
|
||||
pub-get-client:
|
||||
cd client; ${DARTPUB} get
|
||||
|
||||
pub-get-console-client:
|
||||
cd console_client; ${DARTPUB} get
|
||||
|
||||
pub-get-server:
|
||||
cd server; ${DARTPUB} get
|
||||
|
||||
tutorialserver: pub-get-gen pub-get-server
|
||||
${DART} server/bin/main.dart
|
||||
|
||||
tutorialclient: pub-get-gen pub-get-client
|
||||
cd client; ${DARTPUB} serve
|
||||
|
||||
tutorialconsoleclient: pub-get-console-client
|
||||
${DART} console_client/bin/main.dart
|
||||
|
||||
EXTRA_DIST = \
|
||||
client/web/client.dart \
|
||||
client/web/index.html \
|
||||
client/web/styles.css \
|
||||
client/pubspec.yaml \
|
||||
console_client/bin/main.dart \
|
||||
console_client/pubspec.yaml \
|
||||
server/bin/main.dart \
|
||||
server/pubspec.yaml \
|
||||
build.sh
|
56
vendor/git.apache.org/thrift.git/tutorial/dart/build.sh
generated
vendored
Normal file
56
vendor/git.apache.org/thrift.git/tutorial/dart/build.sh
generated
vendored
Normal file
|
@ -0,0 +1,56 @@
|
|||
#!/bin/sh
|
||||
|
||||
# Licensed to the Apache Software Foundation (ASF) under one
|
||||
# or more contributor license agreements. See the NOTICE file
|
||||
# distributed with this work for additional information
|
||||
# regarding copyright ownership. The ASF licenses this file
|
||||
# to you under the Apache License, Version 2.0 (the
|
||||
# 'License'); you may not use this file except in compliance
|
||||
# with the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing,
|
||||
# software distributed under the License is distributed on an
|
||||
# 'AS IS' BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
# KIND, either express or implied. See the License for the
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
set -e;
|
||||
rm -r gen-dart || true;
|
||||
|
||||
thrift --gen dart ../shared.thrift;
|
||||
cd gen-dart/shared;
|
||||
pub get;
|
||||
cd ../..;
|
||||
|
||||
thrift --gen dart ../tutorial.thrift;
|
||||
cd gen-dart/tutorial;
|
||||
pub get;
|
||||
cd ../..;
|
||||
|
||||
cd client;
|
||||
pub get;
|
||||
cd ..;
|
||||
|
||||
cd console_client;
|
||||
pub get;
|
||||
cd ..;
|
||||
|
||||
cd server;
|
||||
pub get;
|
||||
cd ..;
|
||||
|
||||
dartfmt -w gen-dart;
|
||||
|
||||
echo "\nEnjoy the Dart tutorial!";
|
||||
echo "\nTo run the server:";
|
||||
echo "> dart server/bin/main.dart";
|
||||
echo "\nTo run the client:";
|
||||
echo "# Serve the app from the client directory and view in a browser";
|
||||
echo "> cd client;";
|
||||
echo "> pub serve;";
|
||||
echo "\nTo run the console client:";
|
||||
echo "> dart console_client/bin/main.dart";
|
||||
echo "";
|
2
vendor/git.apache.org/thrift.git/tutorial/dart/client/.analysis_options
generated
vendored
Normal file
2
vendor/git.apache.org/thrift.git/tutorial/dart/client/.analysis_options
generated
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
analyzer:
|
||||
strong-mode: true
|
34
vendor/git.apache.org/thrift.git/tutorial/dart/client/pubspec.yaml
generated
vendored
Normal file
34
vendor/git.apache.org/thrift.git/tutorial/dart/client/pubspec.yaml
generated
vendored
Normal file
|
@ -0,0 +1,34 @@
|
|||
# Licensed to the Apache Software Foundation (ASF) under one
|
||||
# or more contributor license agreements. See the NOTICE file
|
||||
# distributed with this work for additional information
|
||||
# regarding copyright ownership. The ASF licenses this file
|
||||
# to you under the Apache License, Version 2.0 (the
|
||||
# 'License'); you may not use this file except in compliance
|
||||
# with the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing,
|
||||
# software distributed under the License is distributed on an
|
||||
# 'AS IS' BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
# KIND, either express or implied. See the License for the
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
name: tutorial_client
|
||||
version: 0.10.0
|
||||
description: A Dart client implementation of the Apache Thrift tutorial
|
||||
author: Apache Thrift Developers <dev@thrift.apache.org>
|
||||
homepage: http://thrift.apache.org
|
||||
|
||||
environment:
|
||||
sdk: ">=1.13.0 <2.0.0"
|
||||
|
||||
dependencies:
|
||||
browser: ^0.10.0
|
||||
shared:
|
||||
path: ../gen-dart/shared
|
||||
thrift:
|
||||
path: ../../../lib/dart
|
||||
tutorial:
|
||||
path: ../gen-dart/tutorial
|
278
vendor/git.apache.org/thrift.git/tutorial/dart/client/web/client.dart
generated
vendored
Normal file
278
vendor/git.apache.org/thrift.git/tutorial/dart/client/web/client.dart
generated
vendored
Normal file
|
@ -0,0 +1,278 @@
|
|||
/// Licensed to the Apache Software Foundation (ASF) under one
|
||||
/// or more contributor license agreements. See the NOTICE file
|
||||
/// distributed with this work for additional information
|
||||
/// regarding copyright ownership. The ASF licenses this file
|
||||
/// to you under the Apache License, Version 2.0 (the
|
||||
/// "License"); you may not use this file except in compliance
|
||||
/// with the License. You may obtain a copy of the License at
|
||||
///
|
||||
/// http://www.apache.org/licenses/LICENSE-2.0
|
||||
///
|
||||
/// Unless required by applicable law or agreed to in writing,
|
||||
/// software distributed under the License is distributed on an
|
||||
/// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
/// KIND, either express or implied. See the License for the
|
||||
/// specific language governing permissions and limitations
|
||||
/// under the License.
|
||||
|
||||
import 'dart:html';
|
||||
|
||||
import 'package:thrift/thrift.dart';
|
||||
import 'package:thrift/thrift_browser.dart';
|
||||
import 'package:shared/shared.dart';
|
||||
import 'package:tutorial/tutorial.dart';
|
||||
|
||||
/// Adapted from the AS3 tutorial
|
||||
void main() {
|
||||
new CalculatorUI(querySelector('#output')).start();
|
||||
}
|
||||
|
||||
class CalculatorUI {
|
||||
final DivElement output;
|
||||
|
||||
CalculatorUI(this.output);
|
||||
|
||||
TTransport _transport;
|
||||
Calculator _calculatorClient;
|
||||
|
||||
void start() {
|
||||
_buildInterface();
|
||||
_initConnection();
|
||||
}
|
||||
|
||||
void _validate() {
|
||||
if (!_transport.isOpen) {
|
||||
window.alert("The transport is not open!");
|
||||
}
|
||||
}
|
||||
|
||||
void _initConnection() {
|
||||
_transport = new TAsyncClientSocketTransport(
|
||||
new TWebSocket(Uri.parse('ws://127.0.0.1:9090/ws')),
|
||||
new TMessageReader(new TBinaryProtocolFactory()));
|
||||
TProtocol protocol = new TBinaryProtocol(_transport);
|
||||
_transport.open();
|
||||
|
||||
_calculatorClient = new CalculatorClient(protocol);
|
||||
}
|
||||
|
||||
void _buildInterface() {
|
||||
output.children.forEach((e) {
|
||||
e.remove();
|
||||
});
|
||||
|
||||
_buildPingComponent();
|
||||
|
||||
_buildAddComponent();
|
||||
|
||||
_buildCalculatorComponent();
|
||||
|
||||
_buildGetStructComponent();
|
||||
}
|
||||
|
||||
void _buildPingComponent() {
|
||||
output.append(new HeadingElement.h3()..text = "Ping");
|
||||
ButtonElement pingButton = new ButtonElement()
|
||||
..text = "PING"
|
||||
..onClick.listen(_onPingClick);
|
||||
output.append(pingButton);
|
||||
}
|
||||
|
||||
void _onPingClick(MouseEvent e) {
|
||||
_validate();
|
||||
|
||||
_calculatorClient.ping();
|
||||
}
|
||||
|
||||
void _buildAddComponent() {
|
||||
output.append(new HeadingElement.h3()..text = "Add");
|
||||
InputElement num1 = new InputElement()
|
||||
..id = "add1"
|
||||
..type = "number"
|
||||
..style.fontSize = "14px"
|
||||
..style.width = "50px";
|
||||
output.append(num1);
|
||||
SpanElement op = new SpanElement()
|
||||
..text = "+"
|
||||
..style.fontSize = "14px"
|
||||
..style.marginLeft = "10px";
|
||||
output.append(op);
|
||||
InputElement num2 = new InputElement()
|
||||
..id = "add2"
|
||||
..type = "number"
|
||||
..style.fontSize = "14px"
|
||||
..style.width = "50px"
|
||||
..style.marginLeft = "10px";
|
||||
output.append(num2);
|
||||
ButtonElement addButton = new ButtonElement()
|
||||
..text = "="
|
||||
..style.fontSize = "14px"
|
||||
..style.marginLeft = "10px"
|
||||
..onClick.listen(_onAddClick);
|
||||
output.append(addButton);
|
||||
SpanElement result = new SpanElement()
|
||||
..id = "addResult"
|
||||
..style.fontSize = "14px"
|
||||
..style.marginLeft = "10px";
|
||||
output.append(result);
|
||||
}
|
||||
|
||||
void _onAddClick(MouseEvent e) {
|
||||
_validate();
|
||||
|
||||
InputElement num1 = querySelector("#add1");
|
||||
InputElement num2 = querySelector("#add2");
|
||||
SpanElement result = querySelector("#addResult");
|
||||
|
||||
_calculatorClient
|
||||
.add(int.parse(num1.value), int.parse(num2.value))
|
||||
.then((int n) {
|
||||
result.text = "$n";
|
||||
});
|
||||
}
|
||||
|
||||
void _buildCalculatorComponent() {
|
||||
output.append(new HeadingElement.h3()..text = "Calculator");
|
||||
InputElement num1 = new InputElement()
|
||||
..id = "calc1"
|
||||
..type = "number"
|
||||
..style.fontSize = "14px"
|
||||
..style.width = "50px";
|
||||
output.append(num1);
|
||||
SelectElement op = new SelectElement()
|
||||
..id = "calcOp"
|
||||
..multiple = false
|
||||
..selectedIndex = 0
|
||||
..style.fontSize = "16px"
|
||||
..style.marginLeft = "10px"
|
||||
..style.width = "50px";
|
||||
OptionElement addOp = new OptionElement()
|
||||
..text = "+"
|
||||
..value = Operation.ADD.toString();
|
||||
op.add(addOp, 0);
|
||||
OptionElement subtractOp = new OptionElement()
|
||||
..text = "-"
|
||||
..value = Operation.SUBTRACT.toString();
|
||||
op.add(subtractOp, 1);
|
||||
OptionElement multiplyOp = new OptionElement()
|
||||
..text = "*"
|
||||
..value = Operation.MULTIPLY.toString();
|
||||
op.add(multiplyOp, 2);
|
||||
OptionElement divideOp = new OptionElement()
|
||||
..text = "/"
|
||||
..value = Operation.DIVIDE.toString();
|
||||
op.add(divideOp, 3);
|
||||
output.append(op);
|
||||
InputElement num2 = new InputElement()
|
||||
..id = "calc2"
|
||||
..type = "number"
|
||||
..style.fontSize = "14px"
|
||||
..style.width = "50px"
|
||||
..style.marginLeft = "10px";
|
||||
output.append(num2);
|
||||
ButtonElement calcButton = new ButtonElement()
|
||||
..text = "="
|
||||
..style.fontSize = "14px"
|
||||
..style.marginLeft = "10px"
|
||||
..onClick.listen(_onCalcClick);
|
||||
output.append(calcButton);
|
||||
SpanElement result = new SpanElement()
|
||||
..id = "calcResult"
|
||||
..style.fontSize = "14px"
|
||||
..style.marginLeft = "10px";
|
||||
output.append(result);
|
||||
output.append(new BRElement());
|
||||
output.append(new BRElement());
|
||||
LabelElement logIdLabel = new LabelElement()
|
||||
..text = "Log ID:"
|
||||
..style.fontSize = "14px";
|
||||
output.append(logIdLabel);
|
||||
InputElement logId = new InputElement()
|
||||
..id = "logId"
|
||||
..type = "number"
|
||||
..value = "1"
|
||||
..style.fontSize = "14px"
|
||||
..style.width = "50px"
|
||||
..style.marginLeft = "10px";
|
||||
output.append(logId);
|
||||
LabelElement commentLabel = new LabelElement()
|
||||
..text = "Comment:"
|
||||
..style.fontSize = "14px"
|
||||
..style.marginLeft = "10px";
|
||||
output.append(commentLabel);
|
||||
InputElement comment = new InputElement()
|
||||
..id = "comment"
|
||||
..style.fontSize = "14px"
|
||||
..style.width = "100px"
|
||||
..style.marginLeft = "10px";
|
||||
output.append(comment);
|
||||
}
|
||||
|
||||
void _onCalcClick(MouseEvent e) {
|
||||
_validate();
|
||||
|
||||
InputElement num1 = querySelector("#calc1");
|
||||
InputElement num2 = querySelector("#calc2");
|
||||
SelectElement op = querySelector("#calcOp");
|
||||
SpanElement result = querySelector("#calcResult");
|
||||
InputElement logId = querySelector("#logId");
|
||||
InputElement comment = querySelector("#comment");
|
||||
|
||||
int logIdValue = int.parse(logId.value);
|
||||
logId.value = (logIdValue + 1).toString();
|
||||
|
||||
Work work = new Work();
|
||||
work.num1 = int.parse(num1.value);
|
||||
work.num2 = int.parse(num2.value);
|
||||
work.op = int.parse(op.options[op.selectedIndex].value);
|
||||
work.comment = comment.value;
|
||||
|
||||
_calculatorClient.calculate(logIdValue, work).then((int n) {
|
||||
result.text = "$n";
|
||||
});
|
||||
}
|
||||
|
||||
void _buildGetStructComponent() {
|
||||
output.append(new HeadingElement.h3()..text = "Get Struct");
|
||||
LabelElement logIdLabel = new LabelElement()
|
||||
..text = "Struct Key:"
|
||||
..style.fontSize = "14px";
|
||||
output.append(logIdLabel);
|
||||
InputElement logId = new InputElement()
|
||||
..id = "structKey"
|
||||
..type = "number"
|
||||
..value = "1"
|
||||
..style.fontSize = "14px"
|
||||
..style.width = "50px"
|
||||
..style.marginLeft = "10px";
|
||||
output.append(logId);
|
||||
ButtonElement getStructButton = new ButtonElement()
|
||||
..text = "GET"
|
||||
..style.fontSize = "14px"
|
||||
..style.marginLeft = "10px"
|
||||
..onClick.listen(_onGetStructClick);
|
||||
output.append(getStructButton);
|
||||
output.append(new BRElement());
|
||||
output.append(new BRElement());
|
||||
TextAreaElement result = new TextAreaElement()
|
||||
..id = "getStructResult"
|
||||
..style.fontSize = "14px"
|
||||
..style.width = "300px"
|
||||
..style.height = "50px"
|
||||
..style.marginLeft = "10px";
|
||||
output.append(result);
|
||||
}
|
||||
|
||||
void _onGetStructClick(MouseEvent e) {
|
||||
_validate();
|
||||
|
||||
InputElement structKey = querySelector("#structKey");
|
||||
TextAreaElement result = querySelector("#getStructResult");
|
||||
|
||||
_calculatorClient
|
||||
.getStruct(int.parse(structKey.value))
|
||||
.then((SharedStruct s) {
|
||||
result.text = "${s.toString()}";
|
||||
});
|
||||
}
|
||||
}
|
36
vendor/git.apache.org/thrift.git/tutorial/dart/client/web/index.html
generated
vendored
Normal file
36
vendor/git.apache.org/thrift.git/tutorial/dart/client/web/index.html
generated
vendored
Normal file
|
@ -0,0 +1,36 @@
|
|||
<!--
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
-->
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Thrift Tutorial</title>
|
||||
<link rel="stylesheet" href="styles.css">
|
||||
<script async src="client.dart" type="application/dart"></script>
|
||||
<script async src="packages/browser/dart.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<div id="output"></div>
|
||||
|
||||
</body>
|
||||
</html>
|
33
vendor/git.apache.org/thrift.git/tutorial/dart/client/web/styles.css
generated
vendored
Normal file
33
vendor/git.apache.org/thrift.git/tutorial/dart/client/web/styles.css
generated
vendored
Normal file
|
@ -0,0 +1,33 @@
|
|||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
@import url(https://fonts.googleapis.com/css?family=Roboto);
|
||||
|
||||
html, body {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
margin: 0;
|
||||
padding: 10px;
|
||||
font-family: 'Roboto', sans-serif;
|
||||
}
|
||||
|
||||
h3 {
|
||||
border-bottom: solid;
|
||||
border-width: thin;
|
||||
padding-top: 20px;
|
||||
}
|
2
vendor/git.apache.org/thrift.git/tutorial/dart/console_client/.analysis_options
generated
vendored
Normal file
2
vendor/git.apache.org/thrift.git/tutorial/dart/console_client/.analysis_options
generated
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
analyzer:
|
||||
strong-mode: true
|
149
vendor/git.apache.org/thrift.git/tutorial/dart/console_client/bin/main.dart
generated
vendored
Normal file
149
vendor/git.apache.org/thrift.git/tutorial/dart/console_client/bin/main.dart
generated
vendored
Normal file
|
@ -0,0 +1,149 @@
|
|||
/// Licensed to the Apache Software Foundation (ASF) under one
|
||||
/// or more contributor license agreements. See the NOTICE file
|
||||
/// distributed with this work for additional information
|
||||
/// regarding copyright ownership. The ASF licenses this file
|
||||
/// to you under the Apache License, Version 2.0 (the
|
||||
/// "License"); you may not use this file except in compliance
|
||||
/// with the License. You may obtain a copy of the License at
|
||||
///
|
||||
/// http://www.apache.org/licenses/LICENSE-2.0
|
||||
///
|
||||
/// Unless required by applicable law or agreed to in writing,
|
||||
/// software distributed under the License is distributed on an
|
||||
/// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
/// KIND, either express or implied. See the License for the
|
||||
/// specific language governing permissions and limitations
|
||||
/// under the License.
|
||||
|
||||
import 'dart:async';
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:args/args.dart';
|
||||
import 'package:logging/logging.dart';
|
||||
import 'package:thrift/thrift.dart';
|
||||
import 'package:thrift/thrift_console.dart';
|
||||
import 'package:tutorial/tutorial.dart';
|
||||
|
||||
TTransport _transport;
|
||||
Calculator _calculator;
|
||||
int logid = 0;
|
||||
|
||||
const Map<String, int> operationLookup = const {
|
||||
'+': Operation.ADD,
|
||||
'-': Operation.SUBTRACT,
|
||||
'*': Operation.MULTIPLY,
|
||||
'/': Operation.DIVIDE
|
||||
};
|
||||
|
||||
main(List<String> args) {
|
||||
Logger.root.level = Level.ALL;
|
||||
Logger.root.onRecord.listen((LogRecord rec) {
|
||||
print('${rec.level.name}: ${rec.time}: ${rec.message}');
|
||||
});
|
||||
|
||||
var parser = new ArgParser();
|
||||
parser.addOption('port', defaultsTo: '9090', help: 'The port to connect to');
|
||||
|
||||
ArgResults results;
|
||||
try {
|
||||
results = parser.parse(args);
|
||||
} catch (e) {
|
||||
results = null;
|
||||
}
|
||||
|
||||
if (results == null) {
|
||||
print(parser.usage);
|
||||
exit(0);
|
||||
}
|
||||
|
||||
int port = int.parse(results['port']);
|
||||
|
||||
_initConnection(port).then((_) => _run());
|
||||
}
|
||||
|
||||
Future _initConnection(int port) async {
|
||||
var socket = await Socket.connect('127.0.0.1', port);
|
||||
_transport = new TAsyncClientSocketTransport(
|
||||
new TTcpSocket(socket), new TMessageReader(new TBinaryProtocolFactory()));
|
||||
TProtocol protocol = new TBinaryProtocol(_transport);
|
||||
await _transport.open();
|
||||
|
||||
_calculator = new CalculatorClient(protocol);
|
||||
}
|
||||
|
||||
Future _run() async {
|
||||
_help();
|
||||
|
||||
while (true) {
|
||||
stdout.write("> ");
|
||||
var input = stdin.readLineSync();
|
||||
var parts = input.split(' ');
|
||||
var command = parts[0];
|
||||
var args = parts.length > 1 ? parts.sublist(1) : [];
|
||||
|
||||
switch (command) {
|
||||
case 'ping':
|
||||
await _ping();
|
||||
break;
|
||||
|
||||
case 'add':
|
||||
await _add(int.parse(args[0]), int.parse(args[1]));
|
||||
break;
|
||||
|
||||
case 'calc':
|
||||
int op = operationLookup[args[1]];
|
||||
if (!Operation.VALID_VALUES.contains(op)) {
|
||||
stdout.writeln('Unknown operator ${args[1]}');
|
||||
break;
|
||||
}
|
||||
|
||||
var work = new Work()
|
||||
..num1 = int.parse(args[0])
|
||||
..op = op
|
||||
..num2 = int.parse(args[2])
|
||||
..comment = args.length > 3 ? args[3] : '';
|
||||
|
||||
await _calc(work);
|
||||
break;
|
||||
|
||||
case 'struct':
|
||||
await _struct(int.parse(args[0]));
|
||||
break;
|
||||
|
||||
case 'help':
|
||||
default:
|
||||
_help();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void _help() {
|
||||
stdout.writeln('Commands:');
|
||||
stdout.writeln(' help');
|
||||
stdout.writeln(' ping');
|
||||
stdout.writeln(' add x y');
|
||||
stdout.writeln(' calc x op y [comment]');
|
||||
stdout.writeln(' struct id');
|
||||
stdout.writeln('');
|
||||
}
|
||||
|
||||
Future _ping() async {
|
||||
await _calculator.ping();
|
||||
stdout.writeln('ping succeeded');
|
||||
}
|
||||
|
||||
Future _add(int x, int y) async {
|
||||
int result = await _calculator.add(x, y);
|
||||
stdout.writeln('= $result');
|
||||
}
|
||||
|
||||
Future _calc(Work work) async {
|
||||
int result = await _calculator.calculate(logid++, work);
|
||||
stdout.writeln('= $result');
|
||||
}
|
||||
|
||||
Future _struct(int key) async {
|
||||
var struct = await _calculator.getStruct(key);
|
||||
stdout.writeln(struct.toString());
|
||||
}
|
36
vendor/git.apache.org/thrift.git/tutorial/dart/console_client/pubspec.yaml
generated
vendored
Normal file
36
vendor/git.apache.org/thrift.git/tutorial/dart/console_client/pubspec.yaml
generated
vendored
Normal file
|
@ -0,0 +1,36 @@
|
|||
# Licensed to the Apache Software Foundation (ASF) under one
|
||||
# or more contributor license agreements. See the NOTICE file
|
||||
# distributed with this work for additional information
|
||||
# regarding copyright ownership. The ASF licenses this file
|
||||
# to you under the Apache License, Version 2.0 (the
|
||||
# 'License'); you may not use this file except in compliance
|
||||
# with the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing,
|
||||
# software distributed under the License is distributed on an
|
||||
# 'AS IS' BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
# KIND, either express or implied. See the License for the
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
name: tutorial_console_client
|
||||
version: 0.10.0
|
||||
description: >
|
||||
A Dart console client to implementation of the Apache Thrift tutorial
|
||||
author: Apache Thrift Developers <dev@thrift.apache.org>
|
||||
homepage: http://thrift.apache.org
|
||||
|
||||
environment:
|
||||
sdk: ">=1.13.0 <2.0.0"
|
||||
|
||||
dependencies:
|
||||
args: ^0.13.0
|
||||
collection: ^1.1.0
|
||||
shared:
|
||||
path: ../gen-dart/shared
|
||||
thrift:
|
||||
path: ../../../lib/dart
|
||||
tutorial:
|
||||
path: ../gen-dart/tutorial
|
2
vendor/git.apache.org/thrift.git/tutorial/dart/server/.analysis_options
generated
vendored
Normal file
2
vendor/git.apache.org/thrift.git/tutorial/dart/server/.analysis_options
generated
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
analyzer:
|
||||
strong-mode: true
|
163
vendor/git.apache.org/thrift.git/tutorial/dart/server/bin/main.dart
generated
vendored
Normal file
163
vendor/git.apache.org/thrift.git/tutorial/dart/server/bin/main.dart
generated
vendored
Normal file
|
@ -0,0 +1,163 @@
|
|||
/// Licensed to the Apache Software Foundation (ASF) under one
|
||||
/// or more contributor license agreements. See the NOTICE file
|
||||
/// distributed with this work for additional information
|
||||
/// regarding copyright ownership. The ASF licenses this file
|
||||
/// to you under the Apache License, Version 2.0 (the
|
||||
/// "License"); you may not use this file except in compliance
|
||||
/// with the License. You may obtain a copy of the License at
|
||||
///
|
||||
/// http://www.apache.org/licenses/LICENSE-2.0
|
||||
///
|
||||
/// Unless required by applicable law or agreed to in writing,
|
||||
/// software distributed under the License is distributed on an
|
||||
/// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
/// KIND, either express or implied. See the License for the
|
||||
/// specific language governing permissions and limitations
|
||||
/// under the License.
|
||||
|
||||
import 'dart:async';
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:args/args.dart';
|
||||
import 'package:logging/logging.dart';
|
||||
import 'package:thrift/thrift.dart';
|
||||
import 'package:thrift/thrift_console.dart';
|
||||
import 'package:tutorial/tutorial.dart';
|
||||
import 'package:shared/shared.dart';
|
||||
|
||||
TProtocol _protocol;
|
||||
TProcessor _processor;
|
||||
WebSocket _webSocket;
|
||||
|
||||
main(List<String> args) {
|
||||
Logger.root.level = Level.ALL;
|
||||
Logger.root.onRecord.listen((LogRecord rec) {
|
||||
print('${rec.level.name}: ${rec.time}: ${rec.message}');
|
||||
});
|
||||
|
||||
var parser = new ArgParser();
|
||||
parser.addOption('port', defaultsTo: '9090', help: 'The port to listen on');
|
||||
parser.addOption('type',
|
||||
defaultsTo: 'ws',
|
||||
allowed: ['ws', 'tcp'],
|
||||
help: 'The type of socket',
|
||||
allowedHelp: {'ws': 'WebSocket', 'tcp': 'TCP Socket'});
|
||||
|
||||
ArgResults results;
|
||||
try {
|
||||
results = parser.parse(args);
|
||||
} catch (e) {
|
||||
results = null;
|
||||
}
|
||||
|
||||
if (results == null) {
|
||||
print(parser.usage);
|
||||
exit(0);
|
||||
}
|
||||
|
||||
int port = int.parse(results['port']);
|
||||
String socketType = results['type'];
|
||||
|
||||
if (socketType == 'tcp') {
|
||||
_runTcpServer(port);
|
||||
} else if (socketType == 'ws') {
|
||||
_runWebSocketServer(port);
|
||||
}
|
||||
}
|
||||
|
||||
Future _runWebSocketServer(int port) async {
|
||||
var httpServer = await HttpServer.bind('127.0.0.1', port);
|
||||
print('listening for WebSocket connections on $port');
|
||||
|
||||
httpServer.listen((HttpRequest request) async {
|
||||
if (request.uri.path == '/ws') {
|
||||
_webSocket = await WebSocketTransformer.upgrade(request);
|
||||
await _initProcessor(new TWebSocket(_webSocket));
|
||||
} else {
|
||||
print('Invalid path: ${request.uri.path}');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Future _runTcpServer(int port) async {
|
||||
var serverSocket = await ServerSocket.bind('127.0.0.1', port);
|
||||
print('listening for TCP connections on $port');
|
||||
|
||||
Socket socket = await serverSocket.first;
|
||||
await _initProcessor(new TTcpSocket(socket));
|
||||
}
|
||||
|
||||
Future _initProcessor(TSocket socket) async {
|
||||
TServerSocketTransport transport = new TServerSocketTransport(socket);
|
||||
transport.onIncomingMessage.listen(_processMessage);
|
||||
_processor = new CalculatorProcessor(new CalculatorServer());
|
||||
_protocol = new TBinaryProtocol(transport);
|
||||
await _protocol.transport.open();
|
||||
|
||||
print('connected');
|
||||
}
|
||||
|
||||
Future _processMessage(_) async {
|
||||
_processor.process(_protocol, _protocol);
|
||||
}
|
||||
|
||||
class CalculatorServer implements Calculator {
|
||||
final Map<int, SharedStruct> _log = {};
|
||||
|
||||
Future ping() async {
|
||||
print('ping()');
|
||||
}
|
||||
|
||||
Future<int> add(int num1, int num2) async {
|
||||
print('add($num1, $num2)');
|
||||
|
||||
return num1 + num2;
|
||||
}
|
||||
|
||||
Future<int> calculate(int logid, Work work) async {
|
||||
print('calulate($logid, ${work.toString()})');
|
||||
|
||||
int val;
|
||||
|
||||
switch (work.op) {
|
||||
case Operation.ADD:
|
||||
val = work.num1 + work.num2;
|
||||
break;
|
||||
|
||||
case Operation.SUBTRACT:
|
||||
val = work.num1 - work.num2;
|
||||
break;
|
||||
|
||||
case Operation.MULTIPLY:
|
||||
val = work.num1 * work.num2;
|
||||
break;
|
||||
|
||||
case Operation.DIVIDE:
|
||||
if (work.num2 == 0) {
|
||||
var x = new InvalidOperation();
|
||||
x.whatOp = work.op;
|
||||
x.why = 'Cannot divide by 0';
|
||||
throw x;
|
||||
}
|
||||
val = (work.num1 / work.num2).floor();
|
||||
break;
|
||||
}
|
||||
|
||||
var log = new SharedStruct();
|
||||
log.key = logid;
|
||||
log.value = '$val "${work.comment}"';
|
||||
this._log[logid] = log;
|
||||
|
||||
return val;
|
||||
}
|
||||
|
||||
Future zip() async {
|
||||
print('zip()');
|
||||
}
|
||||
|
||||
Future<SharedStruct> getStruct(int key) async {
|
||||
print('getStruct($key)');
|
||||
|
||||
return _log[key];
|
||||
}
|
||||
}
|
34
vendor/git.apache.org/thrift.git/tutorial/dart/server/pubspec.yaml
generated
vendored
Normal file
34
vendor/git.apache.org/thrift.git/tutorial/dart/server/pubspec.yaml
generated
vendored
Normal file
|
@ -0,0 +1,34 @@
|
|||
# Licensed to the Apache Software Foundation (ASF) under one
|
||||
# or more contributor license agreements. See the NOTICE file
|
||||
# distributed with this work for additional information
|
||||
# regarding copyright ownership. The ASF licenses this file
|
||||
# to you under the Apache License, Version 2.0 (the
|
||||
# 'License'); you may not use this file except in compliance
|
||||
# with the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing,
|
||||
# software distributed under the License is distributed on an
|
||||
# 'AS IS' BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
# KIND, either express or implied. See the License for the
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
name: tutorial_server
|
||||
version: 0.10.0
|
||||
description: A Dart server to support the Apache Thrift tutorial
|
||||
author: Apache Thrift Developers <dev@thrift.apache.org>
|
||||
homepage: http://thrift.apache.org
|
||||
|
||||
environment:
|
||||
sdk: ">=1.13.0 <2.0.0"
|
||||
|
||||
dependencies:
|
||||
args: ^0.13.0
|
||||
shared:
|
||||
path: ../gen-dart/shared
|
||||
thrift:
|
||||
path: ../../../lib/dart
|
||||
tutorial:
|
||||
path: ../gen-dart/tutorial
|
Loading…
Add table
Add a link
Reference in a new issue