英語版
このページの英語版を見る

dmd.common.outbuffer

テキストまたはバイナリデータを書き込むことができる拡張可能なバッファ。
Authors:

カバレッジ https://codecov.io/gh/dlang/dmd/src/master/src/dmd/root/outbuffer.d

struct OutBuffer;
OutBuffer型付けされていないデータの書き込み専用の出力ストリームである。 連続した配列またはメモリマップされたファイルによってバックアップされている。
bool doindent;
インデントを行うかどうか
bool spaces;
4スペースまたはタブによるインデントの有無、
int level;
現在のインデントレベル
nothrow @safe this(size_t initialSize);
指定サイズの構造体を作成する。
nothrow @trusted this(const(char)* filename);
ファイル名から構成する。ファイルをメモリにマッピングし(必要に応じて新規作成 し)、ファイルの先頭から書き込みを開始する。
Parameters:
const(char)* filename メモリにマッピングするファイルのゼロ終端文字列の名前
pure nothrow @trusted void dtor();
関連するリソースを解放する。
nothrow @system ubyte* buf();
dmd.backend.outbuf.Outbuffer からの容易な移植用
nothrow @system ubyte** bufptr();
dmd.backend.outbuf.Outbuffer からの容易な移植用
pure nothrow @nogc @trusted char* extractData();
割り当てられたデータの所有権を呼び出し側に移す。
Returns:
割り当てられたデータへのポインタ
pure nothrow void destroy();
this に関連するすべてのリソースを解放し、空のメモリバッファとしてリセットする。 config変数notlineheaddoindent などは 変更されない。
pure nothrow @trusted void reserve(size_t nbytes);
nbytes追加のメモリ(またはファイルスペース)を事前に確保する。 結果として得られる容量は、少なくとも以前の長さに加えて nbytes
Parameters:
size_t nbytes 予約する追加バイト数
pure nothrow @nogc @safe void setsize(size_t size);
データのサイズを縮小する size
Parameters:
size_t size 新しいデータサイズは、<=.length
nothrow void write16n(int v);
16ビット値を書き込む。予備のチェックなし。
nothrow void write16(int v);
16ビット値を書き込む。
nothrow @trusted void write32(int v);
32ビットのintを書き込む。
nothrow @trusted void write64(long v);
64ビットのintを書き込む。
pure nothrow @system void writestring(const(char)* s);

pure nothrow @safe void writestring(scope const(char)[] s);

pure nothrow @safe void writestring(scope string s);
バッファはゼロ終端されない
pure nothrow @safe void writestringln(const(char)[] s);
バッファはゼロ終端されず、改行文字が続く
pure nothrow @system void writeStringz(const(char)* s);

pure nothrow @safe void writeStringz(const(char)[] s);

pure nothrow @safe void writeStringz(string s);
C文字列とヌルバイトを書き込む
pure nothrow @safe void writenl();
末尾のタブまたはスペースを削除し、改行を書き込む
nothrow @safe void writeByten(int b);
8ビットバイトを書き込む。予備チェックなし。
pure nothrow @safe char[] allocate(size_t nbytes);
スペースを割り当てるが、初期化はしない。
Parameters:
size_t nbytes 割り当てる量
Returns: 割り当てられたスペースのスライスを埋める
割り当てられたスペースをスライスし、そこにデータを書き込む
pure nothrow @safe void print(ulong u);
変換 u文字列に変換し、バッファに追加する。
Parameters:
ulong u 添え字の値を挿入する
pure nothrow @system size_t bracket(size_t i, const(char)* left, size_t j, const(char)* right);
左をi、右をjに挿入する。 右のすぐ次のインデックスを返す。
pure nothrow @system size_t insert(size_t offset, const(void)* p, size_t nbytes);
Returns:
オフセット + nbytes
const pure nothrow @nogc @safe const(char)[] opSlice();
Returns: バッファの内容の所有権を持たないconstスライス
バッファの内容の所有権を持たない定数スライス
pure nothrow char[] extractSlice(bool nullTerminate = false);
データをスライスとして取り出し、所有権を取得する。
true が引数として渡された場合、この関数はdmd.utils.toDString(thisbuffer.extractChars()) と同様に動作する。
Parameters: xml-ph-0000@deepl.internal が渡された場合、データはxml-ph-0001@deepl.internalで終了する。これは、C関数を呼び出したり、結果を保存したりする際に
bool nullTerminate true が渡された場合、データはnull で終了する。 これは、C関数を呼び出したり、Strings に結果を保存したりする際に役立つ。デフォルトはfalse
pure nothrow @safe void writeHexString(scope const(ubyte)[] data, bool upperCase);
配列を16進数文字列として書き出す
Parameters:
const(ubyte)[] data バイトを書き込む
bool upperCase 16進数文字を大文字にするかどうか A-F
nothrow @system bool moveToFile(const char* filename);
this の内容を破壊的に保存する filename。 バッファと同一の内容のファイルがすでに存在する場合は、 コピーは実行されない。これは、SSDドライブでは読み込みが書き込みよりもはるかに高速であることが多く、 同一のファイルが ビルドプロセス中に書き込まれる可能性が高い
Parameters:
char* filename コンテンツを受け取るファイルの名前
Returns:
true 操作が成功した場合に