/** * プロトコルバッファ関連の機能を提供する。 * * {@link ProtoParser} クラスによりプロトコルバッファのデータを読み込 * むことができる。 * * @see {@link https://developers.google.com/protocol-buffers * Protocol Buffers} * * @module */ /** * フィールド番号の型 * * フィールドを識別するための整数値 (1 〜 2^29 - 1) を表現する型である。 * * @see {@link https://developers.google.com/protocol-buffers/docs/proto#assigning_field_numbers * Assigning Field Numbers} */ export type FieldNumber = number; /** * プロトコルバッファの読み込みを補助する。 * * {@link constructor} に与えたプロトコルバッファ形式のデータの読み込 * みを補助する。 * * 一般的なプロトコルバッファのライブラリとは違い、.proto スキーマファ * イルを使用しない。 * * ## 基本的な使い方 * * 基本的に {@link readKey} と `read*Value()` または {@link skipValue} * の呼び出しを繰り返してメッセージを解析する。 * * ただし現行メセージの終端では {@link readKey} を呼び出すことはできな * いので、現行メッセージに次のフィールドがない可能性があるとき、 * {@link isEndOfMessage} を呼び出して、現在の位置がメッセージの終端か * どうかを確かめる必要がある。 * * {@link readKey} でフィールド番号を取得した後、そのフィールドの値を * 取得する場合、そのフィールドの型に合った `read*Value()` を呼び出さ * なければならない。 * * ただし `packed repeated` フィールドの値を取得するときは {@link * readPackedRepeatedValue} を呼び出す。このとき引数には、要素型に対応 * する `read*Value` 関数を与える。 * * 埋め込みメッセージ (embedded message) を読み込むときは * `read*Value()` の代わりに {@link enterEmbeddedMessage} を呼び出す。 * そうすると現行メッセージがその埋め込みメッセージに移行する。 * * その後は通常の方法でフィールドのキーと値を読み込む。 * * 埋め込みメッセージ上で {@link leaveEmbeddedMessage} を呼び出すと親 * メッセージに戻り、埋め込みメッセージの直後の位置から読み込めるよう * になる。 * * ## 64 ビット整数の制限 * * 絶対値の大きい 64 ビット整数は number で正確に表現できないため、以 * 下のメソッドが直接、または {@link readPackedRepeatedValue} を通して * 返す値は誤差を生じる可能性がある。 * * - {@link readInt64Value} * - {@link readUint64Value} * - {@link readSint64Value} * - {@link readFixed64Value} * - {@link readSfixed64Value} * * 具体的には、`Number.MIN_SAFE_INTEGER` から * `Number.MAX_SAFE_INTEGER` の間にない値は誤差を生じ、整数にならない * 可能性もある。 */ export declare class ProtoParser { /** * インスタンスを初期化 * * `buffer` に含まれるプロトコルバッファデータを解析するためのイン * スタンスを生成する。 * * `byteOffset` を省略したときは 0 として解釈され、`length` を省略 * したときは `byteOffset` から `buffer` の最後までのバイト数と解 * 釈される。 * * @param buffer プロトコルバッファ形式のバイト列 * @param byteOffset データの先頭の位置 (バイト単位) * @param length データのサイズ (バイト単位) * * @remarks 読み込み処理中に `buffer` の内容が変更されないことを想 * 定している。 */ constructor(buffer: ArrayBuffer, byteOffset?: number, length?: number); /** * 現行メッセージの終端に達しているか? * * このメソッドはいつでも呼び出すことができ、`this` の状態を変化さ * せることはない。 * * @returns メッセージの終端のとき `true`, それ以外のとき `false` * * @see {@link enterEmbeddedMessage}, * {@link leaveEmbeddedMessage} * * @category Message */ isEndOfMessage(): boolean; /** * フィールドのキーを読み込む。 * * フィールドのキーを読み込み、そのフィールドの値を読み込める、 * または読み飛ばせる状態にする。 * * @returns フィールド番号 * * @category */ readKey(): FieldNumber; /** * フィールドの値を読み飛ばす。 * * @category */ skipValue(): void; /** * 埋め込みメッセージ (embedded message) の読み込みを開始する。 * * 現行メッセージを次のフィールドの埋め込みメッセージに移行し、読 * み込み位置をその埋め込みメッセージの最初に移動する。 * * @see {@link leaveEmbeddedMessage}, * {@link isEndOfMessage} * * @category Message */ enterEmbeddedMessage(): void; /** * 埋め込みメッセージ (embedded message) の読み込みを終了する。 * * 現行メッセージを親メッセージに戻し、読み込み位置を元の埋め込み * メッセージの直後に移動する。 * * このメソッドは、埋め込みメッセージの中でいつでも呼び出すことが * できる。例えばフィールドのキーを読み込んだがフィールドの値は読 * み込んでいない状態や、メッセージの終端に達している状態でも呼び * 出すことができる。 * * @see {@link enterEmbeddedMessage}, * {@link isEndOfMessage} * * @category Message */ leaveEmbeddedMessage(): void; /** * `bool` 型のフィールド値を取得する。 * * @category Scalar Value */ readBoolValue(): boolean; /** * `enum` 型のフィールド値を取得する。 * * @category Scalar Value */ readEnumValue(): number; /** * `uint32` 型のフィールド値を取得する。 * * @category Scalar Value */ readUint32Value(): number; /** * `uint64` 型のフィールド値を取得する。 * * @category Scalar Value */ readUint64Value(): number; /** * `sint32` 型のフィールド値を取得する。 * * @category Scalar Value */ readSint32Value(): number; /** * `sint64` 型のフィールド値を取得する。 * * @category Scalar Value */ readSint64Value(): number; /** * `int32` 型のフィールド値を取得する。 * * @category Scalar Value */ readInt32Value(): number; /** * `int64` 型のフィールド値を取得する。 * * @category Scalar Value */ readInt64Value(): number; /** * `fixed32` 型のフィールド値を取得する。 * * @category Scalar Value */ readFixed32Value(): number; /** * `fixed64` 型のフィールド値を取得する。 * * @category Scalar Value */ readFixed64Value(): number; /** * `sfixed32` 型のフィールド値を取得する。 * * @category Scalar Value */ readSfixed32Value(): number; /** * `sfixed64` 型のフィールド値を取得する。 * * @category Scalar Value */ readSfixed64Value(): number; /** * `float` 型のフィールド値を取得する。 * * @category Scalar Value */ readFloatValue(): number; /** * `double` 型のフィールド値を取得する。 * * @category Scalar Value */ readDoubleValue(): number; /** * `string` 型のフィールド値を取得する。 * * @category Scalar Value */ readStringValue(): string; /** * `bytes` 型のフィールド値を取得する。 * * @category Scalar Value */ readBytesValue(): ArrayBuffer; /** * packed repeated 型のフィールド値を取得する。 * * `func` パラメータに与えた関数に対応する型 (スカラー数値型) の値 * の配列を取得する。 * * `func` には次の関数の何れか 1 つを指定することができる。 * * - {@link readBoolValue} * - {@link readEnumValue} * - {@link readUint32Value} * - {@link readUint64Value} * - {@link readSint32Value} * - {@link readSint64Value} * - {@link readInt32Value} * - {@link readInt64Value} * - {@link readFixed32Value} * - {@link readFixed64Value} * - {@link readSfixed32Value} * - {@link readSfixed64Value} * - {@link readFloatValue} * - {@link readDoubleValue} * * @typeParam T 取得する配列の要素の型 * * @param func ベースとなる取得関数 * * @returns スカラー数値の配列 * * @example * ```ts * a = parser.readPackedRepeatedValue( ProtoParser.prototype.readUint32value ); * ``` * * @see {@link https://developers.google.com/protocol-buffers/docs/encoding#packed * Packed Repeated Fields} * * @category Packed Repeated Value */ readPackedRepeatedValue(func: (this: ProtoParser) => T): Array; /** * 符号なし Variant 値を読み込む。 * * 0 から `Number.MAX_SAFE_INTEGER` の範囲は厳密な値を返すが、それ * 以外は近似値を返す可能性がある。 * * @see {@link https://developers.google.com/protocol-buffers/docs/encoding#varints * Base 128 Varints} */ private read_uint_variant; /** * 符号付き Variant 値を読み込む (ZigZag エンコーディング)。 * * 絶対値が `Number.MAX_SAFE_INTEGER` より大きいときは、近似値を返 * す可能性がある。 * * @see {@link https://developers.google.com/protocol-buffers/docs/encoding#signed_integers * Signed Integers} */ private read_sint_variant_zigzag; /** * 符号なし Variant 値を number の対として読み込む。 * * 戻り値は、符号なし整数のペアで、第 0 要素が下位 35 ビット、第 1 * 要素が上位 29 ビットを符号なし整数に変換した値である。 */ private read_uint_variant_pair; private readonly _byte_array; private readonly _data_view; private _wire_type; private _cursor; private _end_of_msg; private readonly _eom_stack; } //# sourceMappingURL=protobuf.d.ts.map