加速ASIO async_read(ASYNC_WRITE)包装
问题描述:
我想编写了一个boost :: ASIO :: IP :: TCP ::插座加速ASIO async_read(ASYNC_WRITE)包装
类似的东西的包装:
class Socket {
public:
void async_read(AsyncReadStream & s,
const boost::asio::MutableBufferSequence & buffers,
CompletionCondition completion_condition,
ReadHandler handler) {};
};
所以我将能够无缝地使用ssl和非ssl流... 唯一的一点是,我似乎没有找到每个参数的定义来传递它们以boost :: asio :: async_read(命名空间等。 )
任何帮助,将不胜感激!谢谢
答
您的主要需求似乎是“无缝使用SSL和非SSL流”。要做到这一点,你可以用暴露你需要使用的函数的方式来包装各种流类型。
你如何做的一部分是决定你如何进行内存管理。 MutableBufferSequence不是一个类型,它为在该上下文中使用的类型定义了一组需求。
如果您打算使用少数几种方法之一,您可以在界面中使用它们(只要符合MutableBufferSequence/ConstBufferSequence要求,就可以)。这个缺点是缓冲区管理成为界面的一部分。
如果你想保持ASIO缓冲管理的灵活性,你可以
模板,以便您的流类型代码实现无缝SSL /非SSL要求。
使用缓冲区类型上的模板化方法为各种流类型创建包装。
(更新响应;我不应该去到这样一个问题作出回应时,我有不到两分钟!)
途径复杂的解决方案,但似乎是唯一的一个...我想我现在会推迟使用ssl和非ssl流的能力。谢谢 ! – TheSquad