///
///
///
///
///
/**
* @description 基础消息对象
*
* Message 对象兼容于 mq 各个模块,可用于构建自定义消息处理系统,创建方法:
* ```JavaScript
* var mq = require("mq");
* var m = new mq.Message();
* ```
*
*/
declare class Class_Message extends Class_object {
/**
* @description 消息对象构造函数
*/
constructor();
/**
* @description 消息的基本内容
*/
value: string;
/**
* @description 消息的基本参数
*/
readonly params: any[];
/**
* @description 消息类型
*/
type: number;
/**
* @description 查询消息的数据,此属性会根据 content-type 返回不同数据,为 text 时,返回文本,为 json 时返回 json,其它时候返回二进制
*/
readonly data: any;
/**
* @description 包含消息数据部分的流对象
*/
body: Class_SeekableStream;
/**
* @description 从流内读取指定大小的数据,此方法为 body 相应方法的别名
* @param bytes 指定要读取的数据量,缺省为读取随机大小的数据块,读出的数据尺寸取决于设备
* @return 返回从流内读取的数据,若无数据可读,或者连接中断,则返回 null
*
*/
read(bytes?: number): Class_Buffer;
read(bytes?: number, callback?: (err: Error | undefined | null, retVal: Class_Buffer)=>any): void;
/**
* @description 从流内读取剩余的全部数据,此方法为 body 相应方法的别名
* @return 返回从流内读取的数据,若无数据可读,或者连接中断,则返回 null
*
*/
readAll(): Class_Buffer;
readAll(callback: (err: Error | undefined | null, retVal: Class_Buffer)=>any): void;
/**
* @description 写入给定的数据,此方法为 body 相应方法的别名
* @param data 给定要写入的数据
*
*/
write(data: Class_Buffer): void;
write(data: Class_Buffer, callback: (err: Error | undefined | null)=>any): void;
/**
* @description 以 JSON 编码写入给定的数据
* @param data 给定要写入的数据
* @return 此方法不会返回数据
*
*/
json(data: any): any;
/**
* @description 以 JSON 编码解析消息中的数据
* @return 返回解析的结果
*
*/
json(): any;
/**
* @description 以 msgpack 编码写入给定的数据
* @param data 给定要写入的数据
* @return 此方法不会返回数据
*
*/
pack(data: any): any;
/**
* @description 以 msgpack 编码解析消息中的数据
* @return 返回解析的结果
*
*/
pack(): any;
/**
* @description 消息数据部分的长度
*/
readonly length: number;
/**
* @description 设置当前消息处理结束,Chain 处理器不再继续后面的事务
*/
end(): void;
/**
* @description 查询当前消息是否结束
* @return 结束则返回 true
*
*/
isEnded(): boolean;
/**
* @description 清除消息的内容
*/
clear(): void;
/**
* @description 发送格式化消息到给定的流对象
* @param stm 指定接收格式化消息的流对象
*
*/
sendTo(stm: Class_Stream): void;
sendTo(stm: Class_Stream, callback: (err: Error | undefined | null)=>any): void;
/**
* @description 从给定的缓存流对象中读取格式化消息,并解析填充对象
* @param stm 指定读取格式化消息的流对象
*
*/
readFrom(stm: Class_Stream): void;
readFrom(stm: Class_Stream, callback: (err: Error | undefined | null)=>any): void;
/**
* @description 查询消息 readFrom 时的流对象
*/
readonly stream: Class_Stream;
/**
* @description 查询和设置消息处理的最后错误
*/
lastError: string;
}