当前位置: 首页>>代码示例>>C++>>正文


C++ Listener::bufferOffset方法代码示例

本文整理汇总了C++中Listener::bufferOffset方法的典型用法代码示例。如果您正苦于以下问题:C++ Listener::bufferOffset方法的具体用法?C++ Listener::bufferOffset怎么用?C++ Listener::bufferOffset使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Listener的用法示例。


在下文中一共展示了Listener::bufferOffset方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: main

int main(int argc, char * const argv[])
{
    Listener listener;
    IrRepo repo(listener);
    CarCallbacks carCbs(listener);
    char *buffer = NULL;
    int length = 0, ch, justHeader = 0;
#if defined(WIN32)
    int optind = 1;

    if (strcmp(argv[optind], "-?") == 0)
    {
        usage(argv[0]);
        exit(-1);
    }
    else if (strcmp(argv[optind], "-h") == 0)
    {
        justHeader++;
        optind++;
    }
#else
    while ((ch = ::getopt(argc, argv, "h")) != -1)
    {
        switch (ch)
        {
            case 'h':
                justHeader++;
                break;

            case '?':
            default:
                usage(argv[0]);
                break;
        }

    }
#endif /* WIN32 */

    // load IR from .sbeir file
    if (repo.loadFromFile(argv[optind]) < 0)
    {
        std::cout << "could not load IR" << std::endl;
        exit(-1);
    }

    // load data from file into a buffer
    if ((buffer = ::readFileIntoBuffer(argv[optind+1], &length)) == NULL)
    {
        std::cout << "could not load encoding" << std::endl;
        exit(-1);
    }

    std::cout << "Decoding..." << std::endl;

    // if all we want is header, then set up IR for header, decode, and print out offset and header fields
    if (justHeader)
    {
        listener.ir(repo.header())
                .resetForDecode(buffer, length)
                .subscribe(&carCbs, &carCbs, &carCbs);

        std::cout << "Message starts at offset " << listener.bufferOffset() << "\n";

        return 0;
    }

    // set up listener and kick off decoding with subscribe
    listener.dispatchMessageByHeader(repo.header(), &repo)
            .resetForDecode(buffer, length)
            .subscribe(&carCbs, &carCbs, &carCbs);

    std::cout << "Message ends at offset " << listener.bufferOffset() << "\n";

    delete[] buffer;

    return 0;
}
开发者ID:Colin-b,项目名称:simple-binary-encoding,代码行数:77,代码来源:SbeOtfDecoder.cpp


注:本文中的Listener::bufferOffset方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。