2009-10-01 96 views
4

道歉,如果我失去了一些真正明显的东西,但我想了解如何编写自定义front endback endPantheios。 (我用它从C++,不C.)自定义前端和后端与Pantheios日志

我可以遵循的初始化函数的目的(我认为),但我不确定其他人:pantheios_be_logEntrypantheios_fe_getProcessIdentitypantheios_fe_isSeverityLogged

特别是,我对前端和后端之间的关系感到困惑。我如何让他们相互沟通?

回答

3

不知道我确切地理解你不明白,但也许这是问题的一部分。 ;-)所以我会尽我所能,让我知道它是否在附近。

pantheios_fe_getProcessIdentity()被调用一次,当Pantheios正在初始化。您需要返回一个标识进程的字符串。 (实际上,它标识该链接单元;在Imperfect C++定义的术语,通过Pantheios'创建者,马修威尔逊,这意味着链路名称的范围,书面即一个可执行程序模块或动态库模块)

pantheios_fe_isSeverityLogged()在应用程序代码中执行日志语句时调用。它返回非零值,表示语句应该被处理并发送到输出(通过后端)。如果它返回零,则不进行处理。 FWIU,这是Pantheios is so fast的主要原因。

pantheios_be_logEntry()被称为每当日志语句是输出发送,当pantheios_fe_isSeverityLogged()返回非零和Pantheios core已处理的声明(形成所有的参数在你的代码到一个单一的字符串)。它将语句字符串发送到应该去的地方。例如,be.fprintf后端使用fprint()将其打印到控制台。

一旦你了解了这些方面,问题的第二部分就是它变得有趣的地方。当你的前端和后端被初始化时,它们会创建Pantheios核心为他们保留的一些上下文(例如C++对象),并在每次调用前端/后端API函数时将其返回。当你自定义时,你可以让他们通过他们都知道的共享上下文进行通信,但Pantheios核心不知道(而且不应该)知道的,除了有一个不透明的句柄(void*)。

HTH

+0

谢谢。这让我感到很舒服。 – JamieH 2009-10-02 23:06:21