//
// cisco-h225.cxx
//
// Code automatically generated by asnparse.
//

#ifdef P_USE_PRAGMA
#pragma implementation "cisco-h225.h"
#endif

#include <ptlib.h>
#include "cisco-h225.h"

#define new PNEW


#if ! H323_DISABLE_CISCO_H225

//
// RedirectIEinfo
//

CISCO_H225_RedirectIEinfo::CISCO_H225_RedirectIEinfo(unsigned tag, PASN_Object::TagClass tagClass)
  : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
{
}


#ifndef PASN_NOPRINTON
void CISCO_H225_RedirectIEinfo::PrintOn(ostream & strm) const
{
  int indent = strm.precision() + 2;
  strm << "{\n";
  strm << setw(indent+13) << "redirectIE = " << setprecision(indent) << m_redirectIE << '\n';
  strm << setw(indent-1) << setprecision(indent-2) << "}";
}
#endif


PObject::Comparison CISCO_H225_RedirectIEinfo::Compare(const PObject & obj) const
{
#ifndef PASN_LEANANDMEAN
  PAssert(PIsDescendant(&obj, CISCO_H225_RedirectIEinfo), PInvalidCast);
#endif
  const CISCO_H225_RedirectIEinfo & other = (const CISCO_H225_RedirectIEinfo &)obj;

  Comparison result;

  if ((result = m_redirectIE.Compare(other.m_redirectIE)) != EqualTo)
    return result;

  return PASN_Sequence::Compare(other);
}


PINDEX CISCO_H225_RedirectIEinfo::GetDataLength() const
{
  PINDEX length = 0;
  length += m_redirectIE.GetObjectLength();
  return length;
}


PBoolean CISCO_H225_RedirectIEinfo::Decode(PASN_Stream & strm)
{
  if (!PreambleDecode(strm))
    return FALSE;

  if (!m_redirectIE.Decode(strm))
    return FALSE;

  return UnknownExtensionsDecode(strm);
}


void CISCO_H225_RedirectIEinfo::Encode(PASN_Stream & strm) const
{
  PreambleEncode(strm);

  m_redirectIE.Encode(strm);

  UnknownExtensionsEncode(strm);
}


PObject * CISCO_H225_RedirectIEinfo::Clone() const
{
#ifndef PASN_LEANANDMEAN
  PAssert(IsClass(CISCO_H225_RedirectIEinfo::Class()), PInvalidCast);
#endif
  return new CISCO_H225_RedirectIEinfo(*this);
}


//
// ProgIndIEinfo
//

CISCO_H225_ProgIndIEinfo::CISCO_H225_ProgIndIEinfo(unsigned tag, PASN_Object::TagClass tagClass)
  : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
{
}


#ifndef PASN_NOPRINTON
void CISCO_H225_ProgIndIEinfo::PrintOn(ostream & strm) const
{
  int indent = strm.precision() + 2;
  strm << "{\n";
  strm << setw(indent+12) << "progIndIE = " << setprecision(indent) << m_progIndIE << '\n';
  strm << setw(indent-1) << setprecision(indent-2) << "}";
}
#endif


PObject::Comparison CISCO_H225_ProgIndIEinfo::Compare(const PObject & obj) const
{
#ifndef PASN_LEANANDMEAN
  PAssert(PIsDescendant(&obj, CISCO_H225_ProgIndIEinfo), PInvalidCast);
#endif
  const CISCO_H225_ProgIndIEinfo & other = (const CISCO_H225_ProgIndIEinfo &)obj;

  Comparison result;

  if ((result = m_progIndIE.Compare(other.m_progIndIE)) != EqualTo)
    return result;

  return PASN_Sequence::Compare(other);
}


PINDEX CISCO_H225_ProgIndIEinfo::GetDataLength() const
{
  PINDEX length = 0;
  length += m_progIndIE.GetObjectLength();
  return length;
}


PBoolean CISCO_H225_ProgIndIEinfo::Decode(PASN_Stream & strm)
{
  if (!PreambleDecode(strm))
    return FALSE;

  if (!m_progIndIE.Decode(strm))
    return FALSE;

  return UnknownExtensionsDecode(strm);
}


void CISCO_H225_ProgIndIEinfo::Encode(PASN_Stream & strm) const
{
  PreambleEncode(strm);

  m_progIndIE.Encode(strm);

  UnknownExtensionsEncode(strm);
}


