Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. Project price only 1 $
You can buy this project and download/modify it how often you want.
/**
* Generated by Scrooge
* version: 20.4.1
* rev: 74d6bed636c90dc4b67e342ecd80033bad43e94d
* built at: 20200425-214521
*/
package com.twitter.finagle.thrift.thriftscala
import com.twitter.io.Buf
import com.twitter.scrooge.{
InvalidFieldsException,
LazyTProtocol,
StructBuilder,
StructBuilderFactory,
TFieldBlob,
ThriftStruct,
ThriftStructCodec3,
ThriftStructField,
ThriftStructFieldInfo,
ThriftStructMetaData,
ValidatingThriftStruct,
ValidatingThriftStructCodec3
}
import org.apache.thrift.protocol._
import org.apache.thrift.transport.TMemoryBuffer
import scala.collection.immutable.{Map => immutable$Map}
import scala.collection.mutable.Builder
import scala.reflect.{ClassTag, classTag}
/**
* These are connection-level options negotiated during protocol
* upgrade.
*/
object ConnectionOptions extends ValidatingThriftStructCodec3[ConnectionOptions] with StructBuilderFactory[ConnectionOptions] {
val NoPassthroughFields: immutable$Map[Short, TFieldBlob] = immutable$Map.empty[Short, TFieldBlob]
val Struct: TStruct = new TStruct("ConnectionOptions")
/**
* Field information in declaration order.
*/
val fieldInfos: scala.List[ThriftStructFieldInfo] = Nil
val structAnnotations: immutable$Map[String, String] =
immutable$Map.empty[String, String]
private val fieldTypes: IndexedSeq[ClassTag[_]] = IndexedSeq[ClassTag[_]](
)
private[this] val structFields: Seq[ThriftStructField[ConnectionOptions]] = Seq[ThriftStructField[ConnectionOptions]](
)
override lazy val metaData: ThriftStructMetaData[ConnectionOptions] =
new ThriftStructMetaData(this, structFields, fieldInfos, Nil, structAnnotations)
/**
* Checks that all required fields are non-null.
*/
def validate(_item: ConnectionOptions): Unit = {
}
/**
* Checks that the struct is a valid as a new instance. If there are any missing required or
* construction required fields, return a non-empty list.
*/
def validateNewInstance(item: ConnectionOptions): scala.Seq[com.twitter.scrooge.validation.Issue] = {
val buf = scala.collection.mutable.ListBuffer.empty[com.twitter.scrooge.validation.Issue]
buf.toList
}
def withoutPassthroughFields(original: ConnectionOptions): ConnectionOptions =
new Immutable(
)
def newBuilder(): StructBuilder[ConnectionOptions] = new ConnectionOptionsStructBuilder(_root_.scala.None, fieldTypes)
override def encode(_item: ConnectionOptions, _oproto: TProtocol): Unit = {
_item.write(_oproto)
}
private[this] def lazyDecode(_iprot: LazyTProtocol): ConnectionOptions = {
var _passthroughFields: Builder[(Short, TFieldBlob), immutable$Map[Short, TFieldBlob]] = null
var _done = false
val _start_offset = _iprot.offset
_iprot.readStructBegin()
do {
val _field = _iprot.readFieldBegin()
val _fieldType = _field.`type`
if (_fieldType == TType.STOP) {
_done = true
} else {
_field.id match {
case _ =>
if (_passthroughFields eq null)
_passthroughFields = immutable$Map.newBuilder[Short, TFieldBlob]
_passthroughFields += _root_.scala.Tuple2(_field.id, TFieldBlob.read(_field, _iprot))
}
_iprot.readFieldEnd()
}
} while (!_done)
_iprot.readStructEnd()
new LazyImmutable(
_iprot,
_iprot.buffer,
_start_offset,
_iprot.offset,
if (_passthroughFields eq null)
NoPassthroughFields
else
_passthroughFields.result()
)
}
override def decode(_iprot: TProtocol): ConnectionOptions = {
if (_iprot.isInstanceOf[LazyTProtocol]) {
lazyDecode(_iprot.asInstanceOf[LazyTProtocol])
} else {
eagerDecode(_iprot)
}
}
private[thriftscala] def eagerDecode(_iprot: TProtocol): ConnectionOptions = {
var _passthroughFields: Builder[(Short, TFieldBlob), immutable$Map[Short, TFieldBlob]] = null
var _done = false
_iprot.readStructBegin()
do {
val _field = _iprot.readFieldBegin()
val _fieldType = _field.`type`
if (_fieldType == TType.STOP) {
_done = true
} else {
if (_passthroughFields eq null)
_passthroughFields = immutable$Map.newBuilder[Short, TFieldBlob]
_passthroughFields += _root_.scala.Tuple2(_field.id, TFieldBlob.read(_field, _iprot))
_iprot.readFieldEnd()
}
} while (!_done)
_iprot.readStructEnd()
new Immutable(
if (_passthroughFields eq null)
NoPassthroughFields
else
_passthroughFields.result()
)
}
def apply(
): ConnectionOptions =
new Immutable(
)
def unapply(_item: ConnectionOptions): Boolean = true
object Immutable extends ThriftStructCodec3[ConnectionOptions] {
override def encode(_item: ConnectionOptions, _oproto: TProtocol): Unit = { _item.write(_oproto) }
override def decode(_iprot: TProtocol): ConnectionOptions = ConnectionOptions.decode(_iprot)
override lazy val metaData: ThriftStructMetaData[ConnectionOptions] = ConnectionOptions.metaData
}
/**
* The default read-only implementation of ConnectionOptions. You typically should not need to
* directly reference this class; instead, use the ConnectionOptions.apply method to construct
* new instances.
*/
class Immutable(
override val _passthroughFields: immutable$Map[Short, TFieldBlob])
extends ConnectionOptions {
def this(
) = this(
immutable$Map.empty[Short, TFieldBlob]
)
}
/**
* This is another Immutable, this however keeps strings as lazy values that are lazily decoded from the backing
* array byte on read.
*/
private[this] class LazyImmutable(
_proto: LazyTProtocol,
_buf: Array[Byte],
_start_offset: Int,
_end_offset: Int,
override val _passthroughFields: immutable$Map[Short, TFieldBlob])
extends ConnectionOptions {
override def write(_oprot: TProtocol): Unit = {
if (_oprot.isInstanceOf[LazyTProtocol]) {
_oprot.asInstanceOf[LazyTProtocol].writeRaw(_buf, _start_offset, _end_offset - _start_offset)
} else {
super.write(_oprot)
}
}
/**
* Override the super hash code to make it a lazy val rather than def.
*
* Calculating the hash code can be expensive, caching it where possible
* can provide significant performance wins. (Key in a hash map for instance)
* Usually not safe since the normal constructor will accept a mutable map or
* set as an arg
* Here however we control how the class is generated from serialized data.
* With the class private and the contract that we throw away our mutable references
* having the hash code lazy here is safe.
*/
override lazy val hashCode: Int = super.hashCode
}
/**
* This Proxy trait allows you to extend the ConnectionOptions trait with additional state or
* behavior and implement the read-only methods from ConnectionOptions using an underlying
* instance.
*/
trait Proxy extends ConnectionOptions {
protected def _underlying_ConnectionOptions: ConnectionOptions
override def _passthroughFields: immutable$Map[Short, TFieldBlob] = _underlying_ConnectionOptions._passthroughFields
}
}
/**
* Prefer the companion object's [[com.twitter.finagle.thrift.thriftscala.ConnectionOptions.apply]]
* for construction if you don't need to specify passthrough fields.
*/
trait ConnectionOptions
extends ThriftStruct
with _root_.scala.Product
with ValidatingThriftStruct[ConnectionOptions]
with java.io.Serializable
{
import ConnectionOptions._
def _passthroughFields: immutable$Map[Short, TFieldBlob] = immutable$Map.empty
/**
* Gets a field value encoded as a binary blob using TCompactProtocol. If the specified field
* is present in the passthrough map, that value is returned. Otherwise, if the specified field
* is known and not optional and set to None, then the field is serialized and returned.
*/
def getFieldBlob(_fieldId: Short): _root_.scala.Option[TFieldBlob] = {
val passedthroughValue = _passthroughFields.get(_fieldId)
if (passedthroughValue.isDefined) {
passedthroughValue
} else {
_root_.scala.None
}
}
/**
* Collects TCompactProtocol-encoded field values according to `getFieldBlob` into a map.
*/
def getFieldBlobs(ids: TraversableOnce[Short]): immutable$Map[Short, TFieldBlob] =
(ids.flatMap { id => getFieldBlob(id).map { fieldBlob => (id, fieldBlob) } }).toMap
/**
* Sets a field using a TCompactProtocol-encoded binary blob. If the field is a known
* field, the blob is decoded and the field is set to the decoded value. If the field
* is unknown and passthrough fields are enabled, then the blob will be stored in
* _passthroughFields.
*/
def setField(_blob: TFieldBlob): ConnectionOptions = {
var _passthroughFields = this._passthroughFields
_blob.id match {
case _ => _passthroughFields += _root_.scala.Tuple2(_blob.id, _blob)
}
new Immutable(
_passthroughFields
)
}
/**
* If the specified field is optional, it is set to None. Otherwise, if the field is
* known, it is reverted to its default value; if the field is unknown, it is removed
* from the passthroughFields map, if present.
*/
def unsetField(_fieldId: Short): ConnectionOptions = {
new Immutable(
_passthroughFields - _fieldId
)
}
/**
* If the specified field is optional, it is set to None. Otherwise, if the field is
* known, it is reverted to its default value; if the field is unknown, it is removed
* from the passthroughFields map, if present.
*/
override def write(_oprot: TProtocol): Unit = {
ConnectionOptions.validate(this)
_oprot.writeStructBegin(Struct)
if (_passthroughFields.nonEmpty) {
_passthroughFields.values.foreach { _.write(_oprot) }
}
_oprot.writeFieldStop()
_oprot.writeStructEnd()
}
def copy(
_passthroughFields: immutable$Map[Short, TFieldBlob] = this._passthroughFields
): ConnectionOptions =
new Immutable(
_passthroughFields
)
override def canEqual(other: Any): Boolean = other.isInstanceOf[ConnectionOptions]
private[this] def _equals(other: ConnectionOptions): Boolean =
this.productArity == other.productArity &&
this.productIterator.sameElements(other.productIterator) &&
this._passthroughFields == other._passthroughFields
override def equals(other: Any): Boolean =
canEqual(other) && _equals(other.asInstanceOf[ConnectionOptions])
override def hashCode: Int = {
_root_.scala.runtime.ScalaRunTime._hashCode(this)
}
override def toString: String = _root_.scala.runtime.ScalaRunTime._toString(this)
override def productArity: Int = 0
override def productElement(n: Int): Any = throw new IndexOutOfBoundsException(_root_.java.lang.Integer.toString(n))
override def productPrefix: String = "ConnectionOptions"
def _codec: ValidatingThriftStructCodec3[ConnectionOptions] = ConnectionOptions
def newBuilder(): StructBuilder[ConnectionOptions] = new ConnectionOptionsStructBuilder(_root_.scala.Some(this), fieldTypes)
}
private[thriftscala] class ConnectionOptionsStructBuilder(instance: _root_.scala.Option[ConnectionOptions], fieldTypes: IndexedSeq[ClassTag[_]])
extends StructBuilder[ConnectionOptions](fieldTypes) {
def build(): ConnectionOptions = {
ConnectionOptions()
}
}