00001 /* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */ 00002 /* 00003 * Copyright (c) 2010 Nicola Baldo 00004 * 00005 * This program is free software: you can redistribute it and/or modify 00006 * it under the terms of the GNU General Public License as published by 00007 * the Free Software Foundation, either version 3 of the License, or 00008 * (at your option) any later version. 00009 * 00010 * This program is distributed in the hope that it will be useful, 00011 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00013 * GNU General Public License for more details. 00014 * 00015 * You should have received a copy of the GNU General Public License 00016 * along with this program. If not, see <http://www.gnu.org/licenses/>. 00017 * 00018 * Author: Nicola Baldo <nicola@baldo.biz> 00019 */ 00020 00021 #ifndef DECODER_H 00022 #define DECODER_H 00023 00024 #include<ptr.h> 00025 #include<packet-combination.h> 00026 00027 00028 namespace Binc { 00029 00030 00042 class InformationReceiver 00043 { 00044 public: 00045 00052 virtual void Receive (unsigned int id, Ptr<BitVector> payload) = 0; 00053 }; 00054 00055 00063 class Decoder 00064 { 00065 public: 00066 Decoder (); 00067 virtual ~Decoder (); 00068 00075 void SetInformationReceiver (InformationReceiver* r); 00076 00081 virtual void Receive (Ptr<PacketCombination> p) = 0; 00082 00083 protected: 00084 InformationReceiver* m_informationReceiver; 00085 }; 00086 00087 00088 } // namespace Binc 00089 00090 00091 #endif // DECODER_H