PObject * CISCO_H225_ProgIndIEinfo::Clone() const
{
#ifndef PASN_LEANANDMEAN
  PAssert(IsClass(CISCO_H225_ProgIndIEinfo::Class()), PInvalidCast);
#endif
  return new CISCO_H225_ProgIndIEinfo(*this);
}


//
// QsigNonStdInfo
//

CISCO_H225_QsigNonStdInfo::CISCO_H225_QsigNonStdInfo(unsigned tag, PASN_Object::TagClass tagClass)
  : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
{
}


#ifndef PASN_NOPRINTON
void CISCO_H225_QsigNonStdInfo::PrintOn(ostream & strm) const
{
  int indent = strm.precision() + 2;
  strm << "{\n";
  strm << setw(indent+6) << "iei = " << setprecision(indent) << m_iei << '\n';
  strm << setw(indent+10) << "rawMesg = " << setprecision(indent) << m_rawMesg << '\n';
  strm << setw(indent-1) << setprecision(indent-2) << "}";
}
#endif


PObject::Comparison CISCO_H225_QsigNonStdInfo::Compare(const PObject & obj) const
{
#ifndef PASN_LEANANDMEAN
  PAssert(PIsDescendant(&obj, CISCO_H225_QsigNonStdInfo), PInvalidCast);
#endif
  const CISCO_H225_QsigNonStdInfo & other = (const CISCO_H225_QsigNonStdInfo &)obj;

  Comparison result;

  if ((result = m_iei.Compare(other.m_iei)) != EqualTo)
    return result;
  if ((result = m_rawMesg.Compare(other.m_rawMesg)) != EqualTo)
    return result;

  return PASN_Sequence::Compare(other);
}


PINDEX CISCO_H225_QsigNonStdInfo::GetDataLength() const
{
  PINDEX length = 0;
  length += m_iei.GetObjectLength();
  length += m_rawMesg.GetObjectLength();
  return length;
}


PBoolean CISCO_H225_QsigNonStdInfo::Decode(PASN_Stream & strm)
{
  if (!PreambleDecode(strm))
    return FALSE;

  if (!m_iei.Decode(strm))
    return FALSE;
  if (!m_rawMesg.Decode(strm))
    return FALSE;

  return UnknownExtensionsDecode(strm);
}


void CISCO_H225_QsigNonStdInfo::Encode(PASN_Stream & strm) const
{
  PreambleEncode(strm);

  m_iei.Encode(strm);
  m_rawMesg.Encode(strm);

  UnknownExtensionsEncode(strm);
}


PObject * CISCO_H225_QsigNonStdInfo::Clone() const
{
#ifndef PASN_LEANANDMEAN
  PAssert(IsClass(CISCO_H225_QsigNonStdInfo::Class()), PInvalidCast);
#endif
  return new CISCO_H225_QsigNonStdInfo(*this);
}


//
// CallMgrParam
//

CISCO_H225_CallMgrParam::CISCO_H225_CallMgrParam(unsigned tag, PASN_Object::TagClass tagClass)
  : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
{
}


#ifndef PASN_NOPRINTON
void CISCO_H225_CallMgrParam::PrintOn(ostream & strm) const
{
  int indent = strm.precision() + 2;
  strm << "{\n";
  strm << setw(indent+22) << "interclusterVersion = " << setprecision(indent) << m_interclusterVersion << '\n';
  strm << setw(indent+15) << "enterpriseID = " << setprecision(indent) << m_enterpriseID << '\n';
  strm << setw(indent-1) << setprecision(indent-2) << "}";
}
#endif


PObject::Comparison CISCO_H225_CallMgrParam::Compare(const PObject & obj) const
{
#ifndef PASN_LEANANDMEAN
  PAssert(PIsDescendant(&obj, CISCO_H225_CallMgrParam), PInvalidCast);
#endif
  const CISCO_H225_CallMgrParam & other = (const CISCO_H225_CallMgrParam &)obj;

  Comparison result;

  if ((result = m_interclusterVersion.Compare(other.m_interclusterVersion)) != EqualTo)
    return result;
  if ((result = m_enterpriseID.Compare(other.m_enterpriseID)) != EqualTo)
    return result;

  return PASN_Sequence::Compare(other);
}


PINDEX CISCO_H225_CallMgrParam::GetDataLength() const
{
  PINDEX length = 0;
  length += m_interclusterVersion.GetObjectLength();
  length += m_enterpriseID.GetObjectLength();
  return length;
}


