]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/jaegertracing/thrift/lib/dart/lib/src/transport/t_framed_transport.dart
import quincy beta 17.1.0
[ceph.git] / ceph / src / jaegertracing / thrift / lib / dart / lib / src / transport / t_framed_transport.dart
diff --git a/ceph/src/jaegertracing/thrift/lib/dart/lib/src/transport/t_framed_transport.dart b/ceph/src/jaegertracing/thrift/lib/dart/lib/src/transport/t_framed_transport.dart
deleted file mode 100644 (file)
index 2ef03f7..0000000
+++ /dev/null
@@ -1,169 +0,0 @@
-/// 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.
-
-part of thrift;
-
-/// Framed [TTransport].
-///
-/// Adapted from the Java Framed transport.
-class TFramedTransport extends TBufferedTransport {
-  static const int headerByteCount = 4;
-
-  final TTransport _transport;
-
-  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) {
-      throw new ArgumentError.notNull("transport");
-    }
-  }
-
-  bool get isOpen => _transport.isOpen;
-
-  Future open() {
-    _reset(isOpen: true);
-    return _transport.open();
-  }
-
-  Future close() {
-    _reset(isOpen: false);
-    return _transport.close();
-  }
-
-  int read(Uint8List buffer, int offset, int length) {
-    if (hasReadData) {
-      int got = super.read(buffer, offset, length);
-      if (got > 0) return got;
-    }
-
-    // IMPORTANT: by the time you've got here,
-    // an entire frame is available for reading
-
-    return super.read(buffer, offset, length);
-  }
-
-  void _readFrame() {
-    if (_body == null) {
-      bool gotFullHeader = _readFrameHeader();
-      if (!gotFullHeader) {
-        return;
-      }
-    }
-
-    _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() {
-    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);
-
-      _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);
-    });
-  }
-}