OpenHiva::HivaBuffer类型定义

HivaBuffer是确定性调度框架特有的内存类型,用户可将数据拷贝到HivaBuffer,并调用消息发布Publish接口将HivaBuffer发布出去。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
namespace OpenHiva {
class HivaBuffer{
public:
    explicit HivaBuffer ();
    void ConstructFromMbuf(struct Mbuf *mbufPtr);           // 内部使用,构造HivaBuffer
    uint32_t GetBuff (void *&dataPtr, size_t &dataLen);    // 获取Buff数据区写入数据的起始地址和长度
    uint32_t SetBuffDataLen(const size_t dataLen);        // 设置已写入Buff数据区的数据长度
    uint32_t SetUserData (const UserData &data);          // 往UserData数据区写入数据
    uint32_t GetUserData (UserData &data);                // 获取UserData数据区的数据
    uint32_t CopyHivaBuffer(HivaBuffer &hivaBuffer);      // 拷贝HivaBuffer输出新对象newBuffer
    uint32_t FreeHivaBuffer();                            // HivaBuffer释放
private:
    Mbuf * mbufPtr_;
    friend HivaBuffPool;
    friend Publisher;
    friend BufferMessage;
};
}

其内存模型如图1

图1 HivaBuffer内存示意图