PBoolean CISCO_H225_CallMgrParam::Decode(PASN_Stream & strm)
{
  if (!PreambleDecode(strm))
    return FALSE;

  if (!m_interclusterVersion.Decode(strm))
    return FALSE;
  if (!m_enterpriseID.Decode(strm))
    return FALSE;

  return UnknownExtensionsDecode(strm);
}


void CISCO_H225_CallMgrParam::Encode(PASN_Stream & strm) const
{
  PreambleEncode(strm);

  m_interclusterVersion.Encode(strm);
  m_enterpriseID.Encode(strm);

  UnknownExtensionsEncode(strm);
}


PObject * CISCO_H225_CallMgrParam::Clone() const
{
#ifndef PASN_LEANANDMEAN
  PAssert(IsClass(CISCO_H225_CallMgrParam::Class()), PInvalidCast);
#endif
  return new CISCO_H225_CallMgrParam(*this);
}


//
// CallPreserveParam
//

CISCO_H225_CallPreserveParam::CISCO_H225_CallPreserveParam(unsigned tag, PASN_Object::TagClass tagClass)
  : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
{
}


#ifndef PASN_NOPRINTON
void CISCO_H225_CallPreserveParam::PrintOn(ostream & strm) const
{
  int indent = strm.precision() + 2;
  strm << "{\n";
  strm << setw(indent+17) << "callPreserveIE = " << setprecision(indent) << m_callPreserveIE << '\n';
  strm << setw(indent-1) << setprecision(indent-2) << "}";
}
#endif


PObject::Comparison CISCO_H225_CallPreserveParam::Compare(const PObject & obj) const
{
#ifndef PASN_LEANANDMEAN
  PAssert(PIsDescendant(&obj, CISCO_H225_CallPreserveParam), PInvalidCast);
#endif
  const CISCO_H225_CallPreserveParam & other = (const CISCO_H225_CallPreserveParam &)obj;

  Comparison result;

  if ((result = m_callPreserveIE.Compare(other.m_callPreserveIE)) != EqualTo)
    return result;

  return PASN_Sequence::Compare(other);
}


PINDEX CISCO_H225_CallPreserveParam::GetDataLength() const
{
  PINDEX length = 0;
  length += m_callPreserveIE.GetObjectLength();
  return length;
}


PBoolean CISCO_H225_CallPreserveParam::Decode(PASN_Stream & strm)
{
  if (!PreambleDecode(strm))
    return FALSE;

  if (!m_callPreserveIE.Decode(strm))
    return FALSE;

  return UnknownExtensionsDecode(strm);
}


void CISCO_H225_CallPreserveParam::Encode(PASN_Stream & strm) const
{
  PreambleEncode(strm);

  m_callPreserveIE.Encode(strm);

  UnknownExtensionsEncode(strm);
}


PObject * CISCO_H225_CallPreserveParam::Clone() const
{
#ifndef PASN_LEANANDMEAN
  PAssert(IsClass(CISCO_H225_CallPreserveParam::Class()), PInvalidCast);
#endif
  return new CISCO_H225_CallPreserveParam(*this);
}


//
// CallSignallingParam
//

CISCO_H225_CallSignallingParam::CISCO_H225_CallSignallingParam(unsigned tag, PASN_Object::TagClass tagClass)
  : PASN_Sequence(tag, tagClass, 1, TRUE, 0)
{
  m_connectedNumber.SetConstraints(PASN_Object::FixedConstraint, 1, 127);
}


#ifndef PASN_NOPRINTON
void CISCO_H225_CallSignallingParam::PrintOn(ostream & strm) const
{
  int indent = strm.precision() + 2;
  strm << "{\n";
  if (HasOptionalField(e_connectedNumber))
    strm << setw(indent+18) << "connectedNumber = " << setprecision(indent) << m_connectedNumber << '\n';
  strm << setw(indent-1) << setprecision(indent-2) << "}";
}
#endif


PObject::Comparison CISCO_H225_CallSignallingParam::Compare(const PObject & obj) const
{
#ifndef PASN_LEANANDMEAN
  PAssert(PIsDescendant(&obj, CISCO_H225_CallSignallingParam), PInvalidCast);
#endif
  const CISCO_H225_CallSignallingParam & other = (const CISCO_H225_CallSignallingParam &)obj;

  Comparison result;

  if ((result = m_connectedNumber.Compare(other.m_connectedNumber)) != EqualTo)
    return result;

  return PASN_Sequence::Compare(other);
}


