Packages

  • package root
    Definition Classes
    root
  • package com
    Definition Classes
    root
  • package twitter

    Start with com.twitter.finagle.

    Definition Classes
    com
  • package finagle

    Finagle is an extensible RPC system.

    Finagle is an extensible RPC system.

    Services are represented by class com.twitter.finagle.Service. Clients make use of com.twitter.finagle.Service objects while servers implement them.

    Finagle contains a number of protocol implementations; each of these implement Client and/or com.twitter.finagle.Server. For example, Finagle's HTTP implementation, com.twitter.finagle.Http (in package finagle-http), exposes both.

    Thus a simple HTTP server is built like this:

    import com.twitter.finagle.{Http, Service}
    import com.twitter.finagle.http.{Request, Response}
    import com.twitter.util.{Await, Future}
    
    val service = new Service[Request, Response] {
      def apply(req: Request): Future[Response] =
        Future.value(Response())
    }
    val server = Http.server.serve(":8080", service)
    Await.ready(server)

    We first define a service to which requests are dispatched. In this case, the service returns immediately with a HTTP 200 OK response, and with no content.

    This service is then served via the Http protocol on TCP port 8080. Finally we wait for the server to stop serving.

    We can now query our web server:

    % curl -D - localhost:8080
    HTTP/1.1 200 OK

    Building an HTTP client is also simple. (Note that type annotations are added for illustration.)

    import com.twitter.finagle.{Http, Service}
    import com.twitter.finagle.http.{Request, Response}
    import com.twitter.util.{Future, Return, Throw}
    
    val client: Service[Request, Response] = Http.client.newService("localhost:8080")
    val f: Future[Response] = client(Request()).respond {
      case Return(rep) =>
        printf("Got HTTP response %s\n", rep)
      case Throw(exc) =>
        printf("Got error %s\n", exc)
    }

    Http.client.newService("localhost:8080") constructs a new com.twitter.finagle.Service instance connected to localhost TCP port 8080. We then issue a HTTP/1.1 GET request to URI "/". The service returns a com.twitter.util.Future representing the result of the operation. We listen to this future, printing an appropriate message when the response arrives.

    The Finagle homepage contains useful documentation and resources for using Finagle.

    Definition Classes
    twitter
  • package http
    Definition Classes
    finagle
  • object Response
    Definition Classes
    http
  • Proxy

abstract class Proxy extends Response

Linear Supertypes
Known Subclasses
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Proxy
  2. Response
  3. Message
  4. AnyRef
  5. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Instance Constructors

  1. new Proxy()

Abstract Value Members

  1. abstract def response: Response

    Underlying Response

