org.redkale.net

## 类 Request<C extends Context>

- java.lang.Object
- - org.redkale.net.Request<C>

- 类型参数:
    `C` - Context子类型
  直接已知子类:
    HttpRequest, SncpRequest

      public abstract class Request<C extends Context>
      extends java.lang.Object

  详情见: https://redkale.org

- - ### 字段概要

    字段
    限定符和类型 | 字段和说明
    --- | ---
    `protected java.util.Map<java.lang.String,java.lang.Object>` | `attributes`
    `protected BsonConvert` | `bsonConvert`
    `protected AsyncConnection` | `channel`
    `protected C` | `context`
    `protected long` | `createtime`
    `protected JsonConvert` | `jsonConvert`
    `protected boolean` | `keepAlive`

  - ### 构造器概要

    构造器
    限定符 | 构造器和说明
    --- | ---
    `protected` | `Request(C context)`

  - ### 方法概要

    所有方法 实例方法 抽象方法 具体方法
    限定符和类型 | 方法和说明
    --- | ---
    `<T> T` | `getAttribute(java.lang.String name)`
    `java.util.Map<java.lang.String,java.lang.Object>` | `getAttributes()`
    `C` | `getContext()`
    `long` | `getCreatetime()`
    `protected java.util.Map<java.lang.String,java.lang.Object>` | `getProperties()`
    `protected <T> T` | `getProperty(java.lang.String name)`
    `protected abstract void` | `prepare()`
    `protected abstract int` | `readBody(java.nio.ByteBuffer buffer)` 读取buffer，并返回读取的有效数据长度
    `protected abstract int` | `readHeader(java.nio.ByteBuffer buffer)` 返回值：Integer.MIN_VALUE: 帧数据； -1：数据不合法； 0：解析完毕； >0: 需再读取的字节数。
    `protected void` | `recycle()`
    `<T> T` | `removeAttribute(java.lang.String name)`
    `protected <T> T` | `removeProperty(java.lang.String name)`
    `<T> T` | `setAttribute(java.lang.String name, T value)`
    `protected <T> T` | `setProperty(java.lang.String name, T value)`

    - ### 从类继承的方法 java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### 字段详细资料

    - #### context

          protected final C extends Context context

    - #### bsonConvert

          protected final BsonConvert bsonConvert

    - #### jsonConvert

          protected final JsonConvert jsonConvert

    - #### createtime

          protected long createtime

    - #### keepAlive

          protected boolean keepAlive

    - #### channel

          protected AsyncConnection channel

    - #### attributes

          protected final java.util.Map<java.lang.String,java.lang.Object> attributes

  - ### 构造器详细资料

    - #### Request

          protected Request(C context)

  - ### 方法详细资料

    - #### readHeader

          protected abstract int readHeader(java.nio.ByteBuffer buffer)

      返回值：Integer.MIN_VALUE: 帧数据； -1：数据不合法； 0：解析完毕； >0: 需再读取的字节数。
      参数:
        `buffer` - ByteBuffer对象
      返回:
        缺少的字节数

    - #### readBody

          protected abstract int readBody(java.nio.ByteBuffer buffer)

      读取buffer，并返回读取的有效数据长度
      参数:
        `buffer` - ByteBuffer对象
      返回:
        有效数据长度

    - #### prepare

          protected abstract void prepare()

    - #### recycle

          protected void recycle()

    - #### setProperty

          protected <T> T setProperty(java.lang.String name,
                                      T value)

    - #### getProperty

          protected <T> T getProperty(java.lang.String name)

    - #### removeProperty

          protected <T> T removeProperty(java.lang.String name)

    - #### getProperties

          protected java.util.Map<java.lang.String,java.lang.Object> getProperties()

    - #### setAttribute

          public <T> T setAttribute(java.lang.String name,
                                    T value)

    - #### getAttribute

          public <T> T getAttribute(java.lang.String name)

    - #### removeAttribute

          public <T> T removeAttribute(java.lang.String name)

    - #### getAttributes

          public java.util.Map<java.lang.String,java.lang.Object> getAttributes()

    - #### getContext

          public C getContext()

    - #### getCreatetime

          public long getCreatetime()