//Editor-Info: -*- C++ -*-
//
//Subject: TOVE-project / SCCP protocol
//
//File: sccpblock_scrc.h
//
//Version: $Revision: 1.6 $
//
//State: $State: Exp $
//
//Date: $Date: 1998/10/19 18:14:50 $
//
//Organisation:
//      Helsinki University of Technology
//      Laboratory of Telecommunications and Multimedia
//
//Author:
//      Timo Pärnänen
//
//Description:
//      This file contains definition of SCCP routing procedures.
//
//Copyright:
//
//
//Licence:
//
//
//History:

#ifndef __SCCP_BLOCK_SCRC_H__
#define __SCCP_BLOCK_SCRC_H__

#include "sccpcolleague.h"

class sccpProtocol;
class sccpPdu;

//
//Class: sccpBlockSCRC
//
//Description:
//      This class implements a context for
//      routing block of SCCP protocol.
//

class sccpBlockSCRC : public sccpColleague
{
    public:
        sccpBlockSCRC(sccpProtocol *protocol_, ss7Configure &configure_);
        virtual ~sccpBlockSCRC(void);

        virtual void toMTP(pfMessenger *messenger_);
        virtual void toSCLC(pfMessenger *messenger_);

        bool isDPCaccessible(pfUlong DPC_) const;
        bool isDPCthisNode(pfUlong DPC_) const;
        bool isSubSystemAvailable(pfUlong SSN_) const;
        
        bool translateAddress(sccpPdu *pdu_, pfUlong &DPC_);
        void sendRoutingFailure(void);
        pfUlong getPointCode(void) const;
};

#endif // __SCCP_BLOCK_SCRC_H__

