📄 nlappender.h
字号:
/**
* 附加器类定义
* @file NLAppender.h
* @date 14-Jul-2005
* @author 胡春雨
* @version 1.0.0: 初始版本
*/
#ifndef _NL_APPENDER_H
#define _NL_APPENDER_H
#include "nlkit/NLEvent.h"
#include "nlkit/NLLayout.h"
namespace nlkit
{
/**
* 错误处理句柄类
*/
class NLErrorHandler
{
public:
/**
* 虚拟析构函数
* @param 无
* @return 无
*/
virtual ~NLErrorHandler() {}
/**
* 错误处理
* @param err: 错误信息
* @return 无
*/
virtual void error(const std::string& err) = 0;
};
/**
* 默认的错误处理句柄类
*/
class NLDefaultErrorHandler : public NLErrorHandler
{
public:
/**
* 构造函数
* @param 无
* @return 无
*/
NLDefaultErrorHandler() {}
/**
* 错误处理
* @param err: 错误信息
* @return 无
*/
virtual void error(const std::string& err);
};
/**
* 附加器类
*/
class NLAppender
{
public:
/**
* 构造函数
* @param 无
* @return 无
*/
NLAppender();
/**
* 虚拟析构函数
* @param 无
* @return 无
*/
virtual ~NLAppender() {}
/**
* 析构实现
* @param 无
* @return 无
*/
void destructorImpl();
/**
* 关闭附加器
* @param 无
* @return 无
*/
virtual void close() = 0;
/**
* 写事件
* @param event: 事件
* @return 无
*/
void write(const NLEvent& event);
/**
* 设置错误处理句柄
* @param eh: 错误处理句柄智能指针
* @return 无
*/
virtual void setErrorHandler(std::auto_ptr<NLErrorHandler> eh);
/**
* 取错误处理句柄
* @param 无
* @return NLErrorHandler*: 错误处理句柄指针
*/
virtual NLErrorHandler* getErrorHandler();
/**
* 设置一个布局器.
* @param layout 布局器的智能指针
* @return 无
*/
virtual void setLayout(std::auto_ptr<NLLayout> layout) ;
protected:
/**
* 附加器处理事件
* @param event: 事件
* @return 无
*/
virtual void append(const NLEvent& event) = 0;
std::auto_ptr<NLErrorHandler> m_errorHandler; /**< 错误处理句柄智能指针 */
std::auto_ptr<NLLayout> m_layout; /**< 布局智能指针 */
bool m_closed; /**< 是否关闭 */
};
}
#endif // !_NL_APPENDER_H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -