github.com/artyom/thrift@v0.0.0-20130902103359-388840a05deb/transport.go (about)

     1  /*
     2   * Licensed to the Apache Software Foundation (ASF) under one
     3   * or more contributor license agreements. See the NOTICE file
     4   * distributed with this work for additional information
     5   * regarding copyright ownership. The ASF licenses this file
     6   * to you under the Apache License, Version 2.0 (the
     7   * "License"); you may not use this file except in compliance
     8   * with the License. You may obtain a copy of the License at
     9   *
    10   *   http://www.apache.org/licenses/LICENSE-2.0
    11   *
    12   * Unless required by applicable law or agreed to in writing,
    13   * software distributed under the License is distributed on an
    14   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    15   * KIND, either express or implied. See the License for the
    16   * specific language governing permissions and limitations
    17   * under the License.
    18   */
    19  
    20  package thrift
    21  
    22  import (
    23  	"errors"
    24  	"io"
    25  )
    26  
    27  var errTransportInterrupted = errors.New("Transport Interrupted")
    28  
    29  type Flusher interface {
    30  	Flush() (err error)
    31  }
    32  
    33  // Encapsulates the I/O layer
    34  type TTransport interface {
    35  	io.ReadWriteCloser
    36  	Flusher
    37  
    38  	// Opens the transport for communication
    39  	Open() error
    40  
    41  	// Returns true if the transport is open
    42  	IsOpen() bool
    43  
    44  	// Returns true if there is more data to be read or the remote side is still open
    45  	Peek() bool
    46  }