net模块
Callbacks.h
template<typename T>
inline T* get_pointer(const std::shared_ptr<T>& ptr) //返回shard_ptr的裸指针,感觉意义不大的一个函数
{
return ptr.get();
}
template<typename T>
inline T* get_pointer(const std::unique_ptr<T>& ptr) //返回unique_ptr的裸指针
{
return ptr.get();
}
template<typename To, typename From> //对智能指针进行转换
inline ::std::shared_ptr<To> down_pointer_cast(const ::std::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 ::std::static_pointer_cast<To>(f);
}
typedef std::shared_ptr<TcpConnection> TcpConnectionPtr;
typedef std::function<void()> TimerCallback;
typedef std::function<void (const TcpConnectionPtr&)> ConnectionCallback; //对于一个含有TcpConnection智能指针的对象座位参数的可调用对象,起不同的别名。 可调用对象,就是一种回调函数
typedef std::function<void (const TcpConnectionPtr&)> CloseCallback;
typedef std::function<void (const TcpConnectionPtr&)> WriteCompleteCallback;
typedef std::function<void (const TcpConnectionPtr&, size_t)> HighWaterMarkCallback;
// the data has been read to (buf, len)
typedef std::function<void (const TcpConnectionPtr&,
Buffer*,
Timestamp)> MessageCallback;
void defaultConnectionCallback(const TcpConnectionPtr& conn);
void defaultMessageCallback(const TcpConnectionPtr& conn,
Buffer* buffer,
Timestamp receiveTime);