yate学习--yateclass.h--class YATE_API DebugEnabler

请声明转载出:

DebugEnabler,这个类用于保存和修改调试级别,也就是日志的打印级别:

/**
 * Holds a local debugging level that can be modified separately from the
 *  global debugging
 * 保留本地的调试级别,这个级别能被个别的全局调试修改
 * @short A holder for a debug level
 * @short  保存一个调试级别
 */
class YATE_API DebugEnabler
{
public:
    /**
     * Constructor
     * 构造函数
     * @param level The initial local debug level
     * @参数level,本地调试级别初始值
     * @param enabled Enable debugging on this object
     * @参数enabled,在该对象上启动调试
     */
    inline DebugEnabler(int level = P2PEngine::debugLevel(), bool enabled = true)
	: m_level(DebugFail), m_enabled(enabled), m_chain(0), m_name(0)
	{ debugLevel(level); }

    inline ~DebugEnabler()
	{ m_name = 0; m_chain = 0; }

    /**
     * Retrieve the current local debug level
     * 重新获得当前本地的调试级别
     * @return The current local debug level
     * @返回当前本地调试级别
     */
    inline int debugLevel() const
	{ return m_chain ? m_chain->debugLevel() : m_level; }

    /**
     * Set the current local debug level.
     * 设置当前本地的调试级别
     * @param level The desired debug level
     * @参数level,被要求的调试级别
     * @return The new debug level (may be different)
     * @返回新的调试级别(可能不同)
     */
    int debugLevel(int level);

    /**
     * Retrieve the current debug activation status
     * 见过当前调试的激活状态
     * @return True if local debugging is enabled
     * @返回true,如果本地调试启用
     */
    inline bool debugEnabled() const
	{ return m_chain ? m_chain->debugEnabled() : m_enabled; }

    /**
     * Set the current debug activation status
     * 设置当前调试激活状态
     * @param enable The new debug activation status, true to enable
     * @参数enable,新的调试激活状态,true 为启用
     */
    inline void debugEnabled(bool enable)
	{ m_enabled = enable; m_chain = 0; }

    /**
     * Get the current debug name
     * 获得当下调试名
     * @return Name of the debug activation if set or NULL
     * @返回调试名,如果设置了激活调试名,或者NULL
     */
    inline const char* debugName() const
	{ return m_name; }

    /**
     * Check if debugging output should be generated
     * 检查是否应该生成调试输出
     * @param level The debug level we are testing
     * @参数level,我们正在测试调试水平
     * @return True if messages should be output, false otherwise
     * @返回true,如果消息应该被输出,否则为false
     */
    bool debugAt(int level) const;

    /**
     * Check if this enabler is chained to another one
     * 检查这个使能者是否被另外一个锁住
     * @return True if local debugging is chained to other enabler
     * @返回true,如果本地的调试信息被另外一个使能者锁住
     */
    inline bool debugChained() const
	{ return m_chain != 0; }

    /**
     * Chain this debug holder to a parent or detach from existing one
     * 束缚调试所有者的父对象,或者从现有的分离
     * @param chain Pointer to parent debug level, NULL to detach
     * @参数chain,父对象指针的调试级别,NULL 为分离
     */
    inline void debugChain(const DebugEnabler* chain = 0)
	{ m_chain = (chain != this) ? chain : 0; }

    /**
     * Copy debug settings from another object or from engine globals
     * 从别的对象或者是从全局引擎拷贝调试设置
     * @param original Pointer to a DebugEnabler to copy settings from
     * @参数original,要拷贝DebugEnabler对象的指针
     */
    void debugCopy(const DebugEnabler* original = 0);

protected:
    /**
     * Set the current debug name
     * 设置当前调试名字
     * @param name Static debug name or NULL
     * @参数name,静态的调试名或者NULL
     */
    inline void debugName(const char* name)
	{ m_name = name; }

private:
    int m_level;
    bool m_enabled;
    const DebugEnabler* m_chain;
    const char* m_name;
};
时间: 2024-10-06 19:23:22

