Exemple #1
0
//---------------------------------------------------------------------------------------
int TaskMan::OnRcvData(const void *data, int len)
{
    SmartFrame *frame = get_smart_frame((const uint8_t*)data, len);
    if (!frame) return 0;

    if (is_remote_frame(frame) && !is_reply_frame(frame))
        return len;

    OnTaskDone(frame, frame_len(frame));
    return len;
}
Exemple #2
0
    helper(const struct arguments &args)
        : recoder_stack(args),
          m_frame(frame_len()),
          m_packet_hdr(&m_frame[0]),
          m_payload_hdr(&m_frame[packet_hdr_len()]),
          m_payload_data(&m_frame[header_len()]),
          m_threshold(budgets::helper_threshold(args.symbols, args.e1/100.0,
                                                args.e2/100.0, args.e3/100.0)),
          m_budget_max(budgets::helper_budget(args.symbols, args.e1/100.0,
                                              args.e2/100.0, args.e3/100.0)),
          m_credits(budgets::helper_credits(args.symbols, args.e1/100.0,
                                            args.e2/100.0, args.e3/100.0))
    {
        auto r = std::bind(&helper::recv_packet, this, std::placeholders::_1);

        m_sock = socket_add(args.interface, r);

        std::cout << "credits:   " << m_credits << std::endl;
        std::cout << "budget:    " << m_budget_max << std::endl;
        std::cout << "threshold: " << m_threshold << std::endl;

        start();
    }