//Editor-Info: -*- C++ -*-
//
//Subject: TOVE project / MTP interface
//
//File: mtpdownprimitives.h
//
//Version: $Revision: 1.10 $
//
//State: $State: Exp $
//
//Date: $Date: 1997/09/08 13:23:08 $
//
//Organisation:
//      Helsinki University of Technology
//      Laboratory of Telecommunications Software and Multimedia
//
//Author:
//      Petteri Koponen
//      Timo Pärnänen
//
//Description:
//      Class definitions of the messengers coming to MTP3 from above layer
//      (eg. BISUP).
//
//Copyright:
//
//
//Licence:
//
//
//History: 

#ifndef __MTP_DOWNPRIMITIVES_H__
#define __MTP_DOWNPRIMITIVES_H__

#include "pf/messenge.h"

class pfProtocol;
class pfState;
class pfFrame;

//Class: mtpTRANSFERreq
//
//Inherited: pfMessenger
//
//Description:
//      This primitive is used by MTP User Part to access the
//      signalling message handling functions of the MTP. Original
//      two-way MTP_TRANSFER primive is divided into two primitives
//      (request and indication) in this implementation to achieve
//      consistency between this and the other interface implementations.
//
//      Recommendations: Q.704, Q.2761 (MTP_TRANSFER)
//

class mtpTRANSFERreq : public pfMessenger
{
    public:
	// constructors & destructor
	mtpTRANSFERreq(void);
        virtual ~mtpTRANSFERreq(void);
        
        virtual void apply(pfState *state_, pfProtocol *protocol_);
        
	// access functions
	void setDestinationPointCode(pfUlong destinationPointCode_);
	pfUlong getDestinationPointCode(void) const;
        void setOriginatingPointCode(pfUlong originatingPointCode_);
	pfUlong getOriginatingPointCode(void) const;
        void setSignallingLinkSelection(pfUlong signallingLinkSelection_);
	pfUlong getSignallingLinkSelection(void) const;
        void setServiceInformationOctet(pfUlong serviceInformationOctet_);
        pfUlong getServiceInformationOctet(void) const;
	void setSignallingInformation(pfFrame &signallingInformation_);
	pfFrame getSignallingInformation(void) const;
};

class mtpDownInputs
{
    public:
        virtual void mtpTRANSFERreqAct(
            mtpTRANSFERreq *messenger_,
            pfProtocol *protocol_) = 0;
};

#endif // ___MTP_DOWNPRIMITIVES_H__
