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


C++ Consumer::charge方法代码示例

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


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

示例1: testCharges

    void testCharges (beast::Journal j)
    {
        testcase ("Charge");

        TestLogic logic (j);

        {
            beast::IP::Endpoint address (beast::IP::Endpoint::from_string ("207.127.82.1"));
            Consumer c (logic.newInboundEndpoint (address));
            Charge fee (1000);
            j.info <<
                "Charging " << c.to_string() << " " << fee << " per second";
            c.charge (fee);
            for (int i = 0; i < 128; ++i)
            {
                j.info <<
                    "Time= " << logic.clock().now().time_since_epoch() <<
                    ", Balance = " << c.balance();
                logic.advance();
            }
        }

        {
            beast::IP::Endpoint address (beast::IP::Endpoint::from_string ("207.127.82.2"));
            Consumer c (logic.newInboundEndpoint (address));
            Charge fee (1000);
            j.info <<
                "Charging " << c.to_string() << " " << fee << " per second";
            for (int i = 0; i < 128; ++i)
            {
                c.charge (fee);
                j.info <<
                    "Time= " << logic.clock().now().time_since_epoch() <<
                    ", Balance = " << c.balance();
                logic.advance();
            }
        }

        pass();
    }
开发者ID:BobWay,项目名称:rippled,代码行数:40,代码来源:Logic.test.cpp

示例2: testDrop

    void testDrop (beast::Journal j)
    {
        testcase ("Warn/drop");

        TestLogic logic (j);

        Charge const fee (dropThreshold + 1);
        beast::IP::Endpoint const addr (
            beast::IP::Endpoint::from_string ("207.127.82.2"));

        {
            Consumer c (logic.newInboundEndpoint (addr));

            // Create load until we get a warning
            int n = 10000;

            while (--n >= 0)
            {
                if (n == 0)
                {
                    fail ("Loop count exceeded without warning");
                    return;
                }

                if (c.charge (fee) == warn)
                {
                    pass ();
                    break;
                }
                ++logic.clock ();
            }

            // Create load until we get dropped
            while (--n >= 0)
            {
                if (n == 0)
                {
                    fail ("Loop count exceeded without dropping");
                    return;
                }

                if (c.charge (fee) == drop)
                {
                    // Disconnect abusive Consumer
                    expect (c.disconnect ());
                    break;
                }
                ++logic.clock ();
            }
        }

        // Make sure the consumer is on the blacklist for a while.
        {
            Consumer c (logic.newInboundEndpoint (addr));
            logic.periodicActivity();
            if (c.disposition () != drop)
            {
                fail ("Dropped consumer not put on blacklist");
                return;
            }
        }

        // Makes sure the Consumer is eventually removed from blacklist
        bool readmitted = false;
        {
            // Give Consumer time to become readmitted.  Should never
            // exceed expiration time.
            std::size_t n (secondsUntilExpiration + 1);
            while (--n > 0)
            {
                ++logic.clock ();
                logic.periodicActivity();
                Consumer c (logic.newInboundEndpoint (addr));
                if (c.disposition () != drop)
                {
                    readmitted = true;
                    break;
                }
            }
        }
        if (readmitted == false)
        {
            fail ("Dropped Consumer left on blacklist too long");
            return;
        }
        pass();
    }
开发者ID:BobWay,项目名称:rippled,代码行数:87,代码来源:Logic.test.cpp

示例3: testDrop

    void testDrop (beast::Journal j)
    {
        testcase ("Warn/drop");

        TestLogic logic (j);

        Charge const fee (dropThreshold + 1);
        beast::IP::Endpoint const addr (
            beast::IP::Endpoint::from_string ("207.127.82.2"));
        
        {
            Consumer c (logic.newInboundEndpoint (addr));

            // Create load until we get a warning
            for (std::size_t n (maxLoopCount); true; --n)
            {
                if (n == 0)
                {
                    fail ("Loop count exceeded without warning");
                    return;
                }

                if (c.charge (fee) == warn)
                {
                    pass ();
                    break;
                }
                ++logic.clock ();
            }

            // Create load until we get dropped
            for (std::size_t n (maxLoopCount); true; --n)
            {
                if (n == 0)
                {
                    fail ("Loop count exceeded without dropping");
                    return;
                }

                if (c.charge (fee) == drop)
                {
                    pass ();
                    break;
                }
                ++logic.clock ();
            }

        }

        {
            Consumer c (logic.newInboundEndpoint (addr));
            expect (c.disconnect ());
        }

        for (std::size_t n (maxLoopCount); true; --n)
        {
            Consumer c (logic.newInboundEndpoint (addr));
            if (n == 0)
            {
                fail ("Loop count exceeded without expiring black list");
                return;
            }

            if (c.disposition() != drop)
            {
                pass ();
                break;
            }
        }
    }
开发者ID:luckfan,项目名称:vpal,代码行数:70,代码来源:Tests.cpp


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