Concrete Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. def accept: Seq[String]

    Accept header

    Accept header

    Definition Classes
    Message
  5. def acceptMediaTypes: Seq[String]

    Accept header media types (normalized, no parameters)

    Accept header media types (normalized, no parameters)

    Definition Classes
    Message
  6. def accept_=(values: Iterable[String]): Unit

    Set Accept header with list of values

    Set Accept header with list of values

    Definition Classes
    Message
  7. def accept_=(value: String): Unit

    Set Accept header

    Set Accept header

    Definition Classes
    Message
  8. def addCookie(cookie: Cookie): Unit

    Add a cookie

    Add a cookie

    Definition Classes
    Message
  9. def allow: Option[String]

    Allow header

    Allow header

    Definition Classes
    Message
  10. def allow_=(values: Iterable[Method]): Unit

    Set Authorization header

    Set Authorization header

    Definition Classes
    Message
  11. def allow_=(value: String): Unit

    Set Authorization header

    Set Authorization header

    Definition Classes
    Message
  12. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  13. def authorization: Option[String]

    Get Authorization header

    Get Authorization header

    Definition Classes
    Message
  14. def authorization_=(value: String): Unit

    Set Authorization header

    Set Authorization header

    Definition Classes
    Message
  15. def cacheControl: Option[String]

    Get Cache-Control header

    Get Cache-Control header

    Definition Classes
    Message
  16. def cacheControl_=(maxAge: Duration): Unit

    Set Cache-Control header with a max-age (and must-revalidate).

    Set Cache-Control header with a max-age (and must-revalidate).

    Definition Classes
    Message
  17. def cacheControl_=(value: String): Unit

    Set Cache-Control header

    Set Cache-Control header

    Definition Classes
    Message
  18. def charset: Option[String]

    Get charset from Content-Type header

    Get charset from Content-Type header

    Definition Classes
    Message
  19. def charset_=(value: String): Unit

    Set charset in Content-Type header.

    Set charset in Content-Type header. This does not change the content.

    Definition Classes
    Message
  20. def chunkReader: Reader[Chunk]

    A read-only handle to a stream of Chunk, representing the message body.

    A read-only handle to a stream of Chunk, representing the message body. This stream is only populated on chunked messages (isChunked == true). Use content to access a payload of a fully-buffered message (isChunked == false).

    Prefer this API over reader when application needs to receive trailing headers (trailers). Trailers are transmitted in the very last chunk (chunk.isLast == true) of the stream and can be retrieved via Chunk.trailers.

    Definition Classes
    ProxyMessage
    See also

    Reader and Chunk

  21. def chunkWriter: Writer[Chunk]

    A write-only handle to a stream of Chunk, representing the message body.

    A write-only handle to a stream of Chunk, representing the message body. Only chunked messages (isChunked == true) use this stream as their payload, fully-buffered messages (isChunked == false) use content instead.

    Prefer this API over writer when application needs to send trailing headers (trailers). Trailers are transmitted in the very last chunk of the stream and can be populated via Chunk.last factory method.

    Definition Classes
    ProxyMessage
    See also

    Reader and Chunk

  22. final def clearContent(): Unit

    Clear content (set to "").

    Clear content (set to "").

    Definition Classes
    Message
  23. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native()
  24. def close(): Future[Unit]

    End the response stream.

    End the response stream.

    Definition Classes
    Message
  25. final def content: Buf

    Retrieve the current content of this Message.

    Retrieve the current content of this Message.

    If this message is chunked, the resulting Buf will always be empty.

    Definition Classes
    ProxyMessage
  26. final def content(content: Buf): Proxy.this.type

    Set the content of this Message.

    Set the content of this Message.

    Any existing content is discarded. If this Message is set to chunked, an IllegalStateException is thrown.

    Definition Classes
    Message
    Annotations
    @throws(scala.this.throws.<init>$default$1[IllegalStateException])
    See also

    content_=(Buf) for Scala users

  27. final def contentLength(value: Long): Proxy.this.type

    Set Content-Length header.

    Set Content-Length header. Normally, this is automatically set by the Codec, but this method allows you to override that.

    Definition Classes
    Message
    See also

    contentLength_=(Long) for Scala users.

  28. def contentLength: Option[Long]

    Get the value of the Content-Length header.

    Get the value of the Content-Length header. Use length to get the length of actual content.

    Definition Classes
    Message
    See also

    Long for Java users.

  29. final def contentLengthOrElse(default: Long): Long

    Get the value of the Content-Length header, or the provided default if it doesn't exist.

    Get the value of the Content-Length header, or the provided default if it doesn't exist.

    Definition Classes
    Message
    See also

    Option(Long) for Scala users.

  30. def contentLength_=(value: Long): Unit

    Set Content-Length header.

    Set Content-Length header. Normally, this is automatically set by the Codec, but this method allows you to override that.

    Definition Classes
    Message
    See also

    contentLength(Long) for Java users.

  31. def contentString: String

    Get the content as a string.

    Get the content as a string.

    Definition Classes
    Message
  32. def contentString_=(value: String): Unit

    Set the content as a string.

    Set the content as a string.

    Definition Classes
    Message
  33. def contentType: Option[String]

    Get Content-Type header

    Get Content-Type header

    Definition Classes
    Message
  34. def contentType_=(value: String): Unit

    Set Content-Type header

    Set Content-Type header

    Definition Classes
    Message
  35. final def content_=(content: Buf): Unit

    Set the content of this Message.

    Set the content of this Message.

    Any existing content is discarded. If this Message is set to chunked, an IllegalStateException is thrown.

    Definition Classes
    ProxyMessage
    See also

    content(Buf) for Java users

  36. lazy val cookies: CookieMap

    Cookies.

    Cookies. In a request, this uses the Cookie headers. In a response, it uses the Set-Cookie headers.

    Definition Classes
    ProxyMessage
  37. def ctx: Record

    Arbitrary user-defined context associated with this response object.

    Arbitrary user-defined context associated with this response object. RecordSchema.Record is used here, rather than com.twitter.finagle.context.Context or similar out-of-band mechanisms, to make the connection between the response and its associated context explicit.

    Definition Classes
    ProxyResponse
  38. def date: Option[String]

    Get Date header

    Get Date header

    Definition Classes
    Message
  39. def date_=(value: Date): Unit

    Set Date header by Date

    Set Date header by Date

    Definition Classes
    Message
  40. def date_=(value: String): Unit

    Set Date header

    Set Date header

    Definition Classes
    Message
  41. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  42. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  43. def expires: Option[String]

    Get Expires header

    Get Expires header

    Definition Classes
    Message
  44. def expires_=(value: Date): Unit

    Set Expires header by Date

    Set Expires header by Date

    Definition Classes
    Message
  45. def expires_=(value: String): Unit

    Set Expires header

    Set Expires header

    Definition Classes
    Message
  46. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable])
  47. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  48. def getContentString(): String
    Definition Classes
    Message
  49. def getCookies(): Iterator[Cookie]

    Get iterator over Cookies

    Get iterator over Cookies

    Definition Classes
    Message
  50. final def getInputStream(): InputStream

    Get InputStream for content.

    Get InputStream for content. Caller must close. (Java interface. Scala users should use withInputStream.)

    Definition Classes
    Message
  51. final def getLength(): Int

    Get length of content.

    Get length of content.

    Definition Classes
    Message
  52. final def getReader(): Reader

    Get Reader for content.

    Get Reader for content. (Java interface. Scala users should use withReader.)

    Definition Classes
    Message
  53. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  54. def headerMap: HeaderMap

    HTTP headers associated with this message.

    HTTP headers associated with this message.

    Definition Classes
    ProxyMessage
    Note

    HeaderMap isn't thread-safe. Any concurrent access should be synchronized externally.

  55. final def host(value: String): Proxy.this.type

    Set the Host header

    Set the Host header

    Definition Classes
    Message
    See also

    host_=(String) for Scala users

  56. def host: Option[String]

    Get Host header

    Get Host header

    Definition Classes
    Message
  57. def host_=(value: String): Unit

    Set Host header

    Set Host header

    Definition Classes
    Message
    See also

    host(String) for Java users

  58. final def isChunked: Boolean
    Definition Classes
    ProxyMessage
  59. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  60. final def isRequest: Boolean
    Definition Classes
    ResponseMessage
  61. def isResponse: Boolean
    Definition Classes
    Message
  62. def isXmlHttpRequest: Boolean

    Check if X-Requested-With contains XMLHttpRequest, usually signalling a request from a JavaScript AJAX libraries.

    Check if X-Requested-With contains XMLHttpRequest, usually signalling a request from a JavaScript AJAX libraries. Some servers treat these requests specially. For example, an endpoint might render JSON or XML instead HTML if it's an XmlHttpRequest. (Tip: don't do this - it's gross.)

    Definition Classes
    Message
  63. final def keepAlive: Boolean
    Definition Classes
    Message
  64. final def keepAlive(keepAlive: Boolean): Proxy.this.type
    Definition Classes
    Message
  65. def lastModified: Option[String]

    Get Last-Modified header

    Get Last-Modified header

    Definition Classes
    Message
  66. def lastModified_=(value: Date): Unit

    Set Last-Modified header by Date

    Set Last-Modified header by Date

    Definition Classes
    Message
  67. def lastModified_=(value: String): Unit

    Set Last-Modified header

    Set Last-Modified header

    Definition Classes
    Message
  68. final def length: Int

    Get length of content.

    Get length of content.

    Definition Classes
    Message
  69. def location: Option[String]

    Get Location header

    Get Location header

    Definition Classes
    Message
  70. def location_=(value: String): Unit

    Set Location header

    Set Location header

    Definition Classes
    Message
  71. def mediaType: Option[String]

    Get media-type from Content-Type header

    Get media-type from Content-Type header

    Definition Classes
    Message
  72. def mediaType_=(value: String): Unit

    Set media-type in Content-Type header.

    Set media-type in Content-Type header. Charset and parameter values are preserved, though may not be appropriate for the new media type.

    Definition Classes
    Message
  73. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  74. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  75. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  76. final lazy val reader: Reader[Buf]

    A read-only handle to a stream of Buf, representing the message body.

    A read-only handle to a stream of Buf, representing the message body. This stream is only * populated on chunked messages (isChunked == true). Use content to access a payload of a fully-buffered message (isChunked == false).

    Prefer this API over chunkReader when application doesn't need access to trailing headers (trailers).

    Definition Classes
    Message
    See also

    Reader

  77. def referer: Option[String]

    Get Referer [sic] header

    Get Referer [sic] header

    Definition Classes
    Message
  78. def referer_=(value: String): Unit

    Set Referer [sic] header

    Set Referer [sic] header

    Definition Classes
    Message
  79. def removeCookie(name: String): Unit

    Remove a cookie

    Remove a cookie

    Definition Classes
    Message
  80. def retryAfter: Option[String]

    Get Retry-After header

    Get Retry-After header

    Definition Classes
    Message
  81. def retryAfter_=(value: Long): Unit

    Set Retry-After header by seconds

    Set Retry-After header by seconds

    Definition Classes
    Message
  82. def retryAfter_=(value: String): Unit

    Set Retry-After header

    Set Retry-After header

    Definition Classes
    Message
  83. def server: Option[String]

    Get Server header

    Get Server header

    Definition Classes
    Message
  84. def server_=(value: String): Unit

    Set Server header

    Set Server header

    Definition Classes
    Message
  85. final def setChunked(chunked: Boolean): Unit

    Manipulate the Message content mode.

    Manipulate the Message content mode.

    If chunked is true, any existing content will be discarded and further attempts to manipulate the synchronous content will result in an IllegalStateException.

    If chunked is false, the synchronous content methods will become available and the Reader/Writer of the message will be ignored by Finagle.

    Definition Classes
    ProxyMessage
  86. final def setContentString(value: String): Unit

    Set the content as a string.

    Set the content as a string.

    Definition Classes
    Message
  87. def setContentType(mediaType: String, charset: String = "utf-8"): Unit

    Set Content-Type header by media-type and charset

    Set Content-Type header by media-type and charset

    Definition Classes
    Message
  88. def setContentTypeJson(): Unit

    Set Content-Type header to application/json;charset=utf-8

    Set Content-Type header to application/json;charset=utf-8

    Definition Classes
    Message
  89. final def status: Status
    Definition Classes
    ProxyResponse
  90. final def status(value: Status): Proxy.this.type

    Set the status of this response

    Set the status of this response

    Definition Classes
    Response
    Note

    See status_=(Status) for Scala users.

  91. final def statusCode(value: Int): Proxy.this.type

    Set the status code of this response

    Set the status code of this response

    Definition Classes
    Response
    Note

    See statusCode_=(Int) for Scala users.

  92. final def statusCode: Int

    Get the status code of this response

    Get the status code of this response

    Definition Classes
    Response
  93. final def statusCode_=(value: Int): Unit

    Set the status code of this response

    Set the status code of this response

    Definition Classes
    Response
    Note

    See statusCode(Int) for Java users.

  94. final def status_=(value: Status): Unit

    Set the status of this response

    Set the status of this response

    Definition Classes
    ProxyResponse
    Note

    see status(Status) for Java users.

  95. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  96. def toString(): String
    Definition Classes
    Response → AnyRef → Any
  97. def trailers: HeaderMap

    Trailing headers (trailers) associated with this message.

    Trailing headers (trailers) associated with this message.

    These are only populated on fully-buffered inbound messages that were aggregated (see withStreaming(false)) from HTTP streams terminating with trailers.

    Definition Classes
    ProxyMessage
    Note

    HeaderMap isn't thread-safe. Any concurrent access should be synchronized externally.

  98. def userAgent: Option[String]

    Get User-Agent header

    Get User-Agent header

    Definition Classes
    Message
  99. def userAgent_=(value: String): Unit

    Set User-Agent header

    Set User-Agent header

    Definition Classes
    Message
  100. final def version: Version

    Get the HTTP version

    Get the HTTP version

    Definition Classes
    ProxyMessage
  101. final def version(version: Version): Proxy.this.type

    Set the HTTP version

    Set the HTTP version

    * @see version_=(Version) for Scala users

    Definition Classes
    Message
  102. final def version_=(version: Version): Unit

    Set the HTTP version

    Set the HTTP version

    Definition Classes
    ProxyMessage
    See also

    version(Version) for Java users

  103. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  104. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  105. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  106. def withInputStream[T](f: (InputStream) => T): T

    Use content as InputStream.

    Use content as InputStream. The underlying channel buffer's reader index is advanced. (Scala interface. Java users can use getInputStream().)

    Definition Classes
    Message
  107. final def withOutputStream[T](f: (OutputStream) => T): T

    Append content via an OutputStream.

    Append content via an OutputStream.

    An IllegalStateException is thrown if this message is chunked.

    Definition Classes
    Message
    Annotations
    @throws(classOf[IllegalStateException])
  108. final def withReader[T](f: (Reader) => T): T

    Use content as Reader.

    Use content as Reader. (Scala interface. Java users can use getReader().)

    Definition Classes
    Message
  109. final def withWriter[T](f: (Writer) => T): T

    Append content via a Writer.

    Append content via a Writer.

    An IllegalStateException is thrown if this message is chunked.

    Definition Classes
    Message
    Annotations
    @throws(classOf[IllegalStateException])
  110. final def write(bytes: Array[Byte]): Unit

    Append bytes to content.

    Append bytes to content.

    This method makes a defensive copy of the provided byte array. This can be avoided by wrapping the byte array via Buf.ByteArray.Owned and using the write(Buf) method.

    An IllegalStateException is thrown if this message is chunked.

    Definition Classes
    Message
    Annotations
    @throws(classOf[IllegalStateException])
  111. final def write(buf: Buf): Unit

    Append a Buf to content.

    Append a Buf to content.

    An IllegalStateException is thrown if this message is chunked.

    Definition Classes
    Message
    Annotations
    @throws(classOf[IllegalStateException])
  112. final def write(string: String): Unit

    Append string to content.

    Append string to content.

    An IllegalStateException is thrown if this message is chunked.

    Definition Classes
    Message
    Annotations
    @throws(classOf[IllegalStateException])
  113. final lazy val writer: Writer[Buf]

    A write-only handle to the stream of Buf, representing the message body.

    A write-only handle to the stream of Buf, representing the message body. Only chunked messages (isChunked == true) use this stream as their payload, fully-buffered messages (isChunked == false) use content instead.

    Prefer this API over chunkWriter when application doesn't need to send trailing headers (trailers).

    Definition Classes
    Message
    See also

    Writer

  114. def wwwAuthenticate: Option[String]

    Get WWW-Authenticate header

    Get WWW-Authenticate header

    Definition Classes
    Message
  115. def wwwAuthenticate_=(value: String): Unit

    Set WWW-Authenticate header

    Set WWW-Authenticate header

    Definition Classes
    Message
  116. def xForwardedFor: Option[String]

    Get X-Forwarded-For header

    Get X-Forwarded-For header

    Definition Classes
    Message
  117. def xForwardedFor_=(value: String): Unit

    Set X-Forwarded-For header

    Set X-Forwarded-For header

    Definition Classes
    Message

Inherited from Response

Inherited from Message

Inherited from AnyRef

Inherited from Any

Ungrouped