This file is indexed.

/usr/include/measurement_kit/net/transport.hpp is in libmeasurement-kit-dev 0.7.1-2build1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
// Part of measurement-kit <https://measurement-kit.github.io/>.
// Measurement-kit is free software. See AUTHORS and LICENSE for more
// information on the copying conditions.
#ifndef MEASUREMENT_KIT_NET_TRANSPORT_HPP
#define MEASUREMENT_KIT_NET_TRANSPORT_HPP

#include <measurement_kit/net/buffer.hpp>
#include <measurement_kit/net/utils.hpp>

namespace mk {

namespace dns {
class ResolveHostnameResult; /* Forward declaration */
} // namespace dns

namespace net {

class TransportEmitter {
  public:
    virtual ~TransportEmitter();

    virtual void emit_connect() = 0;
    virtual void emit_data(Buffer buf) = 0;
    virtual void emit_flush() = 0;
    virtual void emit_error(Error err) = 0;

    virtual void on_connect(Callback<>) = 0;
    virtual void on_data(Callback<Buffer>) = 0;
    virtual void on_flush(Callback<>) = 0;
    virtual void on_error(Callback<Error>) = 0;

    virtual void close(Callback<>) = 0;
};

class TransportRecorder {
  public:
    virtual ~TransportRecorder();

    virtual void record_received_data() = 0;
    virtual void dont_record_received_data() = 0;
    virtual Buffer &received_data() = 0;

    virtual void record_sent_data() = 0;
    virtual void dont_record_sent_data() = 0;
    virtual Buffer &sent_data() = 0;
};

class TransportWriter {
  public:
    virtual ~TransportWriter();
    virtual void write(const void *, size_t) = 0;
    virtual void write(std::string) = 0;
    virtual void write(Buffer) = 0;
};

class TransportSocks5 {
  public:
    virtual ~TransportSocks5();
    virtual std::string socks5_address() = 0;
    virtual std::string socks5_port() = 0;
};

class TransportPollable {
  public:
    virtual ~TransportPollable();

    virtual void set_timeout(double) = 0;
    virtual void clear_timeout() = 0;

    /*
     * This is the interface with the underlying I/O system. As such, it is
     * specified here, for clarity, but is also protected.
     */
  protected:
    virtual void adjust_timeout(double) = 0;

    virtual void shutdown() = 0;

    /*
     * Writing is stopped automatically when the send buffer is empty
     * and, when this happens, the FLUSH event is emitted.
     */
    virtual void start_reading() = 0;
    virtual void stop_reading() = 0;
    virtual void start_writing() = 0;
};

class TransportConnectable {
  public:
    virtual ~TransportConnectable();
    virtual double connect_time() = 0;
    virtual void set_connect_time_(double) = 0;
    virtual std::vector<Error> connect_errors() = 0;
    virtual void set_connect_errors_(std::vector<Error>) = 0;
    virtual dns::ResolveHostnameResult dns_result() = 0;
    virtual void set_dns_result_(dns::ResolveHostnameResult) = 0;
};

class TransportSockNamePeerName {
  public:
    virtual ~TransportSockNamePeerName();
    virtual Endpoint sockname() = 0;
    virtual Endpoint peername() = 0;
};

class Transport : public TransportEmitter,
                  public TransportRecorder,
                  public TransportWriter,
                  public TransportSocks5,
                  public TransportPollable,
                  public TransportConnectable,
                  public TransportSockNamePeerName {
  public:
    virtual ~Transport();
};

/*
 *  Syntactic sugar when you need only to write or read (vis a vis Transport,
 *  required when you need read and write at the same time).
 */

void write(Var<Transport> txp, Buffer buf, Callback<Error> cb);

void readn(Var<Transport> txp, Var<Buffer> buff, size_t n, Callback<Error> cb,
           Var<Reactor> reactor = Reactor::global());

void read(Var<Transport> t, Var<Buffer> buff, Callback<Error> callback,
          Var<Reactor> reactor = Reactor::global());

} // namespace net
} // namespace mk
#endif