PINDEX CISCO_H225_CallSignallingParam::GetDataLength() const
{
  PINDEX length = 0;
  if (HasOptionalField(e_connectedNumber))
    length += m_connectedNumber.GetObjectLength();
  return length;
}


PBoolean CISCO_H225_CallSignallingParam::Decode(PASN_Stream & strm)
{
  if (!PreambleDecode(strm))
    return FALSE;

  if (HasOptionalField(e_connectedNumber) && !m_connectedNumber.Decode(strm))
    return FALSE;

  return UnknownExtensionsDecode(strm);
}


void CISCO_H225_CallSignallingParam::Encode(PASN_Stream & strm) const
{
  PreambleEncode(strm);

  if (HasOptionalField(e_connectedNumber))
    m_connectedNumber.Encode(strm);

  UnknownExtensionsEncode(strm);
}


PObject * CISCO_H225_CallSignallingParam::Clone() const
{
#ifndef PASN_LEANANDMEAN
  PAssert(IsClass(CISCO_H225_CallSignallingParam::Class()), PInvalidCast);
#endif
  return new CISCO_H225_CallSignallingParam(*this);
}


//
// CommonParam
//

CISCO_H225_CommonParam::CISCO_H225_CommonParam(unsigned tag, PASN_Object::TagClass tagClass)
  : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
{
}


#ifndef PASN_NOPRINTON
void CISCO_H225_CommonParam::PrintOn(ostream & strm) const
{
  int indent = strm.precision() + 2;
  strm << "{\n";
  strm << setw(indent+17) << "redirectIEinfo = " << setprecision(indent) << m_redirectIEinfo << '\n';
  strm << setw(indent-1) << setprecision(indent-2) << "}";
}
#endif


PObject::Comparison CISCO_H225_CommonParam::Compare(const PObject & obj) const
{
#ifndef PASN_LEANANDMEAN
  PAssert(PIsDescendant(&obj, CISCO_H225_CommonParam), PInvalidCast);
#endif
  const CISCO_H225_CommonParam & other = (const CISCO_H225_CommonParam &)obj;

  Comparison result;

  if ((result = m_redirectIEinfo.Compare(other.m_redirectIEinfo)) != EqualTo)
    return result;

  return PASN_Sequence::Compare(other);
}


PINDEX CISCO_H225_CommonParam::GetDataLength() const
{
  PINDEX length = 0;
  length += m_redirectIEinfo.GetObjectLength();
  return length;
}


PBoolean CISCO_H225_CommonParam::Decode(PASN_Stream & strm)
{
  if (!PreambleDecode(strm))
    return FALSE;

  if (!m_redirectIEinfo.Decode(strm))
    return FALSE;

  return UnknownExtensionsDecode(strm);
}


void CISCO_H225_CommonParam::Encode(PASN_Stream & strm) const
{
  PreambleEncode(strm);

  m_redirectIEinfo.Encode(strm);

  UnknownExtensionsEncode(strm);
}


PObject * CISCO_H225_CommonParam::Clone() const
{
#ifndef PASN_LEANANDMEAN
  PAssert(IsClass(CISCO_H225_CommonParam::Class()), PInvalidCast);
#endif
  return new CISCO_H225_CommonParam(*this);
}


//
// ProgIndParam
//

CISCO_H225_ProgIndParam::CISCO_H225_ProgIndParam(unsigned tag, PASN_Object::TagClass tagClass)
  : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
{
}


#ifndef PASN_NOPRINTON
void CISCO_H225_ProgIndParam::PrintOn(ostream & strm) const
{
  int indent = strm.precision() + 2;
  strm << "{\n";
  strm << setw(indent+16) << "progIndIEinfo = " << setprecision(indent) << m_progIndIEinfo << '\n';
  strm << setw(indent-1) << setprecision(indent-2) << "}";
}
#endif


PObject::Comparison CISCO_H225_ProgIndParam::Compare(const PObject & obj) const
{
#ifndef PASN_LEANANDMEAN
  PAssert(PIsDescendant(&obj, CISCO_H225_ProgIndParam), PInvalidCast);
#endif
  const CISCO_H225_ProgIndParam & other = (const CISCO_H225_ProgIndParam &)obj;

  Comparison result;

  if ((result = m_progIndIEinfo.Compare(other.m_progIndIEinfo)) != EqualTo)
    return result;

  return PASN_Sequence::Compare(other);
}


