//Editor-Info: -*- C++ -*-
//
//Subject: TOVE project / SIGIF
//
//File: sigdownprimitives.cpp
//
//Version: $Revision: 1.32 $
//
//State: $State: Exp $
//
//Date: $Date: 1999/03/08 07:28:25 $
//
//Organisation:
//      Helsinki University of Technology
//      Laboratory of Telecommunications Software and Multimedia
//
//Author:
//      Jari Katajavuori
//      Sami Raatikainen
//
//Description:
//      Messages for signaling interface down direction (requests and
//      responses)
//
//Copyright:
//
//
//Licence:
//
//
//History: 
//

#include "sigdownprimitives.h"
#include "pf/error.h"

//---------------------------------------------------------------------

sigSETUPreq :: sigSETUPreq(void)
    : sigPrimitive()
{
    defineAALParameters();
    defineATMTrafficDescriptor();
    defineBroadbandBearerCapability();
    defineBroadbandLowLayerInfo();
    defineCalledPartyNumber();
    defineCallingPartyNumber();
    defineConnectionIdentifier();
    defineQoSParameters();
    
    return;
}

sigSETUPreq :: ~sigSETUPreq(void)
{
    return;
}

void sigSETUPreq :: apply(pfState *state_, pfProtocol *protocol_)
{
    sigDownInputs *downInput = dynamic_cast<sigDownInputs*>(state_);
    THROW_IF_DYNAMIC_CAST_FAILED(downInput);

    downInput->sigSETUPreqAct(this, protocol_);
    return;
}

//---------------------------------------------------------------------

sigPROCEEDINGreq :: sigPROCEEDINGreq(void)
    : sigPrimitive()
{
    defineConnectionIdentifier();

    return;
}

sigPROCEEDINGreq :: ~sigPROCEEDINGreq(void)
{
    return;
}

void sigPROCEEDINGreq :: apply(pfState *state_, pfProtocol *protocol_)
{
    sigDownInputs *downInput = dynamic_cast<sigDownInputs*>(state_);
    THROW_IF_DYNAMIC_CAST_FAILED(downInput);
    
    downInput->sigPROCEEDINGreqAct(this, protocol_);
    return;
}

//---------------------------------------------------------------------

sigALERTINGreq :: sigALERTINGreq(void)
    : sigPrimitive()
{
    return;
}

sigALERTINGreq :: ~sigALERTINGreq(void)
{
    return;
}

void sigALERTINGreq :: apply(pfState *state_, pfProtocol *protocol_)
{
    sigDownInputs *downInput = dynamic_cast<sigDownInputs*>(state_);
    THROW_IF_DYNAMIC_CAST_FAILED(downInput);
    
    downInput->sigALERTINGreqAct(this, protocol_);
    return;
}

//---------------------------------------------------------------------

sigPROGRESSreq :: sigPROGRESSreq(void)
    : sigPrimitive()
{
    return;
}

sigPROGRESSreq :: ~sigPROGRESSreq(void)
{
    return;
}

void sigPROGRESSreq :: apply(pfState *state_, pfProtocol *protocol_)
{
    sigDownInputs *downInput = dynamic_cast<sigDownInputs*>(state_);
    THROW_IF_DYNAMIC_CAST_FAILED(downInput);
    
    downInput->sigPROGRESSreqAct(this, protocol_);
    return;
}

//---------------------------------------------------------------------

sigSETUPresp :: sigSETUPresp(void)
    : sigPrimitive()
{
    return;
}

sigSETUPresp :: ~sigSETUPresp(void)
{
    return;
}

void sigSETUPresp :: apply(pfState *state_, pfProtocol *protocol_)
{
    sigDownInputs *downInput = dynamic_cast<sigDownInputs*>(state_);
    THROW_IF_DYNAMIC_CAST_FAILED(downInput);
    
    downInput->sigSETUPrespAct(this, protocol_);
    return;
}

//---------------------------------------------------------------------

sigSETUP_COMPLETEreq :: sigSETUP_COMPLETEreq(void)
    : sigPrimitive()
{
    return;
}

sigSETUP_COMPLETEreq :: ~sigSETUP_COMPLETEreq(void)
{
    return;
}

void sigSETUP_COMPLETEreq :: apply(pfState *state_, pfProtocol *protocol_)
{
    sigDownInputs *downInput = dynamic_cast<sigDownInputs*>(state_);
    THROW_IF_DYNAMIC_CAST_FAILED(downInput);
    
    downInput->sigSETUP_COMPLETEreqAct(this, protocol_);
    return;
}

//---------------------------------------------------------------------

sigRELEASEreq :: sigRELEASEreq(void)
    : sigPrimitive()
{
    defineCause();
    
    return;
}

sigRELEASEreq :: ~sigRELEASEreq(void)
{
    return;
}

void sigRELEASEreq :: apply(pfState *state_, pfProtocol *protocol_)
{
    sigDownInputs *downInput = dynamic_cast<sigDownInputs*>(state_);
    THROW_IF_DYNAMIC_CAST_FAILED(downInput);
    
    downInput->sigRELEASEreqAct(this, protocol_);
    return;
}

//---------------------------------------------------------------------

sigRELEASEresp :: sigRELEASEresp(void)
    : sigPrimitive()
{
    defineCause();
    
    return;
}

sigRELEASEresp :: ~sigRELEASEresp(void)
{
    return;
}

void sigRELEASEresp :: apply(pfState *state_, pfProtocol *protocol_)
{
    sigDownInputs *downInput = dynamic_cast<sigDownInputs*>(state_);
    THROW_IF_DYNAMIC_CAST_FAILED(downInput);
    
    downInput->sigRELEASErespAct(this, protocol_);
    return;
}

//---------------------------------------------------------------------

sigRESETreq :: sigRESETreq(void)
    : sigPrimitive()
{
    return;
}

sigRESETreq :: ~sigRESETreq(void)
{
    return;
}

void sigRESETreq :: apply(pfState *state_, pfProtocol *protocol_)
{
    sigDownInputs *downInput = dynamic_cast<sigDownInputs*>(state_);
    THROW_IF_DYNAMIC_CAST_FAILED(downInput);
    
    downInput->sigRESETreqAct(this, protocol_);
    return;
}

//---------------------------------------------------------------------

sigRESETresp :: sigRESETresp(void)
    : sigPrimitive()
{
    return;
}

sigRESETresp :: ~sigRESETresp(void)
{
    return;
}

void sigRESETresp :: apply(pfState *state_, pfProtocol *protocol_)
{
    sigDownInputs *downInput = dynamic_cast<sigDownInputs*>(state_);
    THROW_IF_DYNAMIC_CAST_FAILED(downInput);
    
    downInput->sigRESETrespAct(this, protocol_);
    return;
}

//---------------------------------------------------------------------

sigRESET_ERRORresp :: sigRESET_ERRORresp(void)
    : sigPrimitive()
{
    return;
}

sigRESET_ERRORresp :: ~sigRESET_ERRORresp(void)
{
    return;
}

void sigRESET_ERRORresp :: apply(pfState *state_, pfProtocol *protocol_)
{
    sigDownInputs *downInput = dynamic_cast<sigDownInputs*>(state_);
    THROW_IF_DYNAMIC_CAST_FAILED(downInput);
    
    downInput->sigRESET_ERRORrespAct(this, protocol_);
    return;
}

//---------------------------------------------------------------------
