//Editor-Info: -*- C++ -*-
//
//Subject: TOVE project / SCCP protocol
//
//File: sccpstate.h
//
//Version: $Revision: 1.4 $
//
//State: $State: Exp $
//
//Date: $Date: 1998/02/04 19:06:26 $
//
//Organisation:
//      Helsinki University of Technology
//      Laboratory of Telecommunications Software and Multimedia
//
//Author:
//      Timo Pärnänen
//
//Description:
//      Definitions for base class of SCCP state machine.
//
//Copyright:
//
//
//Licence:
//
//
//History: 

#ifndef __SCCP_STATE_H__
#define __SCCP_STATE_H__

#include "iface/sccpif/sccpdownprimitives.h"
#include "iface/mtpif/mtpupprimitives.h"
#include "sccppdus.h"

//
//Class: sccpState
//
//Description:
//    Base class for all SCCP states.
//

class sccpState : public pfState,
                  public sccpDownInputs,
                  public mtpUpInputs
{
    public:
        // Pdus
        virtual void sccpUDTpduAct(sccpUDTpdu *messenger_,
                                   pfProtocol *protocol_);
        
        // primitives from upper layer
        virtual void sccpN_UNITDATAreqAct(sccpN_UNITDATAreq *messenger_,
                                          pfProtocol *protocol_);
        
        // primitives from lower layer
        virtual void mtpTRANSFERindAct(
            mtpTRANSFERind *messenger_, pfProtocol *protocol_);
        virtual void mtpPAUSEindAct(
            mtpPAUSEind *messenger_, pfProtocol *protocol_);
        virtual void mtpRESUMEindAct(
            mtpRESUMEind *messenger_, pfProtocol *protocol_);
        virtual void mtpSTATUSindAct(
            mtpSTATUSind *messenger_, pfProtocol *protocol_);
};

#endif // __SCCP_STATE_H__
