70 enum State { IR, FO, SO };
73 std::set<RohcProfile> profiles;
74 std::map<RohcProfile, inet::B> foHeaderSize;
75 std::map<RohcProfile, inet::B> soHeaderSize;
76 inet::B irOverhead = inet::B(3);
83 static const int MAX_CONTEXTS = 16;
89 inet::b compressedSize;
96 int packetsInState = 0;
97 int packetsSinceIr = 0;
98 int packetsSinceFo = 0;
99 uint64_t lastUsed = 0;
103 std::vector<Context> contexts_;
104 uint64_t packetCount_ = 0;
106 virtual bool isAllowed(RohcProfile profile)
const {
return params_.profiles.count(profile) != 0; }
109 virtual int findOrCreateContext(
const std::string& flow);
112 virtual State nextState(Context& context);
115 explicit RohcCompressor(
const Parameters& params);
116 virtual ~RohcCompressor() {}
120 virtual Result compress(inet::Packet *pkt);
122 int getNumContexts()
const {
return contexts_.size(); }