//Editor-Info: -*- C++ -*-
//
//Subject: TOVE project / MTP protocol 
//
//File: mtp3colleague.h
//
//Version: $Revision: 1.10 $
//
//State: $State: Exp $
//
//Date: $Date: 1998/04/20 08:36:00 $
//
//Organisation:
//      Helsinki University of Technology
//      Laboratory of Telecommunications Software and Multimedia
//
//Author:
//      Timo Pärnänen
//      Petteri Koponen
//
//Description:
//
//Copyright:
//
//
//Licence:
//
//
//History:

#ifndef __MTP3_COLLEAGUE_H__
#define __MTP3_COLLEAGUE_H__

#include "pf/protocol.h"
#include "common/ss7configure.h"
#include "mtp3methodinterface.h"

class pfMessenger;
class mtp3Protocol;

//
//Class: mtp3Colleague
//
//Inherits: pfProtocol,
//          mtp3MethodInterface
//          
//Description:
//
//

class mtp3Colleague : public pfProtocol,
                      public mtp3MethodInterface
{
    public:      
        mtp3Colleague(mtp3Protocol *protocol_, ss7Configure &configure_);
        virtual ~mtp3Colleague(void);
  
        void setId(pfId id_);    
        void accept(pfMessenger *messenger_);
    
        // neighboring levels. Note that these are asynchronous!
        virtual void toLevel2(pfMessenger *messenger_);
        virtual void toLevel4(pfMessenger *messenger_);
	
        // signalling message handling blocks
        virtual void toHMDC(pfMessenger *messenger_);
        virtual void toHMDT(pfMessenger *messenger_);
	virtual void toHMRT(pfMessenger *messenger_);

    protected:
        mtp3Protocol *_protocol;
        ss7Configure _configure;
};

#endif // __MTP3_COLLEAGUE_H__
