replace RefCountBase with SimpleRefCount<> to avoid duplicate refcounting implementations.
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
3 // Copyright (c) 2009 INESC Porto
5 // This program is free software; you can redistribute it and/or modify
6 // it under the terms of the GNU General Public License version 2 as
7 // published by the Free Software Foundation;
9 // This program is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 // GNU General Public License for more details.
14 // You should have received a copy of the GNU General Public License
15 // along with this program; if not, write to the Free Software
16 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 // Author: Gustavo J. A. M. Carneiro <gjc@inescporto.pt> <gjcarneiro@gmail.com>
21 #ifndef __FLOW_CLASSIFIER_H__
22 #define __FLOW_CLASSIFIER_H__
24 #include "ns3/simple-ref-count.h"
29 typedef uint32_t FlowId;
30 typedef uint32_t FlowPacketId;
32 /// provides a method to translate raw packet data into abstract
33 /// ``flow identifier'' and ``packet identifier'' parameters. These
34 /// identifiers are unsigned 32-bit integers that uniquely identify a
35 /// flow and a packet within that flow, respectively, for the whole
36 /// simulation, regardless of the point in which the packet was
37 /// captured. These abstract identifiers are used in the
38 /// communication between FlowProbe and FlowMonitor, and all collected
39 /// statistics reference only those abstract identifiers in order to
40 /// keep the core architecture generic and not tied down to any
41 /// particular flow capture method or classification system.
42 class FlowClassifier : public SimpleRefCount<FlowClassifier>
44 FlowId m_lastNewFlowId;
49 virtual ~FlowClassifier ();
51 virtual void SerializeToXmlStream (std::ostream &os, int indent) const = 0;
54 FlowId GetNewFlowId ();