PINDEX CISCO_H225_ProgIndParam::GetDataLength() const
{
  PINDEX length = 0;
  length += m_progIndIEinfo.GetObjectLength();
  return length;
}


PBoolean CISCO_H225_ProgIndParam::Decode(PASN_Stream & strm)
{
  if (!PreambleDecode(strm))
    return FALSE;

  if (!m_progIndIEinfo.Decode(strm))
    return FALSE;

  return UnknownExtensionsDecode(strm);
}


void CISCO_H225_ProgIndParam::Encode(PASN_Stream & strm) const
{
  PreambleEncode(strm);

  m_progIndIEinfo.Encode(strm);

  UnknownExtensionsEncode(strm);
}


PObject * CISCO_H225_ProgIndParam::Clone() const
{
#ifndef PASN_LEANANDMEAN
  PAssert(IsClass(CISCO_H225_ProgIndParam::Class()), PInvalidCast);
#endif
  return new CISCO_H225_ProgIndParam(*this);
}


//
// ProtoParam
//

CISCO_H225_ProtoParam::CISCO_H225_ProtoParam(unsigned tag, PASN_Object::TagClass tagClass)
  : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
{
}


#ifndef PASN_NOPRINTON
void CISCO_H225_ProtoParam::PrintOn(ostream & strm) const
{
  int indent = strm.precision() + 2;
  strm << "{\n";
  strm << setw(indent+17) << "qsigNonStdInfo = " << setprecision(indent) << m_qsigNonStdInfo << '\n';
  strm << setw(indent-1) << setprecision(indent-2) << "}";
}
#endif


PObject::Comparison CISCO_H225_ProtoParam::Compare(const PObject & obj) const
{
#ifndef PASN_LEANANDMEAN
  PAssert(PIsDescendant(&obj, CISCO_H225_ProtoParam), PInvalidCast);
#endif
  const CISCO_H225_ProtoParam & other = (const CISCO_H225_ProtoParam &)obj;

  Comparison result;

  if ((result = m_qsigNonStdInfo.Compare(other.m_qsigNonStdInfo)) != EqualTo)
    return result;

  return PASN_Sequence::Compare(other);
}


PINDEX CISCO_H225_ProtoParam::GetDataLength() const
{
  PINDEX length = 0;
  length += m_qsigNonStdInfo.GetObjectLength();
  return length;
}


PBoolean CISCO_H225_ProtoParam::Decode(PASN_Stream & strm)
{
  if (!PreambleDecode(strm))
    return FALSE;

  if (!m_qsigNonStdInfo.Decode(strm))
    return FALSE;

  return UnknownExtensionsDecode(strm);
}


void CISCO_H225_ProtoParam::Encode(PASN_Stream & strm) const
{
  PreambleEncode(strm);

  m_qsigNonStdInfo.Encode(strm);

  UnknownExtensionsEncode(strm);
}


PObject * CISCO_H225_ProtoParam::Clone() const
{
#ifndef PASN_LEANANDMEAN
  PAssert(IsClass(CISCO_H225_ProtoParam::Class()), PInvalidCast);
#endif
  return new CISCO_H225_ProtoParam(*this);
}


//
// H323_UU_NonStdInfo
//

CISCO_H225_H323_UU_NonStdInfo::CISCO_H225_H323_UU_NonStdInfo(unsigned tag, PASN_Object::TagClass tagClass)
  : PASN_Sequence(tag, tagClass, 3, TRUE, 6)
{
}


#ifndef PASN_NOPRINTON
void CISCO_H225_H323_UU_NonStdInfo::PrintOn(ostream & strm) const
{
  int indent = strm.precision() + 2;
  strm << "{\n";
  if (HasOptionalField(e_version))
    strm << setw(indent+10) << "version = " << setprecision(indent) << m_version << '\n';
  if (HasOptionalField(e_protoParam))
    strm << setw(indent+13) << "protoParam = " << setprecision(indent) << m_protoParam << '\n';
  if (HasOptionalField(e_commonParam))
    strm << setw(indent+14) << "commonParam = " << setprecision(indent) << m_commonParam << '\n';
  if (HasOptionalField(e_dummy1))
    strm << setw(indent+9) << "dummy1 = " << setprecision(indent) << m_dummy1 << '\n';
  if (HasOptionalField(e_progIndParam))
    strm << setw(indent+15) << "progIndParam = " << setprecision(indent) << m_progIndParam << '\n';
  if (HasOptionalField(e_callMgrParam))
    strm << setw(indent+15) << "callMgrParam = " << setprecision(indent) << m_callMgrParam << '\n';
  if (HasOptionalField(e_callSignallingParam))
    strm << setw(indent+22) << "callSignallingParam = " << setprecision(indent) << m_callSignallingParam << '\n';
  if (HasOptionalField(e_dummy2))
    strm << setw(indent+9) << "dummy2 = " << setprecision(indent) << m_dummy2 << '\n';
  if (HasOptionalField(e_callPreserveParam))
    strm << setw(indent+20) << "callPreserveParam = " << setprecision(indent) << m_callPreserveParam << '\n';
  strm << setw(indent-1) << setprecision(indent-2) << "}";
}
#endif


