44 * associated with a node. This is substantially similar to the tracing |
44 * associated with a node. This is substantially similar to the tracing |
45 * that happens in device helpers, but the important difference is that, well, |
45 * that happens in device helpers, but the important difference is that, well, |
46 * there is no device. This means that the creation of output file names will |
46 * there is no device. This means that the creation of output file names will |
47 * change, and also the user-visible methods will not reference devices and |
47 * change, and also the user-visible methods will not reference devices and |
48 * therefore the number of trace enable methods is reduced. |
48 * therefore the number of trace enable methods is reduced. |
|
49 * |
|
50 * Normally we eschew multiple inheritance, however, the classes |
|
51 * PcapUserHelperForIpv4 and AsciiTraceUserHelperForIpv4 are |
|
52 * treated as "mixins". A mixin is a self-contained class that |
|
53 * encapsulates a general attribute or a set of functionality that |
|
54 * may be of interest to many other classes. |
|
55 * |
|
56 * Since the mixins below are self-contained and are explicitly |
|
57 * designed to avoid naming conflicts through explicit resolution, |
|
58 * multiple inheritance problems are avoided. |
49 */ |
59 */ |
50 class InternetStackHelper : public PcapUserHelperForIpv4, public AsciiTraceUserHelperForIpv4 |
60 class InternetStackHelper : public PcapUserHelperForIpv4, public AsciiTraceUserHelperForIpv4 |
51 { |
61 { |
52 public: |
62 public: |
53 /** |
63 /** |