//Editor-Info: -*- C++ -*-
//
//Subject: TOVE project
//
//File: highlayercompatibility.cpp
//
//Version: $Revision: 1.1 $
//
//State: $State: Exp $
//
//Date: $Date: 1999/03/08 06:49:52 $
//
//Organisation:
//      Helsinki University of Technology
//      Laboratory of Telecommunications Software and Multimedia
//
//Author:
//      Teemu Tynjälä
//
//Description:
//      This file provides the description of High Layer Compatibility
//      Information Element for DSS1.  This information element allows the
//      remote user to check compatibilities.  Check out the header file
//      highlayercompatibility.h in this directory.
//
//Copyright:
//      Copyright 1999 Helsinki University of Technology
//      ALL RIGHTS RESERVED BETWEEN JANUARY 1996 AND JUNE 1999.
//
//Licence:
//
//
//History: 

#include "highlayercompatibility.h"

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

ieHighLayerCompatibility :: ieHighLayerCompatibility(
                                     pfByte interpretation_,
                                     pfByte presentationMethod_,
                                     pfByte characteristicsIdent_)
  :  _interpretation(interpretation_),
     _presentationMethod(presentationMethod_),
     _characteristicsIdent(characteristicsIdent_)
{
  return;
}

ieHighLayerCompatibility :: ieHighLayerCompatibility(
                            const ieHighLayerCompatibility &other_)
{
  _interpretation = other_._interpretation;
  _presentationMethod = other_._presentationMethod;
  _characteristicsIdent = other_._characteristicsIdent;
  _extendedCharacteristicsIdent = other_._extendedCharacteristicsIdent;
  return;
}

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

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

const ieHighLayerCompatibility& ieHighLayerCompatibility :: operator=(
                                  const ieHighLayerCompatibility &other_)
{
  if(&other_ != this)
  {
    _interpretation = other_._interpretation;
    _presentationMethod = other_._presentationMethod;
    _characteristicsIdent = other_._characteristicsIdent;
    _extendedCharacteristicsIdent = other_._extendedCharacteristicsIdent;
  }
  return *this;
}


pfIE* ieHighLayerCompatibility :: clone(void) const
{
  ieHighLayerCompatibility *newIe = new ieHighLayerCompatibility(*this);
  return (pfIE *)newIe;
}

ieHighLayerCompatibility* ieHighLayerCompatibility :: narrow(pfIE *ie_)
{
  ieHighLayerCompatibility *result =
            dynamic_cast<ieHighLayerCompatibility*>(ie_);
  THROW_IF_DYNAMIC_CAST_FAILED(result);
  return result;
}

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

void ieHighLayerCompatibility :: setInterpretation(pfByte value_)
{
  _interpretation = value_;
  return;
}

pfByte ieHighLayerCompatibility :: getInterpretation(void) const
{
  return _interpretation;
}

void ieHighLayerCompatibility :: setPresentationMethod(pfByte value_)
{
  _presentationMethod = value_;
}

pfByte ieHighLayerCompatibility :: getPresentationMethod(void) const
{
  return _presentationMethod;
}

void ieHighLayerCompatibility :: setCharacteristicsIdent(pfByte value_)
{
  _characteristicsIdent = value_;
  return;
}

pfByte ieHighLayerCompatibility :: getCharacteristicsIdent(void) const
{
  return _characteristicsIdent;
}

void ieHighLayerCompatibility :: setExtendedCharacteristicsIdent(pfByte value_)
{
  _extendedCharacteristicsIdent = value_;
  return;
}

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



