//Editor-Info: -*- C++ -*-
//
//Subject: TOVE-project / UNI-AAL interface
//
//File: lapdupprimitives.cpp
//
//Version: $Revision: 1.2 $
//
//State: $State: Exp $
//
//Date: $Date: 1999/02/26 06:38:48 $
//
//Organisation:
//      Helsinki University of Technology
//      Laboratory of Telecommunications and Multimedia
//
//Author:
//	Teemu Tynjälä
//
//Description:
//	See corresponding header file.
//
//Copyright:
//
//
//Licence:
//
//
//History: 
//


#include "lapdupprimitives.h"
#include <assert.h>

//
// Index of Code
//
// 1. lapdESTABLISHind
//    1.1. apply()
//    1.2. setMessageUnit()
//    1.3. getMessageUnit()
// 2. lapdESTABLISHconf
//    2.1. apply()
// 3. lapdRELEASEind
//    3.1. apply()
// 4. lapdDATAind
//    4.1. apply()
//    4.2. setMessageUnit()
//    4.3. getMessageUnit()
//


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

lapdESTABLISHind :: lapdESTABLISHind(void)
  : pfMsgTransporter(0)
{
    return;
}

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

const lapdESTABLISHind& lapdESTABLISHind :: operator=(
                              const lapdESTABLISHind &other_)
{
    return *this;
}  

void lapdESTABLISHind :: apply(pfState *state_, pfProtocol *protocol_)
{
    assert(state_ != 0);
    lapdUpInputs *upInput = dynamic_cast<lapdUpInputs*>(state_);
    assert(upInput != 0);    

    upInput->lapdESTABLISHindAct(this, protocol_);
    return;
}


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

lapdESTABLISHconf :: lapdESTABLISHconf(void)
  : pfMsgTransporter(0)
{
    return;
}

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

const lapdESTABLISHconf& lapdESTABLISHconf :: operator=(
                               const lapdESTABLISHconf &other_)
{
    return *this;
}

void lapdESTABLISHconf :: apply(pfState *state_, pfProtocol *protocol_)
{
    assert(state_ != 0);
    lapdUpInputs *upInput = dynamic_cast<lapdUpInputs*>(state_);
    assert(upInput != 0);    

    upInput->lapdESTABLISHconfAct(this, protocol_);
    return;
}


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

lapdRELEASEind :: lapdRELEASEind(void)
  : pfMsgTransporter(0)
{ 
    return;
}

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

const lapdRELEASEind& lapdRELEASEind :: operator=(
                          const lapdRELEASEind &other_)
{
    return *this;
}


void lapdRELEASEind :: apply(pfState *state_, pfProtocol *protocol_)
{
    assert(state_ != 0);
    lapdUpInputs *upInput = dynamic_cast<lapdUpInputs*>(state_);
    assert(upInput != 0);    

    upInput->lapdRELEASEindAct(this, protocol_);
    return;
}


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

lapdDATAind :: lapdDATAind(void)
  : pfMsgTransporter(0),
    _messageUnit()
{
    return;
}

lapdDATAind :: lapdDATAind(const pfFrame &frame_)
  : pfMsgTransporter(0),
    _messageUnit(frame_)
{
    return;
}

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

const lapdDATAind& lapdDATAind :: operator=(
                      const lapdDATAind &other_)
{
    if (&other_ != this)
    {
      _messageUnit = other_._messageUnit;
    }
    return *this;
}

void lapdDATAind :: apply(pfState *state_, pfProtocol *protocol_)
{
    assert(state_ != 0);
    lapdUpInputs *upInput = dynamic_cast<lapdUpInputs*>(state_);
    assert(upInput != 0);    

    upInput->lapdDATAindAct(this, protocol_);
    return;
}

void lapdDATAind :: setMessageUnit(const pfFrame &frame_)
{
    _messageUnit = frame_;
    return;
}

pfFrame lapdDATAind :: getMessageUnit(void) const
{
    return _messageUnit;
}

