⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 nlappender.h

📁 一些unix下的c/c++的util包
💻 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 + -