PObject::Comparison CISCO_H225_H323_UU_NonStdInfo::Compare(const PObject & obj) const
{
#ifndef PASN_LEANANDMEAN
  PAssert(PIsDescendant(&obj, CISCO_H225_H323_UU_NonStdInfo), PInvalidCast);
#endif
  const CISCO_H225_H323_UU_NonStdInfo & other = (const CISCO_H225_H323_UU_NonStdInfo &)obj;

  Comparison result;

  if ((result = m_version.Compare(other.m_version)) != EqualTo)
    return result;
  if ((result = m_protoParam.Compare(other.m_protoParam)) != EqualTo)
    return result;
  if ((result = m_commonParam.Compare(other.m_commonParam)) != EqualTo)
    return result;

  return PASN_Sequence::Compare(other);
}


PINDEX CISCO_H225_H323_UU_NonStdInfo::GetDataLength() const
{
  PINDEX length = 0;
  if (HasOptionalField(e_version))
    length += m_version.GetObjectLength();
  if (HasOptionalField(e_protoParam))
    length += m_protoParam.GetObjectLength();
  if (HasOptionalField(e_commonParam))
    length += m_commonParam.GetObjectLength();
  return length;
}


PBoolean CISCO_H225_H323_UU_NonStdInfo::Decode(PASN_Stream & strm)
{
  if (!PreambleDecode(strm))
    return FALSE;

  if (HasOptionalField(e_version) && !m_version.Decode(strm))
    return FALSE;
  if (HasOptionalField(e_protoParam) && !m_protoParam.Decode(strm))
    return FALSE;
  if (HasOptionalField(e_commonParam) && !m_commonParam.Decode(strm))
    return FALSE;
  if (!KnownExtensionDecode(strm, e_dummy1, m_dummy1))
    return FALSE;
  if (!KnownExtensionDecode(strm, e_progIndParam, m_progIndParam))
    return FALSE;
  if (!KnownExtensionDecode(strm, e_callMgrParam, m_callMgrParam))
    return FALSE;
  if (!KnownExtensionDecode(strm, e_callSignallingParam, m_callSignallingParam))
    return FALSE;
  if (!KnownExtensionDecode(strm, e_dummy2, m_dummy2))
    return FALSE;
  if (!KnownExtensionDecode(strm, e_callPreserveParam, m_callPreserveParam))
    return FALSE;

  return UnknownExtensionsDecode(strm);
}


void CISCO_H225_H323_UU_NonStdInfo::Encode(PASN_Stream & strm) const
{
  PreambleEncode(strm);

  if (HasOptionalField(e_version))
    m_version.Encode(strm);
  if (HasOptionalField(e_protoParam))
    m_protoParam.Encode(strm);
  if (HasOptionalField(e_commonParam))
    m_commonParam.Encode(strm);
  KnownExtensionEncode(strm, e_dummy1, m_dummy1);
  KnownExtensionEncode(strm, e_progIndParam, m_progIndParam);
  KnownExtensionEncode(strm, e_callMgrParam, m_callMgrParam);
  KnownExtensionEncode(strm, e_callSignallingParam, m_callSignallingParam);
  KnownExtensionEncode(strm, e_dummy2, m_dummy2);
  KnownExtensionEncode(strm, e_callPreserveParam, m_callPreserveParam);

  UnknownExtensionsEncode(strm);
}


PObject * CISCO_H225_H323_UU_NonStdInfo::Clone() const
{
#ifndef PASN_LEANANDMEAN
  PAssert(IsClass(CISCO_H225_H323_UU_NonStdInfo::Class()), PInvalidCast);
#endif
  return new CISCO_H225_H323_UU_NonStdInfo(*this);
}


#endif // if ! H323_DISABLE_CISCO_H225


// End of cisco-h225.cxx
