/*****************************************************************************

 @(#) $Id: L2_Codec.H,v 1.3 2000/10/13 15:45:51 brian Exp $

 -----------------------------------------------------------------------------

 Copyright (C) 1997-2000  Brian Bidulock <bidulock@dallas.net>

 All Rights Reserved.

 This library is free software; you can redistribute it and/or modify it under
 the terms of the GNU Lesser General Public License as published by the Free
 Software Foundation; either version 2.1 of the License, or (at your option)
 any later version.
 
 This library is distributed in the hope that it will be useful, but WITHOUT
 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 FOR A PARTICULAR PURPOSE.  See the GNU Lesser Public License for more
 details.
 
 You should have received a copy of the GNU Lesser General Public License
 along with this library; if not, write to the Free Software Foundation, Inc.,
 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

 Last Modified $Date: 2000/10/13 15:45:51 $ by $Author: brian $

 -----------------------------------------------------------------------------

 $Log: L2_Codec.H,v $
 Revision 1.3  2000/10/13 15:45:51  brian
 First public release.

 *****************************************************************************/

#ifndef __SS7_L2_CODEC_H__
#define __SS7_L2_CODEC_H__

#include "Codec.H"

class Codec_FISU;
class Codec_LSSU;
class Codec_MSU;

class Codec_SU : public Header {
    private:
    protected:
    public:
        Field*  BSN; 
        Field*  BIB;
        Field*  FSN;
        Field*  FIB;
        Field*  LI ;
        Bra*    LI_B;

        Codec_FISU*   FISU;
        Codec_LSSU*   LSSU;
        Codec_LSSU*   LSS2;
        Codec_MSU*    MSU;

        void decode(FramePointer&);     // decode method
        void encode(FramePointer&);     // encode method

        Codec_SU();
    };

class Codec_FISU : public Content {
    public:
        Codec_FISU(char*,char*);
    };

class Codec_LSSU : public Content {
    public:
        Set*    SF;
        
        Codec_LSSU(char*,char*,int);
    };

class Codec_MSU : public Content {
    public:
        OctetString*    PDU;

        Codec_MSU(char*,char*);
    };

#endif __SS7_L2_CODEC_H__
