//Editor-Info: -*- C++ -*-
//
//Subject: TOVE project / bisup
//
//File: bisuppducoders.h
//
//Version: $Revision: 1.15 $
//
//State: $State: Exp $
//
//Date: $Date: 1999/03/15 13:21:02 $
//
//Organisation:
//      Helsinki University of Technology
//      Laboratory of Telecommunications Software and Multimedia
//
//Author:
//      Timo Kokkonen
//      Sami Raatikainen
//
//Description:
//      Defines needed ieCoders for different pdus.
//
//Copyright:
//      Copyright 1999 Helsinki University of Technology
//      ALL RIGHTS RESERVED BETWEEN JANUARY 1996 AND JUNE 1999.
//
//Licence:
//
//
//History:
//

#ifndef __BISUP_BISUPPDUCODERS_H__
#define __BISUP_BISUPPDUCODERS_H__

#include "bisuppducoder.h"
#include "bisupiecoders.h"

class testCoder : public bisupPduCoder
{
    public:
        testCoder(void);
        virtual ~testCoder(void);

    private:
        bisupTransparentIECoder _aal;
        bisupCalledPartyNumberIECoder _calledPartyNumber;
        bisupCauseIECoder _cause;
        bisupConnectionElementIdIECoder _connectionIdentifier;
        bisupCallReferenceIECoder _DSID;
        bisupTransitNetworkSelectionIECoder _transitNetworkSelection;
        bisupATMCellRateIECoder _atmCellRate;
	bisupBroadbandBearerIECoder _BBC;
};


class bisupIAMCoder : public bisupPduCoder
{
    public:
        bisupIAMCoder(void);
        virtual ~bisupIAMCoder(void);
        
    private:
        bisupCalledPartyNumberIECoder _calledPartyNumber;
        bisupConnectionElementIdIECoder _connectionIdentifier;
        bisupCallReferenceIECoder _OSID;
        bisupCallReferenceIECoder _DSID;
        bisupTransitNetworkSelectionIECoder _transitNetworkSelection;
        bisupATMCellRateIECoder _atmCellRate;
        bisupBroadbandBearerIECoder _BBC;
};

//----------------------------------------------------------------------

class bisupIAACoder : public bisupPduCoder
{
    public:
        bisupIAACoder(void);
        virtual ~bisupIAACoder(void);

    private:
        bisupConnectionElementIdIECoder _connectionIdentifier;
        bisupCallReferenceIECoder _DSID;
};

//----------------------------------------------------------------------

class bisupIARCoder : public bisupPduCoder
{
    public:
        bisupIARCoder(void);
        virtual ~bisupIARCoder(void);

    private:
        bisupCauseIECoder _cause;
        bisupCallReferenceIECoder _OSID;
        bisupCallReferenceIECoder _DSID;
};

//----------------------------------------------------------------------

class bisupACMCoder : public bisupPduCoder
{
    public:
        bisupACMCoder(void);
        virtual ~bisupACMCoder(void);
        
    private:
        // ++TODO++
        
};

//----------------------------------------------------------------------

class bisupCPGCoder : public bisupPduCoder
{
    public:
        bisupCPGCoder(void);
        virtual ~bisupCPGCoder(void);
        
    private:
        // ++TODO++
        
};

//----------------------------------------------------------------------

class bisupANMCoder : public bisupPduCoder
{
    public:
        bisupANMCoder(void);
        virtual ~bisupANMCoder(void);

    private:
        bisupCallReferenceIECoder _DSID;
};

//----------------------------------------------------------------------

class bisupRELCoder : public bisupPduCoder
{
    public:
        bisupRELCoder(void);
        virtual ~bisupRELCoder(void);

    private:
        bisupCauseIECoder _cause;
        bisupCallReferenceIECoder _DSID;
};

//----------------------------------------------------------------------

class bisupRLCCoder : public bisupPduCoder
{
    public:
        bisupRLCCoder(void);
        virtual ~bisupRLCCoder(void);

    private:
        bisupCauseIECoder _cause;
        bisupCallReferenceIECoder _DSID;
};


#endif // __BISUP_BISUPPDUCODERS_H__
