あなたが理解していないことを正確に理解しているのかわかりませんが、それが問題の一部かもしれません。;-)それで、私は最善を尽くします、そして、あなたはそれが近いかどうか私に知らせます。
pantheios_fe_getProcessIdentity()
Pantheiosが初期化されているときに一度呼び出されます。プロセスを識別する文字列を返す必要があります。(実際には、リンクユニットを識別します。ImperfectC ++で定義された用語で、Pantheiosの作成者であるMatthew Wilsonによって書かれました。これは、リンク名の範囲、つまり実行可能プログラムモジュールまたはダイナミックライブラリモジュールを意味します。)
pantheios_fe_isSeverityLogged()
アプリケーションコードでログステートメントが実行されるたびに呼び出されます。ゼロ以外を返し、ステートメントを処理して出力に送信する必要があることを示します(バックエンドを介して)。ゼロを返す場合、処理は行われません。FWIU、これがPantheiosがとても速い主な理由です。
pantheios_be_logEntry()
ログステートメントが出力用に送信されるとき、がpantheios_fe_isSeverityLogged()
ゼロ以外を返し、Pantheiosコアがステートメントを処理したとき(コード内のすべての引数を単一の文字列に形成するとき)に呼び出されます。ステートメント文字列をどこにでも送信します。たとえば、be.fprintfバックエンドは、を使用してコンソールに出力しfprint()
ます。
これらの側面を理解したら、質問の2番目の部分はそれがどこで面白くなるかです。フロントエンドとバックエンドが初期化されると、Pantheiosコアが保持するコンテキスト(C ++オブジェクトなど)が作成され、フロント/バックエンドAPI関数を呼び出すたびに返されます。両方をカスタマイズする場合、両方が知っている共有コンテキストを介して通信させることができますが、Pantheiosコアは、不透明なハンドル(void*
)を使用する以外に、知らない(そして知らないはずです)。
HTH