Class get_next_packet : public tbb::filter

The filter class get_next_packet (Example 11-44) reads each packet from a packet trace in the input file.

Example 11-44. Filter to get the next packet

class get_next_packet : public tbb::filter {
    istream& in_file;
public:
    get_next_packet (ifstream& file) : in_file (file),
                     filter (true) {}
    void* operator() (void*) {
        packet_trace* packet = new packet_trace ();
        in_file >> *packet;
        if (packet->packetNic == empty) {
            delete packet;
            return NULL;
        }
        return packet;
    }
};

Get Intel Threading Building Blocks now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.