# GR-PEACH aligned_bufferモジュール (aligned_buffer)

`aligned_buffer` モジュールは、アライメントを指定したバッファを生成します。

IoT.js のBuffer型との互換性はないため、Buffer型として使用する場合は`buf.toBuffer()`にて、変換する必要があります。 https://github.com/pando-project/iotjs/blob/acae9c8b2d40e7598b8d39b630b79113ce880a7e/docs/api/IoT.js-API-Buffer.md

## new AlignedBuffer(length, alignment)

- `length` {number} バッファの長さ
- `alignment` {number} バッファのアライメント。`2の累乗`の値を指定してください。
- 戻り値: {AlignedBuffer} 生成したバッファ

`length`の長さのバッファを新しく生成します。バッファの内容は`0`で初期化されます。 バッファは`alignment`バイト境界のメモリアドレスに配置されます。

## new AlignedBuffer(buffer, alignment)

- `buffer` {Buffer|AlignedBuffer} コピー元のバッファ
- `alignment` {number} バッファのアライメント。`2の累乗`の値を指定してください。
- 戻り値: {AlignedBuffer} 生成したバッファ

既存のバッファのコピーを生成します。２つのバッファ間でデータは共有されません。 バッファは`alignment`バイト境界のメモリアドレスに配置されます。 アライメント境界が異なる`buffer`のコピーにも使用できます。

## buf.toBuffer([start[, end]])

- `start` {number} 先頭インデックス。(省略時: `0`)
- `end` {number} 終端インデックス。(省略時: `buf.length`)
- 戻り値: {Buffer} 生成したバッファ

既存のバッファからBuffer型のオブジェクトを生成します。 生成されるバッファは`end - start`の長さを持ち、`start ～ (end-1)`の範囲のデータがコピーされます。 ２つのバッファ間でデータは共有されません。

#### 使用例

    var AlignedBuffer = require('aligned_buffer').AlignedBuffer;
    var buf1 = new AlignedBuffer(128, 32);
    var buf2 = buf1.toBuffer();
    console.log(buf2 instanceof Buffer); // true

## buf.alignment

- {number}
- バッファのアライメントを示す、読み取り専用プロパティです。

## buf.length

- {number}
- バッファの長さを示す、読み取り専用プロパティです。

#### 使用例

    var AlignedBuffer = require('aligned_buffer').AlignedBuffer;
    var buf = new AlignedBuffer(128, 32);
    console.log(buf.alignment); // 32
    console.log(buf.length); // 128