callback

/*
 * 各种回调函数的定义
 */
namespace muduo
{

// 对象指针的向下转换
template<typename To, typename From>
inline ::boost::shared_ptr<To> down_pointer_cast(const ::boost::shared_ptr<From>& f)
{
    if (false)
    {
        implicit_cast<From*, To*>(0);
    }

#ifndef NDEBUG
    assert(f == NULL || dynamic_cast<To*>(get_pointer(f)) != NULL);
#endif
    return ::boost::static_pointer_cast<To>(f);
}

namespace net
{

// All client visible callbacks go here.

class Buffer;

// TcpConnection表示一个TCP的连接
class TcpConnection;

// 定义TcpConnection的指针类型
typedef boost::shared_ptr<TcpConnection> TcpConnectionPtr;

// 计时器回调函数的定义
typedef boost::function<void()> TimerCallback;

// 连接完成回调函数的定义
typedef boost::function<void (const TcpConnectionPtr&)> ConnectionCallback;

// 关闭一个连接的回调函数
typedef boost::function<void (const TcpConnectionPtr&)> CloseCallback;

// 写完成回调函数的定义
typedef boost::function<void (const TcpConnectionPtr&)> WriteCompleteCallback;

// 高水位标记回调函数的定义
typedef boost::function<void (const TcpConnectionPtr&, size_t)> HighWaterMarkCallback;

// the data has been read to (buf, len)
// 当数据到来的时候的回调函数,此时数据已经被存放在buffer中
typedef boost::function<void (const TcpConnectionPtr&,
        Buffer*,
        Timestamp)> MessageCallback;

// 默认的连接完成回调函数
void defaultConnectionCallback(const TcpConnectionPtr& conn);

// 默认的消息到来的回调函数
void defaultMessageCallback(const TcpConnectionPtr& conn,
        Buffer* buffer,
        Timestamp receiveTime);

}
}
阅读更多

没有更多推荐了,返回首页