gorealis v2 refactor (#5)
* Changing default timeout for start maintenance. * Upgrading dependencies to gorealis v2 and thrift 0.12.0 * Refactored to update to gorealis v2.
This commit is contained in:
parent
ad4dd9606e
commit
6ab5c9334d
1335 changed files with 137431 additions and 61530 deletions
120
vendor/git.apache.org/thrift.git/lib/dart/lib/src/transport/t_framed_transport.dart
generated
vendored
120
vendor/git.apache.org/thrift.git/lib/dart/lib/src/transport/t_framed_transport.dart
generated
vendored
|
@ -25,7 +25,14 @@ class TFramedTransport extends TBufferedTransport {
|
|||
|
||||
final TTransport _transport;
|
||||
|
||||
final Uint8List headerBytes = new Uint8List(headerByteCount);
|
||||
final Uint8List _headerBytes = new Uint8List(headerByteCount);
|
||||
int _receivedHeaderBytes = 0;
|
||||
|
||||
int _bodySize = 0;
|
||||
Uint8List _body = null;
|
||||
int _receivedBodyBytes = 0;
|
||||
|
||||
Completer<Uint8List> _frameCompleter = null;
|
||||
|
||||
TFramedTransport(TTransport transport) : _transport = transport {
|
||||
if (transport == null) {
|
||||
|
@ -51,33 +58,112 @@ class TFramedTransport extends TBufferedTransport {
|
|||
if (got > 0) return got;
|
||||
}
|
||||
|
||||
_readFrame();
|
||||
// IMPORTANT: by the time you've got here,
|
||||
// an entire frame is available for reading
|
||||
|
||||
return super.read(buffer, offset, length);
|
||||
}
|
||||
|
||||
void _readFrame() {
|
||||
_transport.readAll(headerBytes, 0, headerByteCount);
|
||||
int size = headerBytes.buffer.asByteData().getUint32(0);
|
||||
|
||||
if (size < 0) {
|
||||
throw new TTransportError(
|
||||
TTransportErrorType.UNKNOWN, "Read a negative frame size: $size");
|
||||
if (_body == null) {
|
||||
bool gotFullHeader = _readFrameHeader();
|
||||
if (!gotFullHeader) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
Uint8List buffer = new Uint8List(size);
|
||||
_transport.readAll(buffer, 0, size);
|
||||
_setReadBuffer(buffer);
|
||||
_readFrameBody();
|
||||
}
|
||||
|
||||
bool _readFrameHeader() {
|
||||
var remainingHeaderBytes = headerByteCount - _receivedHeaderBytes;
|
||||
|
||||
int got = _transport.read(_headerBytes, _receivedHeaderBytes, remainingHeaderBytes);
|
||||
if (got < 0) {
|
||||
throw new TTransportError(
|
||||
TTransportErrorType.UNKNOWN, "Socket closed during frame header read");
|
||||
}
|
||||
|
||||
_receivedHeaderBytes += got;
|
||||
|
||||
if (_receivedHeaderBytes == headerByteCount) {
|
||||
int size = _headerBytes.buffer.asByteData().getUint32(0);
|
||||
|
||||
_receivedHeaderBytes = 0;
|
||||
|
||||
if (size < 0) {
|
||||
throw new TTransportError(
|
||||
TTransportErrorType.UNKNOWN, "Read a negative frame size: $size");
|
||||
}
|
||||
|
||||
_bodySize = size;
|
||||
_body = new Uint8List(_bodySize);
|
||||
_receivedBodyBytes = 0;
|
||||
|
||||
return true;
|
||||
} else {
|
||||
_registerForReadableBytes();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
void _readFrameBody() {
|
||||
var remainingBodyBytes = _bodySize - _receivedBodyBytes;
|
||||
|
||||
int got = _transport.read(_body, _receivedBodyBytes, remainingBodyBytes);
|
||||
if (got < 0) {
|
||||
throw new TTransportError(
|
||||
TTransportErrorType.UNKNOWN, "Socket closed during frame body read");
|
||||
}
|
||||
|
||||
_receivedBodyBytes += got;
|
||||
|
||||
if (_receivedBodyBytes == _bodySize) {
|
||||
var body = _body;
|
||||
|
||||
_bodySize = 0;
|
||||
_body = null;
|
||||
_receivedBodyBytes = 0;
|
||||
|
||||
_setReadBuffer(body);
|
||||
|
||||
var completer = _frameCompleter;
|
||||
_frameCompleter = null;
|
||||
completer.complete(new Uint8List(0));
|
||||
} else {
|
||||
_registerForReadableBytes();
|
||||
}
|
||||
}
|
||||
|
||||
Future flush() {
|
||||
Uint8List buffer = consumeWriteBuffer();
|
||||
int length = buffer.length;
|
||||
if (_frameCompleter == null) {
|
||||
Uint8List buffer = consumeWriteBuffer();
|
||||
int length = buffer.length;
|
||||
|
||||
headerBytes.buffer.asByteData().setUint32(0, length);
|
||||
_transport.write(headerBytes, 0, headerByteCount);
|
||||
_transport.write(buffer, 0, length);
|
||||
_headerBytes.buffer.asByteData().setUint32(0, length);
|
||||
_transport.write(_headerBytes, 0, headerByteCount);
|
||||
_transport.write(buffer, 0, length);
|
||||
|
||||
return _transport.flush();
|
||||
_frameCompleter = new Completer<Uint8List>();
|
||||
_registerForReadableBytes();
|
||||
}
|
||||
|
||||
return _frameCompleter.future;
|
||||
}
|
||||
|
||||
void _registerForReadableBytes() {
|
||||
_transport.flush().then((_) {
|
||||
_readFrame();
|
||||
}).catchError((e) {
|
||||
var completer = _frameCompleter;
|
||||
|
||||
_receivedHeaderBytes = 0;
|
||||
_bodySize = 0;
|
||||
_body = null;
|
||||
_receivedBodyBytes = 0;
|
||||
_frameCompleter = null;
|
||||
|
||||
completer.completeError(e);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
4
vendor/git.apache.org/thrift.git/lib/dart/lib/src/transport/t_socket_transport.dart
generated
vendored
4
vendor/git.apache.org/thrift.git/lib/dart/lib/src/transport/t_socket_transport.dart
generated
vendored
|
@ -79,7 +79,9 @@ class TClientSocketTransport extends TSocketTransport {
|
|||
var completer = new Completer<Uint8List>.sync();
|
||||
_completers.add(completer);
|
||||
|
||||
socket.send(bytes);
|
||||
if (bytes.lengthInBytes > 0) {
|
||||
socket.send(bytes);
|
||||
}
|
||||
|
||||
return completer.future;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue