//Editor-Info: -*- C++ -*-
//
//Subject: TOVE project / bisup
//
//File: bisupiecoder.h
//
//Version: $Revision: 1.12 $
//
//State: $State: Exp $
//
//Date: $Date: 1998/12/17 17:42:53 $
//
//Organisation:
//      Helsinki University of Technology
//      Laboratory of Telecommunications Software and Multimedia
// 
//Author:
//      Timo Kokkonen
//      Sami Raatikainen
//
//Description:
//      Coder-class representing protocol specific information for coding
//      information elements. Knows how to encode/decode the header of
//      bisup information elements.
//
//Copyright:
//      Copyright 1999 Helsinki University of Technology
//      ALL RIGHTS RESERVED BETWEEN JANUARY 1996 AND JUNE 1999.
//
//Licence:
//
//
//History:
//

#ifndef __BISUP_BISUPIECODER_H__
#define __BISUP_BISUPIECODER_H__

#include "protocol/sig/iecoder.h"

class bisupIECoder : public IECoder
{
    public:
        virtual ~bisupIECoder(void);

        virtual void decodeIE(pfFrame &frame_, pfMessenger *msg_);
        virtual void encodeIE(pfFrame &frame_, pfMessenger *msg_);

    protected:
        bisupIECoder(
            const string &IEname_, 
            const pfByte &IEtype_,
            bool isMandatory_);
        
        virtual void decodeContent(
            pfFrame &frame_,
            pfUlong IElength_,
            pfMessenger *msg_) = 0;
        virtual void encodeContent(pfFrame &frame_, pfMessenger *msg_) = 0;

        // bisupIE header information
        pfByte _parameterCompatibilityInf1;
        pfByte _parameterCompatibilityInf2;
};

#endif // __BISUP_BISUPIECODER_H__