yate学习--yateclass.h--class YATE_API DebugEnabler的相关文章

yate学习--yateclass.h--class YATE_API Stream

转载说明: yate中所有基于流操作的基类: /** * Base class for encapsulating system dependent stream capable objects * 封装能够基于系统的流对象的基类 * @short An abstract stream class capable of reading and writing * @short 能够读和写的抽象类 */ class YATE_API Stream { public: /** * Enumerate

yate学习--yateclass.h--class YATE_API NamedCounter : public String

请声明出处: NamedCounter,对象命名的计数器: /** * An atomic counter with an associated name * 关联名的原子计数器 * @short Atomic counter with name * @short 名字的原子计数器 */ class YATE_API NamedCounter : public String { YNOCOPY(NamedCounter); // no automatic copies please public

yate学习--yateclass.h--class YATE_API Socket : public Stream

请声明出处: Socket,网络套接字的类,包括创建.绑定.监听.接受.发送.接收等操作: /** * This class encapsulates a system dependent socket in a system independent abstraction * 这个类封装了一个依赖于系统的套接字系统独立的抽象 * @short A generic socket class * @short 一般的套接字的类 */ class YATE_API Socket : public S

yate学习--yateclass.h--class YATE_API RefObject : public GenObject

请声明出处: 对象的引用计数的类,基本大部分的类都继承了该类: /** * A reference counted object. * 引用计数的对象 * Whenever using multiple inheritance you should inherit this class virtually. * 使用多重继承,一般都会继承这个类 */ class YATE_API RefObject : public GenObject { YNOCOPY(RefObject); // no a

yate学习--./yate/packingyate.logrotate

上一篇文章记录了yate学习--./yate/tools/log_rotate.sh: 今天继续看和日志部分的脚本./yate/packingyate.logrotate,先看看脚本源码. # Have to rotate the log and CDR files before each reaches 2GB in size /var/log/yate /var/log/yate-cdr.tsv { size=100M rotate 5 missingok sharedscripts not

yate学习--yatengine.h--class YATE_API MessageReceiver : public GenObject

请声明出处: MessageReceiver,这个类是一个消息接受的基类: /** * A multiple message receiver to be invoked by a message relay * 多个消息接收器调用消息传递 * @short A multiple message receiver * @short 多个消息接收器 */ class YATE_API MessageReceiver : public GenObject { public: /** * This m

yate学习--./yate/tools/log_rotate.sh

从还没有毕业开始就开始写服务器上面的代码,不管是C/S还是B/S都基本接触过和实现过了,从最开始的socket通信,到移植boa,实现cgi,摸索voip server,web server(php--phalcon),维护过web server(java-ssh).接触yate server的时间是最久的,也是第一次对一个系统有比较全的认识.日志-后台运行-运行脚本-服务安装-打包部署安装-性能测试. 今天看到了里面的日志部分,实现的机制和方法比我之前使用的都好一些,把个人的理解贴出来,从而加

yate学习--yatesip.h--class YSIP_API SIPMessage : public RefObject

请声明出处:http://blog.csdn.net/u012377333/article/details/45917579 本文开始详细的学习yate里面自定义的SIP协议库,消息体的定义: /** * An object that holds the sip message parsed into this library model. * 一个保存被解析的sip信息到这个库模型的对象 * This class can be used to parse a sip message from

yate学习--基于CentOS安装运行yate

基于CentOS安装Yate 1前言 思前想后,很多东西现在理解了,会用了.时间长了,对这个系统进行bug修复的时候.很多知道的东西会忘的差不多,需要重新花比较多的时间去理解和学习.俗话说:好记性不如烂笔头.还是老老实实的用文字和图片的方法来记录. 为了让以后的自己轻松一点,只要让现在的自己多做一点工作,重新开始搭建yate的环境. 2源码下载 最好从官网下载, 官网地址:http://www.yate.ro/ 下载地址:http://docs.yate.ro/wiki/Download 由于没