home *** CD-ROM | disk | FTP | other *** search
/ ftp.muug.mb.ca / 2014.06.ftp.muug.mb.ca.tar / ftp.muug.mb.ca / pub / openh323.tar.gz / openh323.tar / openh323 / src / h4509.cxx < prev    next >
C/C++ Source or Header  |  2004-06-22  |  16KB  |  634 lines

  1. //
  2. // h4509.cxx
  3. //
  4. // Code automatically generated by asnparse.
  5. //
  6.  
  7. #ifdef __GNUC__
  8. #pragma implementation "h4509.h"
  9. #endif
  10.  
  11. #include <ptlib.h>
  12. #include "h4509.h"
  13.  
  14. #define new PNEW
  15.  
  16.  
  17. #if ! H323_DISABLE_H4509
  18.  
  19.  
  20.  
  21. //
  22. // H323CallCompletionOperations
  23. //
  24.  
  25. H4509_H323CallCompletionOperations::H4509_H323CallCompletionOperations(unsigned tag, PASN_Object::TagClass tagClass)
  26.   : PASN_Enumeration(tag, tagClass, 40, FALSE
  27. #ifndef PASN_NOPRINTON
  28.       , "ccbsRequest=40 "
  29.         "ccnrRequest=27 "
  30.         "ccCancel "
  31.         "ccExecPossible "
  32.         "ccRingout=31 "
  33.         "ccSuspend "
  34.         "ccResume "
  35. #endif
  36.     )
  37. {
  38. }
  39.  
  40.  
  41. H4509_H323CallCompletionOperations & H4509_H323CallCompletionOperations::operator=(unsigned v)
  42. {
  43.   SetValue(v);
  44.   return *this;
  45. }
  46.  
  47.  
  48. PObject * H4509_H323CallCompletionOperations::Clone() const
  49. {
  50. #ifndef PASN_LEANANDMEAN
  51.   PAssert(IsClass(H4509_H323CallCompletionOperations::Class()), PInvalidCast);
  52. #endif
  53.   return new H4509_H323CallCompletionOperations(*this);
  54. }
  55.  
  56.  
  57. //
  58. // CcArg
  59. //
  60.  
  61. H4509_CcArg::H4509_CcArg(unsigned tag, PASN_Object::TagClass tagClass)
  62.   : PASN_Choice(tag, tagClass, 2, TRUE
  63. #ifndef PASN_NOPRINTON
  64.       , "shortArg "
  65.         "longArg "
  66. #endif
  67.     )
  68. {
  69. }
  70.  
  71.  
  72. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  73. H4509_CcArg::operator H4509_CcShortArg &() const
  74. #else
  75. H4509_CcArg::operator H4509_CcShortArg &()
  76. {
  77. #ifndef PASN_LEANANDMEAN
  78.   PAssert(PAssertNULL(choice)->IsDescendant(H4509_CcShortArg::Class()), PInvalidCast);
  79. #endif
  80.   return *(H4509_CcShortArg *)choice;
  81. }
  82.  
  83.  
  84. H4509_CcArg::operator const H4509_CcShortArg &() const
  85. #endif
  86. {
  87. #ifndef PASN_LEANANDMEAN
  88.   PAssert(PAssertNULL(choice)->IsDescendant(H4509_CcShortArg::Class()), PInvalidCast);
  89. #endif
  90.   return *(H4509_CcShortArg *)choice;
  91. }
  92.  
  93.  
  94. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  95. H4509_CcArg::operator H4509_CcLongArg &() const
  96. #else
  97. H4509_CcArg::operator H4509_CcLongArg &()
  98. {
  99. #ifndef PASN_LEANANDMEAN
  100.   PAssert(PAssertNULL(choice)->IsDescendant(H4509_CcLongArg::Class()), PInvalidCast);
  101. #endif
  102.   return *(H4509_CcLongArg *)choice;
  103. }
  104.  
  105.  
  106. H4509_CcArg::operator const H4509_CcLongArg &() const
  107. #endif
  108. {
  109. #ifndef PASN_LEANANDMEAN
  110.   PAssert(PAssertNULL(choice)->IsDescendant(H4509_CcLongArg::Class()), PInvalidCast);
  111. #endif
  112.   return *(H4509_CcLongArg *)choice;
  113. }
  114.  
  115.  
  116. BOOL H4509_CcArg::CreateObject()
  117. {
  118.   switch (tag) {
  119.     case e_shortArg :
  120.       choice = new H4509_CcShortArg();
  121.       return TRUE;
  122.     case e_longArg :
  123.       choice = new H4509_CcLongArg();
  124.       return TRUE;
  125.   }
  126.  
  127.   choice = NULL;
  128.   return FALSE;
  129. }
  130.  
  131.  
  132. PObject * H4509_CcArg::Clone() const
  133. {
  134. #ifndef PASN_LEANANDMEAN
  135.   PAssert(IsClass(H4509_CcArg::Class()), PInvalidCast);
  136. #endif
  137.   return new H4509_CcArg(*this);
  138. }
  139.  
  140.  
  141. //
  142. // CallCompletionErrors
  143. //
  144.  
  145. H4509_CallCompletionErrors::H4509_CallCompletionErrors(unsigned tag, PASN_Object::TagClass tagClass)
  146.   : PASN_Enumeration(tag, tagClass, 1013, FALSE
  147. #ifndef PASN_NOPRINTON
  148.       , "shortTermRejection=1010 "
  149.         "longTermRejection "
  150.         "remoteUserBusyAgain "
  151.         "failureToMatch "
  152. #endif
  153.     )
  154. {
  155. }
  156.  
  157.  
  158. H4509_CallCompletionErrors & H4509_CallCompletionErrors::operator=(unsigned v)
  159. {
  160.   SetValue(v);
  161.   return *this;
  162. }
  163.  
  164.  
  165. PObject * H4509_CallCompletionErrors::Clone() const
  166. {
  167. #ifndef PASN_LEANANDMEAN
  168.   PAssert(IsClass(H4509_CallCompletionErrors::Class()), PInvalidCast);
  169. #endif
  170.   return new H4509_CallCompletionErrors(*this);
  171. }
  172.  
  173.  
  174. //
  175. // ArrayOf_MixedExtension
  176. //
  177.  
  178. H4509_ArrayOf_MixedExtension::H4509_ArrayOf_MixedExtension(unsigned tag, PASN_Object::TagClass tagClass)
  179.   : PASN_Array(tag, tagClass)
  180. {
  181. }
  182.  
  183.  
  184. PASN_Object * H4509_ArrayOf_MixedExtension::CreateObject() const
  185. {
  186.   return new H4504_MixedExtension;
  187. }
  188.  
  189.  
  190. H4504_MixedExtension & H4509_ArrayOf_MixedExtension::operator[](PINDEX i) const
  191. {
  192.   return (H4504_MixedExtension &)array[i];
  193. }
  194.  
  195.  
  196. PObject * H4509_ArrayOf_MixedExtension::Clone() const
  197. {
  198. #ifndef PASN_LEANANDMEAN
  199.   PAssert(IsClass(H4509_ArrayOf_MixedExtension::Class()), PInvalidCast);
  200. #endif
  201.   return new H4509_ArrayOf_MixedExtension(*this);
  202. }
  203.  
  204.  
  205. //
  206. // CcRequestArg
  207. //
  208.  
  209. H4509_CcRequestArg::H4509_CcRequestArg(unsigned tag, PASN_Object::TagClass tagClass)
  210.   : PASN_Sequence(tag, tagClass, 3, TRUE, 0)
  211. {
  212.   m_extension.SetConstraints(PASN_Object::FixedConstraint, 0, 255);
  213. }
  214.  
  215.  
  216. #ifndef PASN_NOPRINTON
  217. void H4509_CcRequestArg::PrintOn(ostream & strm) const
  218. {
  219.   int indent = strm.precision() + 2;
  220.   strm << "{\n";
  221.   strm << setw(indent+10) << "numberA = " << setprecision(indent) << m_numberA << '\n';
  222.   strm << setw(indent+10) << "numberB = " << setprecision(indent) << m_numberB << '\n';
  223.   if (HasOptionalField(e_ccIdentifier))
  224.     strm << setw(indent+15) << "ccIdentifier = " << setprecision(indent) << m_ccIdentifier << '\n';
  225.   strm << setw(indent+10) << "service = " << setprecision(indent) << m_service << '\n';
  226.   strm << setw(indent+21) << "can_retain_service = " << setprecision(indent) << m_can_retain_service << '\n';
  227.   if (HasOptionalField(e_retain_sig_connection))
  228.     strm << setw(indent+24) << "retain_sig_connection = " << setprecision(indent) << m_retain_sig_connection << '\n';
  229.   if (HasOptionalField(e_extension))
  230.     strm << setw(indent+12) << "extension = " << setprecision(indent) << m_extension << '\n';
  231.   strm << setw(indent-1) << "}";
  232. }
  233. #endif
  234.  
  235.  
  236. PObject::Comparison H4509_CcRequestArg::Compare(const PObject & obj) const
  237. {
  238. #ifndef PASN_LEANANDMEAN
  239.   PAssert(IsDescendant(H4509_CcRequestArg::Class()), PInvalidCast);
  240. #endif
  241.   const H4509_CcRequestArg & other = (const H4509_CcRequestArg &)obj;
  242.  
  243.   Comparison result;
  244.  
  245.   if ((result = m_numberA.Compare(other.m_numberA)) != EqualTo)
  246.     return result;
  247.   if ((result = m_numberB.Compare(other.m_numberB)) != EqualTo)
  248.     return result;
  249.   if ((result = m_ccIdentifier.Compare(other.m_ccIdentifier)) != EqualTo)
  250.     return result;
  251.   if ((result = m_service.Compare(other.m_service)) != EqualTo)
  252.     return result;
  253.   if ((result = m_can_retain_service.Compare(other.m_can_retain_service)) != EqualTo)
  254.     return result;
  255.   if ((result = m_retain_sig_connection.Compare(other.m_retain_sig_connection)) != EqualTo)
  256.     return result;
  257.   if ((result = m_extension.Compare(other.m_extension)) != EqualTo)
  258.     return result;
  259.  
  260.   return PASN_Sequence::Compare(other);
  261. }
  262.  
  263.  
  264. PINDEX H4509_CcRequestArg::GetDataLength() const
  265. {
  266.   PINDEX length = 0;
  267.   length += m_numberA.GetObjectLength();
  268.   length += m_numberB.GetObjectLength();
  269.   if (HasOptionalField(e_ccIdentifier))
  270.     length += m_ccIdentifier.GetObjectLength();
  271.   length += m_service.GetObjectLength();
  272.   length += m_can_retain_service.GetObjectLength();
  273.   if (HasOptionalField(e_retain_sig_connection))
  274.     length += m_retain_sig_connection.GetObjectLength();
  275.   if (HasOptionalField(e_extension))
  276.     length += m_extension.GetObjectLength();
  277.   return length;
  278. }
  279.  
  280.  
  281. BOOL H4509_CcRequestArg::Decode(PASN_Stream & strm)
  282. {
  283.   if (!PreambleDecode(strm))
  284.     return FALSE;
  285.  
  286.   if (!m_numberA.Decode(strm))
  287.     return FALSE;
  288.   if (!m_numberB.Decode(strm))
  289.     return FALSE;
  290.   if (HasOptionalField(e_ccIdentifier) && !m_ccIdentifier.Decode(strm))
  291.     return FALSE;
  292.   if (!m_service.Decode(strm))
  293.     return FALSE;
  294.   if (!m_can_retain_service.Decode(strm))
  295.     return FALSE;
  296.   if (HasOptionalField(e_retain_sig_connection) && !m_retain_sig_connection.Decode(strm))
  297.     return FALSE;
  298.   if (HasOptionalField(e_extension) && !m_extension.Decode(strm))
  299.     return FALSE;
  300.  
  301.   return UnknownExtensionsDecode(strm);
  302. }
  303.  
  304.  
  305. void H4509_CcRequestArg::Encode(PASN_Stream & strm) const
  306. {
  307.   PreambleEncode(strm);
  308.  
  309.   m_numberA.Encode(strm);
  310.   m_numberB.Encode(strm);
  311.   if (HasOptionalField(e_ccIdentifier))
  312.     m_ccIdentifier.Encode(strm);
  313.   m_service.Encode(strm);
  314.   m_can_retain_service.Encode(strm);
  315.   if (HasOptionalField(e_retain_sig_connection))
  316.     m_retain_sig_connection.Encode(strm);
  317.   if (HasOptionalField(e_extension))
  318.     m_extension.Encode(strm);
  319.  
  320.   UnknownExtensionsEncode(strm);
  321. }
  322.  
  323.  
  324. PObject * H4509_CcRequestArg::Clone() const
  325. {
  326. #ifndef PASN_LEANANDMEAN
  327.   PAssert(IsClass(H4509_CcRequestArg::Class()), PInvalidCast);
  328. #endif
  329.   return new H4509_CcRequestArg(*this);
  330. }
  331.  
  332.  
  333. //
  334. // CcRequestRes
  335. //
  336.  
  337. H4509_CcRequestRes::H4509_CcRequestRes(unsigned tag, PASN_Object::TagClass tagClass)
  338.   : PASN_Sequence(tag, tagClass, 1, TRUE, 0)
  339. {
  340.   m_extension.SetConstraints(PASN_Object::FixedConstraint, 0, 255);
  341. }
  342.  
  343.  
  344. #ifndef PASN_NOPRINTON
  345. void H4509_CcRequestRes::PrintOn(ostream & strm) const
  346. {
  347.   int indent = strm.precision() + 2;
  348.   strm << "{\n";
  349.   strm << setw(indent+17) << "retain_service = " << setprecision(indent) << m_retain_service << '\n';
  350.   if (HasOptionalField(e_extension))
  351.     strm << setw(indent+12) << "extension = " << setprecision(indent) << m_extension << '\n';
  352.   strm << setw(indent-1) << "}";
  353. }
  354. #endif
  355.  
  356.  
  357. PObject::Comparison H4509_CcRequestRes::Compare(const PObject & obj) const
  358. {
  359. #ifndef PASN_LEANANDMEAN
  360.   PAssert(IsDescendant(H4509_CcRequestRes::Class()), PInvalidCast);
  361. #endif
  362.   const H4509_CcRequestRes & other = (const H4509_CcRequestRes &)obj;
  363.  
  364.   Comparison result;
  365.  
  366.   if ((result = m_retain_service.Compare(other.m_retain_service)) != EqualTo)
  367.     return result;
  368.   if ((result = m_extension.Compare(other.m_extension)) != EqualTo)
  369.     return result;
  370.  
  371.   return PASN_Sequence::Compare(other);
  372. }
  373.  
  374.  
  375. PINDEX H4509_CcRequestRes::GetDataLength() const
  376. {
  377.   PINDEX length = 0;
  378.   length += m_retain_service.GetObjectLength();
  379.   if (HasOptionalField(e_extension))
  380.     length += m_extension.GetObjectLength();
  381.   return length;
  382. }
  383.  
  384.  
  385. BOOL H4509_CcRequestRes::Decode(PASN_Stream & strm)
  386. {
  387.   if (!PreambleDecode(strm))
  388.     return FALSE;
  389.  
  390.   if (!m_retain_service.Decode(strm))
  391.     return FALSE;
  392.   if (HasOptionalField(e_extension) && !m_extension.Decode(strm))
  393.     return FALSE;
  394.  
  395.   return UnknownExtensionsDecode(strm);
  396. }
  397.  
  398.  
  399. void H4509_CcRequestRes::Encode(PASN_Stream & strm) const
  400. {
  401.   PreambleEncode(strm);
  402.  
  403.   m_retain_service.Encode(strm);
  404.   if (HasOptionalField(e_extension))
  405.     m_extension.Encode(strm);
  406.  
  407.   UnknownExtensionsEncode(strm);
  408. }
  409.  
  410.  
  411. PObject * H4509_CcRequestRes::Clone() const
  412. {
  413. #ifndef PASN_LEANANDMEAN
  414.   PAssert(IsClass(H4509_CcRequestRes::Class()), PInvalidCast);
  415. #endif
  416.   return new H4509_CcRequestRes(*this);
  417. }
  418.  
  419.  
  420. //
  421. // CcShortArg
  422. //
  423.  
  424. H4509_CcShortArg::H4509_CcShortArg(unsigned tag, PASN_Object::TagClass tagClass)
  425.   : PASN_Sequence(tag, tagClass, 2, TRUE, 0)
  426. {
  427.   m_extension.SetConstraints(PASN_Object::FixedConstraint, 0, 255);
  428. }
  429.  
  430.  
  431. #ifndef PASN_NOPRINTON
  432. void H4509_CcShortArg::PrintOn(ostream & strm) const
  433. {
  434.   int indent = strm.precision() + 2;
  435.   strm << "{\n";
  436.   if (HasOptionalField(e_ccIdentifier))
  437.     strm << setw(indent+15) << "ccIdentifier = " << setprecision(indent) << m_ccIdentifier << '\n';
  438.   if (HasOptionalField(e_extension))
  439.     strm << setw(indent+12) << "extension = " << setprecision(indent) << m_extension << '\n';
  440.   strm << setw(indent-1) << "}";
  441. }
  442. #endif
  443.  
  444.  
  445. PObject::Comparison H4509_CcShortArg::Compare(const PObject & obj) const
  446. {
  447. #ifndef PASN_LEANANDMEAN
  448.   PAssert(IsDescendant(H4509_CcShortArg::Class()), PInvalidCast);
  449. #endif
  450.   const H4509_CcShortArg & other = (const H4509_CcShortArg &)obj;
  451.  
  452.   Comparison result;
  453.  
  454.   if ((result = m_ccIdentifier.Compare(other.m_ccIdentifier)) != EqualTo)
  455.     return result;
  456.   if ((result = m_extension.Compare(other.m_extension)) != EqualTo)
  457.     return result;
  458.  
  459.   return PASN_Sequence::Compare(other);
  460. }
  461.  
  462.  
  463. PINDEX H4509_CcShortArg::GetDataLength() const
  464. {
  465.   PINDEX length = 0;
  466.   if (HasOptionalField(e_ccIdentifier))
  467.     length += m_ccIdentifier.GetObjectLength();
  468.   if (HasOptionalField(e_extension))
  469.     length += m_extension.GetObjectLength();
  470.   return length;
  471. }
  472.  
  473.  
  474. BOOL H4509_CcShortArg::Decode(PASN_Stream & strm)
  475. {
  476.   if (!PreambleDecode(strm))
  477.     return FALSE;
  478.  
  479.   if (HasOptionalField(e_ccIdentifier) && !m_ccIdentifier.Decode(strm))
  480.     return FALSE;
  481.   if (HasOptionalField(e_extension) && !m_extension.Decode(strm))
  482.     return FALSE;
  483.  
  484.   return UnknownExtensionsDecode(strm);
  485. }
  486.  
  487.  
  488. void H4509_CcShortArg::Encode(PASN_Stream & strm) const
  489. {
  490.   PreambleEncode(strm);
  491.  
  492.   if (HasOptionalField(e_ccIdentifier))
  493.     m_ccIdentifier.Encode(strm);
  494.   if (HasOptionalField(e_extension))
  495.     m_extension.Encode(strm);
  496.  
  497.   UnknownExtensionsEncode(strm);
  498. }
  499.  
  500.  
  501. PObject * H4509_CcShortArg::Clone() const
  502. {
  503. #ifndef PASN_LEANANDMEAN
  504.   PAssert(IsClass(H4509_CcShortArg::Class()), PInvalidCast);
  505. #endif
  506.   return new H4509_CcShortArg(*this);
  507. }
  508.  
  509.  
  510. //
  511. // CcLongArg
  512. //
  513.  
  514. H4509_CcLongArg::H4509_CcLongArg(unsigned tag, PASN_Object::TagClass tagClass)
  515.   : PASN_Sequence(tag, tagClass, 5, TRUE, 0)
  516. {
  517.   m_extension.SetConstraints(PASN_Object::FixedConstraint, 0, 255);
  518. }
  519.  
  520.  
  521. #ifndef PASN_NOPRINTON
  522. void H4509_CcLongArg::PrintOn(ostream & strm) const
  523. {
  524.   int indent = strm.precision() + 2;
  525.   strm << "{\n";
  526.   if (HasOptionalField(e_numberA))
  527.     strm << setw(indent+10) << "numberA = " << setprecision(indent) << m_numberA << '\n';
  528.   if (HasOptionalField(e_numberB))
  529.     strm << setw(indent+10) << "numberB = " << setprecision(indent) << m_numberB << '\n';
  530.   if (HasOptionalField(e_ccIdentifier))
  531.     strm << setw(indent+15) << "ccIdentifier = " << setprecision(indent) << m_ccIdentifier << '\n';
  532.   if (HasOptionalField(e_service))
  533.     strm << setw(indent+10) << "service = " << setprecision(indent) << m_service << '\n';
  534.   if (HasOptionalField(e_extension))
  535.     strm << setw(indent+12) << "extension = " << setprecision(indent) << m_extension << '\n';
  536.   strm << setw(indent-1) << "}";
  537. }
  538. #endif
  539.  
  540.  
  541. PObject::Comparison H4509_CcLongArg::Compare(const PObject & obj) const
  542. {
  543. #ifndef PASN_LEANANDMEAN
  544.   PAssert(IsDescendant(H4509_CcLongArg::Class()), PInvalidCast);
  545. #endif
  546.   const H4509_CcLongArg & other = (const H4509_CcLongArg &)obj;
  547.  
  548.   Comparison result;
  549.  
  550.   if ((result = m_numberA.Compare(other.m_numberA)) != EqualTo)
  551.     return result;
  552.   if ((result = m_numberB.Compare(other.m_numberB)) != EqualTo)
  553.     return result;
  554.   if ((result = m_ccIdentifier.Compare(other.m_ccIdentifier)) != EqualTo)
  555.     return result;
  556.   if ((result = m_service.Compare(other.m_service)) != EqualTo)
  557.     return result;
  558.   if ((result = m_extension.Compare(other.m_extension)) != EqualTo)
  559.     return result;
  560.  
  561.   return PASN_Sequence::Compare(other);
  562. }
  563.  
  564.  
  565. PINDEX H4509_CcLongArg::GetDataLength() const
  566. {
  567.   PINDEX length = 0;
  568.   if (HasOptionalField(e_numberA))
  569.     length += m_numberA.GetObjectLength();
  570.   if (HasOptionalField(e_numberB))
  571.     length += m_numberB.GetObjectLength();
  572.   if (HasOptionalField(e_ccIdentifier))
  573.     length += m_ccIdentifier.GetObjectLength();
  574.   if (HasOptionalField(e_service))
  575.     length += m_service.GetObjectLength();
  576.   if (HasOptionalField(e_extension))
  577.     length += m_extension.GetObjectLength();
  578.   return length;
  579. }
  580.  
  581.  
  582. BOOL H4509_CcLongArg::Decode(PASN_Stream & strm)
  583. {
  584.   if (!PreambleDecode(strm))
  585.     return FALSE;
  586.  
  587.   if (HasOptionalField(e_numberA) && !m_numberA.Decode(strm))
  588.     return FALSE;
  589.   if (HasOptionalField(e_numberB) && !m_numberB.Decode(strm))
  590.     return FALSE;
  591.   if (HasOptionalField(e_ccIdentifier) && !m_ccIdentifier.Decode(strm))
  592.     return FALSE;
  593.   if (HasOptionalField(e_service) && !m_service.Decode(strm))
  594.     return FALSE;
  595.   if (HasOptionalField(e_extension) && !m_extension.Decode(strm))
  596.     return FALSE;
  597.  
  598.   return UnknownExtensionsDecode(strm);
  599. }
  600.  
  601.  
  602. void H4509_CcLongArg::Encode(PASN_Stream & strm) const
  603. {
  604.   PreambleEncode(strm);
  605.  
  606.   if (HasOptionalField(e_numberA))
  607.     m_numberA.Encode(strm);
  608.   if (HasOptionalField(e_numberB))
  609.     m_numberB.Encode(strm);
  610.   if (HasOptionalField(e_ccIdentifier))
  611.     m_ccIdentifier.Encode(strm);
  612.   if (HasOptionalField(e_service))
  613.     m_service.Encode(strm);
  614.   if (HasOptionalField(e_extension))
  615.     m_extension.Encode(strm);
  616.  
  617.   UnknownExtensionsEncode(strm);
  618. }
  619.  
  620.  
  621. PObject * H4509_CcLongArg::Clone() const
  622. {
  623. #ifndef PASN_LEANANDMEAN
  624.   PAssert(IsClass(H4509_CcLongArg::Class()), PInvalidCast);
  625. #endif
  626.   return new H4509_CcLongArg(*this);
  627. }
  628.  
  629.  
  630. #endif // if ! H323_DISABLE_H4509
  631.  
  632.  
  633. // End of h4509.cxx
  634.