A Discrete-Event Network Simulator
API
flow-classifier.h
Go to the documentation of this file.
1 //
2 // Copyright (c) 2009 INESC Porto
3 //
4 // This program is free software; you can redistribute it and/or modify
5 // it under the terms of the GNU General Public License version 2 as
6 // published by the Free Software Foundation;
7 //
8 // This program is distributed in the hope that it will be useful,
9 // but WITHOUT ANY WARRANTY; without even the implied warranty of
10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 // GNU General Public License for more details.
12 //
13 // You should have received a copy of the GNU General Public License
14 // along with this program; if not, write to the Free Software
15 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16 //
17 // Author: Gustavo J. A. M. Carneiro <gjc@inescporto.pt> <gjcarneiro@gmail.com>
18 //
19 
20 #ifndef FLOW_CLASSIFIER_H
21 #define FLOW_CLASSIFIER_H
22 
23 #include "ns3/simple-ref-count.h"
24 
25 #include <ostream>
26 
27 namespace ns3
28 {
29 
34 typedef uint32_t FlowId;
35 
40 typedef uint32_t FlowPacketId;
41 
53 class FlowClassifier : public SimpleRefCount<FlowClassifier>
54 {
55  private:
57 
58  public:
60  virtual ~FlowClassifier();
61 
62  // Delete copy constructor and assignment operator to avoid misuse
63  FlowClassifier(const FlowClassifier&) = delete;
65 
69  virtual void SerializeToXmlStream(std::ostream& os, uint16_t indent) const = 0;
70 
71  protected:
75 
80  void Indent(std::ostream& os, uint16_t level) const;
81 };
82 
83 inline void
84 FlowClassifier::Indent(std::ostream& os, uint16_t level) const
85 {
86  for (uint16_t __xpto = 0; __xpto < level; __xpto++)
87  {
88  os << ' ';
89  }
90 }
91 
92 } // namespace ns3
93 
94 #endif /* FLOW_CLASSIFIER_H */
Provides a method to translate raw packet data into abstract flow identifier and packet identifier pa...
void Indent(std::ostream &os, uint16_t level) const
Add a number of spaces for indentation purposes.
FlowId GetNewFlowId()
Returns a new, unique Flow Identifier.
FlowClassifier(const FlowClassifier &)=delete
FlowId m_lastNewFlowId
Last known Flow ID.
FlowClassifier & operator=(const FlowClassifier &)=delete
virtual void SerializeToXmlStream(std::ostream &os, uint16_t indent) const =0
Serializes the results to an std::ostream in XML format.
A template-based reference counting class.
uint32_t FlowId
Abstract identifier of a packet flow.
uint32_t FlowPacketId
Abstract identifier of a packet within a flow.
Every class exported by the ns3 library is enclosed in the ns3 namespace.