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 / h248.cxx < prev    next >
C/C++ Source or Header  |  2004-06-22  |  274KB  |  11,518 lines

  1. //
  2. // h248.cxx
  3. //
  4. // Code automatically generated by asnparse.
  5. //
  6.  
  7. #ifdef __GNUC__
  8. #pragma implementation "h248.h"
  9. #endif
  10.  
  11. #include <ptlib.h>
  12. #include "h248.h"
  13.  
  14. #define new PNEW
  15.  
  16.  
  17. #if ! H323_DISABLE_H248
  18.  
  19. //
  20. // SecurityParmIndex
  21. //
  22.  
  23. H248_SecurityParmIndex::H248_SecurityParmIndex(unsigned tag, PASN_Object::TagClass tagClass)
  24.   : PASN_OctetString(tag, tagClass)
  25. {
  26.   SetConstraints(PASN_Object::FixedConstraint, 4);
  27. }
  28.  
  29.  
  30. H248_SecurityParmIndex::H248_SecurityParmIndex(const char * v)
  31. {
  32.   SetValue(v);
  33. }
  34.  
  35.  
  36. H248_SecurityParmIndex::H248_SecurityParmIndex(const PString & v)
  37. {
  38.   SetValue(v);
  39. }
  40.  
  41.  
  42. H248_SecurityParmIndex::H248_SecurityParmIndex(const PBYTEArray & v)
  43. {
  44.   SetValue(v);
  45. }
  46.  
  47.  
  48. H248_SecurityParmIndex & H248_SecurityParmIndex::operator=(const char * v)
  49. {
  50.   SetValue(v);
  51.   return *this;
  52. }
  53.  
  54.  
  55. H248_SecurityParmIndex & H248_SecurityParmIndex::operator=(const PString & v)
  56. {
  57.   SetValue(v);
  58.   return *this;
  59. }
  60.  
  61.  
  62. H248_SecurityParmIndex & H248_SecurityParmIndex::operator=(const PBYTEArray & v)
  63. {
  64.   SetValue(v);
  65.   return *this;
  66. }
  67.  
  68.  
  69. PObject * H248_SecurityParmIndex::Clone() const
  70. {
  71. #ifndef PASN_LEANANDMEAN
  72.   PAssert(IsClass(H248_SecurityParmIndex::Class()), PInvalidCast);
  73. #endif
  74.   return new H248_SecurityParmIndex(*this);
  75. }
  76.  
  77.  
  78. //
  79. // SequenceNum
  80. //
  81.  
  82. H248_SequenceNum::H248_SequenceNum(unsigned tag, PASN_Object::TagClass tagClass)
  83.   : PASN_OctetString(tag, tagClass)
  84. {
  85.   SetConstraints(PASN_Object::FixedConstraint, 4);
  86. }
  87.  
  88.  
  89. H248_SequenceNum::H248_SequenceNum(const char * v)
  90. {
  91.   SetValue(v);
  92. }
  93.  
  94.  
  95. H248_SequenceNum::H248_SequenceNum(const PString & v)
  96. {
  97.   SetValue(v);
  98. }
  99.  
  100.  
  101. H248_SequenceNum::H248_SequenceNum(const PBYTEArray & v)
  102. {
  103.   SetValue(v);
  104. }
  105.  
  106.  
  107. H248_SequenceNum & H248_SequenceNum::operator=(const char * v)
  108. {
  109.   SetValue(v);
  110.   return *this;
  111. }
  112.  
  113.  
  114. H248_SequenceNum & H248_SequenceNum::operator=(const PString & v)
  115. {
  116.   SetValue(v);
  117.   return *this;
  118. }
  119.  
  120.  
  121. H248_SequenceNum & H248_SequenceNum::operator=(const PBYTEArray & v)
  122. {
  123.   SetValue(v);
  124.   return *this;
  125. }
  126.  
  127.  
  128. PObject * H248_SequenceNum::Clone() const
  129. {
  130. #ifndef PASN_LEANANDMEAN
  131.   PAssert(IsClass(H248_SequenceNum::Class()), PInvalidCast);
  132. #endif
  133.   return new H248_SequenceNum(*this);
  134. }
  135.  
  136.  
  137. //
  138. // AuthData
  139. //
  140.  
  141. H248_AuthData::H248_AuthData(unsigned tag, PASN_Object::TagClass tagClass)
  142.   : PASN_OctetString(tag, tagClass)
  143. {
  144.   SetConstraints(PASN_Object::FixedConstraint, 12, 32);
  145. }
  146.  
  147.  
  148. H248_AuthData::H248_AuthData(const char * v)
  149. {
  150.   SetValue(v);
  151. }
  152.  
  153.  
  154. H248_AuthData::H248_AuthData(const PString & v)
  155. {
  156.   SetValue(v);
  157. }
  158.  
  159.  
  160. H248_AuthData::H248_AuthData(const PBYTEArray & v)
  161. {
  162.   SetValue(v);
  163. }
  164.  
  165.  
  166. H248_AuthData & H248_AuthData::operator=(const char * v)
  167. {
  168.   SetValue(v);
  169.   return *this;
  170. }
  171.  
  172.  
  173. H248_AuthData & H248_AuthData::operator=(const PString & v)
  174. {
  175.   SetValue(v);
  176.   return *this;
  177. }
  178.  
  179.  
  180. H248_AuthData & H248_AuthData::operator=(const PBYTEArray & v)
  181. {
  182.   SetValue(v);
  183.   return *this;
  184. }
  185.  
  186.  
  187. PObject * H248_AuthData::Clone() const
  188. {
  189. #ifndef PASN_LEANANDMEAN
  190.   PAssert(IsClass(H248_AuthData::Class()), PInvalidCast);
  191. #endif
  192.   return new H248_AuthData(*this);
  193. }
  194.  
  195.  
  196. //
  197. // MId
  198. //
  199.  
  200. H248_MId::H248_MId(unsigned tag, PASN_Object::TagClass tagClass)
  201.   : PASN_Choice(tag, tagClass, 5, TRUE
  202. #ifndef PASN_NOPRINTON
  203.       , "ip4Address "
  204.         "ip6Address "
  205.         "domainName "
  206.         "deviceName "
  207.         "mtpAddress "
  208. #endif
  209.     )
  210. {
  211. }
  212.  
  213.  
  214. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  215. H248_MId::operator H248_IP4Address &() const
  216. #else
  217. H248_MId::operator H248_IP4Address &()
  218. {
  219. #ifndef PASN_LEANANDMEAN
  220.   PAssert(PAssertNULL(choice)->IsDescendant(H248_IP4Address::Class()), PInvalidCast);
  221. #endif
  222.   return *(H248_IP4Address *)choice;
  223. }
  224.  
  225.  
  226. H248_MId::operator const H248_IP4Address &() const
  227. #endif
  228. {
  229. #ifndef PASN_LEANANDMEAN
  230.   PAssert(PAssertNULL(choice)->IsDescendant(H248_IP4Address::Class()), PInvalidCast);
  231. #endif
  232.   return *(H248_IP4Address *)choice;
  233. }
  234.  
  235.  
  236. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  237. H248_MId::operator H248_IP6Address &() const
  238. #else
  239. H248_MId::operator H248_IP6Address &()
  240. {
  241. #ifndef PASN_LEANANDMEAN
  242.   PAssert(PAssertNULL(choice)->IsDescendant(H248_IP6Address::Class()), PInvalidCast);
  243. #endif
  244.   return *(H248_IP6Address *)choice;
  245. }
  246.  
  247.  
  248. H248_MId::operator const H248_IP6Address &() const
  249. #endif
  250. {
  251. #ifndef PASN_LEANANDMEAN
  252.   PAssert(PAssertNULL(choice)->IsDescendant(H248_IP6Address::Class()), PInvalidCast);
  253. #endif
  254.   return *(H248_IP6Address *)choice;
  255. }
  256.  
  257.  
  258. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  259. H248_MId::operator H248_DomainName &() const
  260. #else
  261. H248_MId::operator H248_DomainName &()
  262. {
  263. #ifndef PASN_LEANANDMEAN
  264.   PAssert(PAssertNULL(choice)->IsDescendant(H248_DomainName::Class()), PInvalidCast);
  265. #endif
  266.   return *(H248_DomainName *)choice;
  267. }
  268.  
  269.  
  270. H248_MId::operator const H248_DomainName &() const
  271. #endif
  272. {
  273. #ifndef PASN_LEANANDMEAN
  274.   PAssert(PAssertNULL(choice)->IsDescendant(H248_DomainName::Class()), PInvalidCast);
  275. #endif
  276.   return *(H248_DomainName *)choice;
  277. }
  278.  
  279.  
  280. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  281. H248_MId::operator H248_PathName &() const
  282. #else
  283. H248_MId::operator H248_PathName &()
  284. {
  285. #ifndef PASN_LEANANDMEAN
  286.   PAssert(PAssertNULL(choice)->IsDescendant(H248_PathName::Class()), PInvalidCast);
  287. #endif
  288.   return *(H248_PathName *)choice;
  289. }
  290.  
  291.  
  292. H248_MId::operator const H248_PathName &() const
  293. #endif
  294. {
  295. #ifndef PASN_LEANANDMEAN
  296.   PAssert(PAssertNULL(choice)->IsDescendant(H248_PathName::Class()), PInvalidCast);
  297. #endif
  298.   return *(H248_PathName *)choice;
  299. }
  300.  
  301.  
  302. BOOL H248_MId::CreateObject()
  303. {
  304.   switch (tag) {
  305.     case e_ip4Address :
  306.       choice = new H248_IP4Address();
  307.       return TRUE;
  308.     case e_ip6Address :
  309.       choice = new H248_IP6Address();
  310.       return TRUE;
  311.     case e_domainName :
  312.       choice = new H248_DomainName();
  313.       return TRUE;
  314.     case e_deviceName :
  315.       choice = new H248_PathName();
  316.       return TRUE;
  317.     case e_mtpAddress :
  318.       choice = new PASN_OctetString();
  319.       choice->SetConstraints(PASN_Object::FixedConstraint, 2, 4);
  320.       return TRUE;
  321.   }
  322.  
  323.   choice = NULL;
  324.   return FALSE;
  325. }
  326.  
  327.  
  328. PObject * H248_MId::Clone() const
  329. {
  330. #ifndef PASN_LEANANDMEAN
  331.   PAssert(IsClass(H248_MId::Class()), PInvalidCast);
  332. #endif
  333.   return new H248_MId(*this);
  334. }
  335.  
  336.  
  337. //
  338. // DomainName
  339. //
  340.  
  341. H248_DomainName::H248_DomainName(unsigned tag, PASN_Object::TagClass tagClass)
  342.   : PASN_Sequence(tag, tagClass, 1, FALSE, 0)
  343. {
  344.   m_portNumber.SetConstraints(PASN_Object::FixedConstraint, 0, 65535);
  345. }
  346.  
  347.  
  348. #ifndef PASN_NOPRINTON
  349. void H248_DomainName::PrintOn(ostream & strm) const
  350. {
  351.   int indent = strm.precision() + 2;
  352.   strm << "{\n";
  353.   strm << setw(indent+7) << "name = " << setprecision(indent) << m_name << '\n';
  354.   if (HasOptionalField(e_portNumber))
  355.     strm << setw(indent+13) << "portNumber = " << setprecision(indent) << m_portNumber << '\n';
  356.   strm << setw(indent-1) << "}";
  357. }
  358. #endif
  359.  
  360.  
  361. PObject::Comparison H248_DomainName::Compare(const PObject & obj) const
  362. {
  363. #ifndef PASN_LEANANDMEAN
  364.   PAssert(IsDescendant(H248_DomainName::Class()), PInvalidCast);
  365. #endif
  366.   const H248_DomainName & other = (const H248_DomainName &)obj;
  367.  
  368.   Comparison result;
  369.  
  370.   if ((result = m_name.Compare(other.m_name)) != EqualTo)
  371.     return result;
  372.   if ((result = m_portNumber.Compare(other.m_portNumber)) != EqualTo)
  373.     return result;
  374.  
  375.   return PASN_Sequence::Compare(other);
  376. }
  377.  
  378.  
  379. PINDEX H248_DomainName::GetDataLength() const
  380. {
  381.   PINDEX length = 0;
  382.   length += m_name.GetObjectLength();
  383.   if (HasOptionalField(e_portNumber))
  384.     length += m_portNumber.GetObjectLength();
  385.   return length;
  386. }
  387.  
  388.  
  389. BOOL H248_DomainName::Decode(PASN_Stream & strm)
  390. {
  391.   if (!PreambleDecode(strm))
  392.     return FALSE;
  393.  
  394.   if (!m_name.Decode(strm))
  395.     return FALSE;
  396.   if (HasOptionalField(e_portNumber) && !m_portNumber.Decode(strm))
  397.     return FALSE;
  398.  
  399.   return UnknownExtensionsDecode(strm);
  400. }
  401.  
  402.  
  403. void H248_DomainName::Encode(PASN_Stream & strm) const
  404. {
  405.   PreambleEncode(strm);
  406.  
  407.   m_name.Encode(strm);
  408.   if (HasOptionalField(e_portNumber))
  409.     m_portNumber.Encode(strm);
  410.  
  411.   UnknownExtensionsEncode(strm);
  412. }
  413.  
  414.  
  415. PObject * H248_DomainName::Clone() const
  416. {
  417. #ifndef PASN_LEANANDMEAN
  418.   PAssert(IsClass(H248_DomainName::Class()), PInvalidCast);
  419. #endif
  420.   return new H248_DomainName(*this);
  421. }
  422.  
  423.  
  424. //
  425. // IP4Address
  426. //
  427.  
  428. H248_IP4Address::H248_IP4Address(unsigned tag, PASN_Object::TagClass tagClass)
  429.   : PASN_Sequence(tag, tagClass, 1, FALSE, 0)
  430. {
  431.   m_address.SetConstraints(PASN_Object::FixedConstraint, 4);
  432.   m_portNumber.SetConstraints(PASN_Object::FixedConstraint, 0, 65535);
  433. }
  434.  
  435.  
  436. #ifndef PASN_NOPRINTON
  437. void H248_IP4Address::PrintOn(ostream & strm) const
  438. {
  439.   int indent = strm.precision() + 2;
  440.   strm << "{\n";
  441.   strm << setw(indent+10) << "address = " << setprecision(indent) << m_address << '\n';
  442.   if (HasOptionalField(e_portNumber))
  443.     strm << setw(indent+13) << "portNumber = " << setprecision(indent) << m_portNumber << '\n';
  444.   strm << setw(indent-1) << "}";
  445. }
  446. #endif
  447.  
  448.  
  449. PObject::Comparison H248_IP4Address::Compare(const PObject & obj) const
  450. {
  451. #ifndef PASN_LEANANDMEAN
  452.   PAssert(IsDescendant(H248_IP4Address::Class()), PInvalidCast);
  453. #endif
  454.   const H248_IP4Address & other = (const H248_IP4Address &)obj;
  455.  
  456.   Comparison result;
  457.  
  458.   if ((result = m_address.Compare(other.m_address)) != EqualTo)
  459.     return result;
  460.   if ((result = m_portNumber.Compare(other.m_portNumber)) != EqualTo)
  461.     return result;
  462.  
  463.   return PASN_Sequence::Compare(other);
  464. }
  465.  
  466.  
  467. PINDEX H248_IP4Address::GetDataLength() const
  468. {
  469.   PINDEX length = 0;
  470.   length += m_address.GetObjectLength();
  471.   if (HasOptionalField(e_portNumber))
  472.     length += m_portNumber.GetObjectLength();
  473.   return length;
  474. }
  475.  
  476.  
  477. BOOL H248_IP4Address::Decode(PASN_Stream & strm)
  478. {
  479.   if (!PreambleDecode(strm))
  480.     return FALSE;
  481.  
  482.   if (!m_address.Decode(strm))
  483.     return FALSE;
  484.   if (HasOptionalField(e_portNumber) && !m_portNumber.Decode(strm))
  485.     return FALSE;
  486.  
  487.   return UnknownExtensionsDecode(strm);
  488. }
  489.  
  490.  
  491. void H248_IP4Address::Encode(PASN_Stream & strm) const
  492. {
  493.   PreambleEncode(strm);
  494.  
  495.   m_address.Encode(strm);
  496.   if (HasOptionalField(e_portNumber))
  497.     m_portNumber.Encode(strm);
  498.  
  499.   UnknownExtensionsEncode(strm);
  500. }
  501.  
  502.  
  503. PObject * H248_IP4Address::Clone() const
  504. {
  505. #ifndef PASN_LEANANDMEAN
  506.   PAssert(IsClass(H248_IP4Address::Class()), PInvalidCast);
  507. #endif
  508.   return new H248_IP4Address(*this);
  509. }
  510.  
  511.  
  512. //
  513. // IP6Address
  514. //
  515.  
  516. H248_IP6Address::H248_IP6Address(unsigned tag, PASN_Object::TagClass tagClass)
  517.   : PASN_Sequence(tag, tagClass, 1, FALSE, 0)
  518. {
  519.   m_address.SetConstraints(PASN_Object::FixedConstraint, 16);
  520.   m_portNumber.SetConstraints(PASN_Object::FixedConstraint, 0, 65535);
  521. }
  522.  
  523.  
  524. #ifndef PASN_NOPRINTON
  525. void H248_IP6Address::PrintOn(ostream & strm) const
  526. {
  527.   int indent = strm.precision() + 2;
  528.   strm << "{\n";
  529.   strm << setw(indent+10) << "address = " << setprecision(indent) << m_address << '\n';
  530.   if (HasOptionalField(e_portNumber))
  531.     strm << setw(indent+13) << "portNumber = " << setprecision(indent) << m_portNumber << '\n';
  532.   strm << setw(indent-1) << "}";
  533. }
  534. #endif
  535.  
  536.  
  537. PObject::Comparison H248_IP6Address::Compare(const PObject & obj) const
  538. {
  539. #ifndef PASN_LEANANDMEAN
  540.   PAssert(IsDescendant(H248_IP6Address::Class()), PInvalidCast);
  541. #endif
  542.   const H248_IP6Address & other = (const H248_IP6Address &)obj;
  543.  
  544.   Comparison result;
  545.  
  546.   if ((result = m_address.Compare(other.m_address)) != EqualTo)
  547.     return result;
  548.   if ((result = m_portNumber.Compare(other.m_portNumber)) != EqualTo)
  549.     return result;
  550.  
  551.   return PASN_Sequence::Compare(other);
  552. }
  553.  
  554.  
  555. PINDEX H248_IP6Address::GetDataLength() const
  556. {
  557.   PINDEX length = 0;
  558.   length += m_address.GetObjectLength();
  559.   if (HasOptionalField(e_portNumber))
  560.     length += m_portNumber.GetObjectLength();
  561.   return length;
  562. }
  563.  
  564.  
  565. BOOL H248_IP6Address::Decode(PASN_Stream & strm)
  566. {
  567.   if (!PreambleDecode(strm))
  568.     return FALSE;
  569.  
  570.   if (!m_address.Decode(strm))
  571.     return FALSE;
  572.   if (HasOptionalField(e_portNumber) && !m_portNumber.Decode(strm))
  573.     return FALSE;
  574.  
  575.   return UnknownExtensionsDecode(strm);
  576. }
  577.  
  578.  
  579. void H248_IP6Address::Encode(PASN_Stream & strm) const
  580. {
  581.   PreambleEncode(strm);
  582.  
  583.   m_address.Encode(strm);
  584.   if (HasOptionalField(e_portNumber))
  585.     m_portNumber.Encode(strm);
  586.  
  587.   UnknownExtensionsEncode(strm);
  588. }
  589.  
  590.  
  591. PObject * H248_IP6Address::Clone() const
  592. {
  593. #ifndef PASN_LEANANDMEAN
  594.   PAssert(IsClass(H248_IP6Address::Class()), PInvalidCast);
  595. #endif
  596.   return new H248_IP6Address(*this);
  597. }
  598.  
  599.  
  600. //
  601. // PathName
  602. //
  603.  
  604. H248_PathName::H248_PathName(unsigned tag, PASN_Object::TagClass tagClass)
  605.   : PASN_IA5String(tag, tagClass)
  606. {
  607.   SetConstraints(PASN_Object::FixedConstraint, 1, 64);
  608. }
  609.  
  610.  
  611. H248_PathName & H248_PathName::operator=(const char * v)
  612. {
  613.   SetValue(v);
  614.   return *this;
  615. }
  616.  
  617.  
  618. H248_PathName & H248_PathName::operator=(const PString & v)
  619. {
  620.   SetValue(v);
  621.   return *this;
  622. }
  623.  
  624.  
  625. PObject * H248_PathName::Clone() const
  626. {
  627. #ifndef PASN_LEANANDMEAN
  628.   PAssert(IsClass(H248_PathName::Class()), PInvalidCast);
  629. #endif
  630.   return new H248_PathName(*this);
  631. }
  632.  
  633.  
  634. //
  635. // Transaction
  636. //
  637.  
  638. H248_Transaction::H248_Transaction(unsigned tag, PASN_Object::TagClass tagClass)
  639.   : PASN_Choice(tag, tagClass, 4, TRUE
  640. #ifndef PASN_NOPRINTON
  641.       , "transactionRequest "
  642.         "transactionPending "
  643.         "transactionReply "
  644.         "transactionResponseAck "
  645. #endif
  646.     )
  647. {
  648. }
  649.  
  650.  
  651. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  652. H248_Transaction::operator H248_TransactionRequest &() const
  653. #else
  654. H248_Transaction::operator H248_TransactionRequest &()
  655. {
  656. #ifndef PASN_LEANANDMEAN
  657.   PAssert(PAssertNULL(choice)->IsDescendant(H248_TransactionRequest::Class()), PInvalidCast);
  658. #endif
  659.   return *(H248_TransactionRequest *)choice;
  660. }
  661.  
  662.  
  663. H248_Transaction::operator const H248_TransactionRequest &() const
  664. #endif
  665. {
  666. #ifndef PASN_LEANANDMEAN
  667.   PAssert(PAssertNULL(choice)->IsDescendant(H248_TransactionRequest::Class()), PInvalidCast);
  668. #endif
  669.   return *(H248_TransactionRequest *)choice;
  670. }
  671.  
  672.  
  673. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  674. H248_Transaction::operator H248_TransactionPending &() const
  675. #else
  676. H248_Transaction::operator H248_TransactionPending &()
  677. {
  678. #ifndef PASN_LEANANDMEAN
  679.   PAssert(PAssertNULL(choice)->IsDescendant(H248_TransactionPending::Class()), PInvalidCast);
  680. #endif
  681.   return *(H248_TransactionPending *)choice;
  682. }
  683.  
  684.  
  685. H248_Transaction::operator const H248_TransactionPending &() const
  686. #endif
  687. {
  688. #ifndef PASN_LEANANDMEAN
  689.   PAssert(PAssertNULL(choice)->IsDescendant(H248_TransactionPending::Class()), PInvalidCast);
  690. #endif
  691.   return *(H248_TransactionPending *)choice;
  692. }
  693.  
  694.  
  695. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  696. H248_Transaction::operator H248_TransactionReply &() const
  697. #else
  698. H248_Transaction::operator H248_TransactionReply &()
  699. {
  700. #ifndef PASN_LEANANDMEAN
  701.   PAssert(PAssertNULL(choice)->IsDescendant(H248_TransactionReply::Class()), PInvalidCast);
  702. #endif
  703.   return *(H248_TransactionReply *)choice;
  704. }
  705.  
  706.  
  707. H248_Transaction::operator const H248_TransactionReply &() const
  708. #endif
  709. {
  710. #ifndef PASN_LEANANDMEAN
  711.   PAssert(PAssertNULL(choice)->IsDescendant(H248_TransactionReply::Class()), PInvalidCast);
  712. #endif
  713.   return *(H248_TransactionReply *)choice;
  714. }
  715.  
  716.  
  717. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  718. H248_Transaction::operator H248_TransactionResponseAck &() const
  719. #else
  720. H248_Transaction::operator H248_TransactionResponseAck &()
  721. {
  722. #ifndef PASN_LEANANDMEAN
  723.   PAssert(PAssertNULL(choice)->IsDescendant(H248_TransactionResponseAck::Class()), PInvalidCast);
  724. #endif
  725.   return *(H248_TransactionResponseAck *)choice;
  726. }
  727.  
  728.  
  729. H248_Transaction::operator const H248_TransactionResponseAck &() const
  730. #endif
  731. {
  732. #ifndef PASN_LEANANDMEAN
  733.   PAssert(PAssertNULL(choice)->IsDescendant(H248_TransactionResponseAck::Class()), PInvalidCast);
  734. #endif
  735.   return *(H248_TransactionResponseAck *)choice;
  736. }
  737.  
  738.  
  739. BOOL H248_Transaction::CreateObject()
  740. {
  741.   switch (tag) {
  742.     case e_transactionRequest :
  743.       choice = new H248_TransactionRequest();
  744.       return TRUE;
  745.     case e_transactionPending :
  746.       choice = new H248_TransactionPending();
  747.       return TRUE;
  748.     case e_transactionReply :
  749.       choice = new H248_TransactionReply();
  750.       return TRUE;
  751.     case e_transactionResponseAck :
  752.       choice = new H248_TransactionResponseAck();
  753.       return TRUE;
  754.   }
  755.  
  756.   choice = NULL;
  757.   return FALSE;
  758. }
  759.  
  760.  
  761. PObject * H248_Transaction::Clone() const
  762. {
  763. #ifndef PASN_LEANANDMEAN
  764.   PAssert(IsClass(H248_Transaction::Class()), PInvalidCast);
  765. #endif
  766.   return new H248_Transaction(*this);
  767. }
  768.  
  769.  
  770. //
  771. // TransactionId
  772. //
  773.  
  774. H248_TransactionId::H248_TransactionId(unsigned tag, PASN_Object::TagClass tagClass)
  775.   : PASN_Integer(tag, tagClass)
  776. {
  777.   SetConstraints(PASN_Object::FixedConstraint, 0, 4294967295U);
  778. }
  779.  
  780.  
  781. H248_TransactionId & H248_TransactionId::operator=(int v)
  782. {
  783.   SetValue(v);
  784.   return *this;
  785. }
  786.  
  787.  
  788. H248_TransactionId & H248_TransactionId::operator=(unsigned v)
  789. {
  790.   SetValue(v);
  791.   return *this;
  792. }
  793.  
  794.  
  795. PObject * H248_TransactionId::Clone() const
  796. {
  797. #ifndef PASN_LEANANDMEAN
  798.   PAssert(IsClass(H248_TransactionId::Class()), PInvalidCast);
  799. #endif
  800.   return new H248_TransactionId(*this);
  801. }
  802.  
  803.  
  804. //
  805. // TransactionPending
  806. //
  807.  
  808. H248_TransactionPending::H248_TransactionPending(unsigned tag, PASN_Object::TagClass tagClass)
  809.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  810. {
  811. }
  812.  
  813.  
  814. #ifndef PASN_NOPRINTON
  815. void H248_TransactionPending::PrintOn(ostream & strm) const
  816. {
  817.   int indent = strm.precision() + 2;
  818.   strm << "{\n";
  819.   strm << setw(indent+16) << "transactionId = " << setprecision(indent) << m_transactionId << '\n';
  820.   strm << setw(indent-1) << "}";
  821. }
  822. #endif
  823.  
  824.  
  825. PObject::Comparison H248_TransactionPending::Compare(const PObject & obj) const
  826. {
  827. #ifndef PASN_LEANANDMEAN
  828.   PAssert(IsDescendant(H248_TransactionPending::Class()), PInvalidCast);
  829. #endif
  830.   const H248_TransactionPending & other = (const H248_TransactionPending &)obj;
  831.  
  832.   Comparison result;
  833.  
  834.   if ((result = m_transactionId.Compare(other.m_transactionId)) != EqualTo)
  835.     return result;
  836.  
  837.   return PASN_Sequence::Compare(other);
  838. }
  839.  
  840.  
  841. PINDEX H248_TransactionPending::GetDataLength() const
  842. {
  843.   PINDEX length = 0;
  844.   length += m_transactionId.GetObjectLength();
  845.   return length;
  846. }
  847.  
  848.  
  849. BOOL H248_TransactionPending::Decode(PASN_Stream & strm)
  850. {
  851.   if (!PreambleDecode(strm))
  852.     return FALSE;
  853.  
  854.   if (!m_transactionId.Decode(strm))
  855.     return FALSE;
  856.  
  857.   return UnknownExtensionsDecode(strm);
  858. }
  859.  
  860.  
  861. void H248_TransactionPending::Encode(PASN_Stream & strm) const
  862. {
  863.   PreambleEncode(strm);
  864.  
  865.   m_transactionId.Encode(strm);
  866.  
  867.   UnknownExtensionsEncode(strm);
  868. }
  869.  
  870.  
  871. PObject * H248_TransactionPending::Clone() const
  872. {
  873. #ifndef PASN_LEANANDMEAN
  874.   PAssert(IsClass(H248_TransactionPending::Class()), PInvalidCast);
  875. #endif
  876.   return new H248_TransactionPending(*this);
  877. }
  878.  
  879.  
  880. //
  881. // TransactionResponseAck
  882. //
  883.  
  884. H248_TransactionResponseAck::H248_TransactionResponseAck(unsigned tag, PASN_Object::TagClass tagClass)
  885.   : PASN_Array(tag, tagClass)
  886. {
  887. }
  888.  
  889.  
  890. PASN_Object * H248_TransactionResponseAck::CreateObject() const
  891. {
  892.   return new H248_TransactionAck;
  893. }
  894.  
  895.  
  896. H248_TransactionAck & H248_TransactionResponseAck::operator[](PINDEX i) const
  897. {
  898.   return (H248_TransactionAck &)array[i];
  899. }
  900.  
  901.  
  902. PObject * H248_TransactionResponseAck::Clone() const
  903. {
  904. #ifndef PASN_LEANANDMEAN
  905.   PAssert(IsClass(H248_TransactionResponseAck::Class()), PInvalidCast);
  906. #endif
  907.   return new H248_TransactionResponseAck(*this);
  908. }
  909.  
  910.  
  911. //
  912. // TransactionAck
  913. //
  914.  
  915. H248_TransactionAck::H248_TransactionAck(unsigned tag, PASN_Object::TagClass tagClass)
  916.   : PASN_Sequence(tag, tagClass, 1, FALSE, 0)
  917. {
  918. }
  919.  
  920.  
  921. #ifndef PASN_NOPRINTON
  922. void H248_TransactionAck::PrintOn(ostream & strm) const
  923. {
  924.   int indent = strm.precision() + 2;
  925.   strm << "{\n";
  926.   strm << setw(indent+11) << "firstAck = " << setprecision(indent) << m_firstAck << '\n';
  927.   if (HasOptionalField(e_lastAck))
  928.     strm << setw(indent+10) << "lastAck = " << setprecision(indent) << m_lastAck << '\n';
  929.   strm << setw(indent-1) << "}";
  930. }
  931. #endif
  932.  
  933.  
  934. PObject::Comparison H248_TransactionAck::Compare(const PObject & obj) const
  935. {
  936. #ifndef PASN_LEANANDMEAN
  937.   PAssert(IsDescendant(H248_TransactionAck::Class()), PInvalidCast);
  938. #endif
  939.   const H248_TransactionAck & other = (const H248_TransactionAck &)obj;
  940.  
  941.   Comparison result;
  942.  
  943.   if ((result = m_firstAck.Compare(other.m_firstAck)) != EqualTo)
  944.     return result;
  945.   if ((result = m_lastAck.Compare(other.m_lastAck)) != EqualTo)
  946.     return result;
  947.  
  948.   return PASN_Sequence::Compare(other);
  949. }
  950.  
  951.  
  952. PINDEX H248_TransactionAck::GetDataLength() const
  953. {
  954.   PINDEX length = 0;
  955.   length += m_firstAck.GetObjectLength();
  956.   if (HasOptionalField(e_lastAck))
  957.     length += m_lastAck.GetObjectLength();
  958.   return length;
  959. }
  960.  
  961.  
  962. BOOL H248_TransactionAck::Decode(PASN_Stream & strm)
  963. {
  964.   if (!PreambleDecode(strm))
  965.     return FALSE;
  966.  
  967.   if (!m_firstAck.Decode(strm))
  968.     return FALSE;
  969.   if (HasOptionalField(e_lastAck) && !m_lastAck.Decode(strm))
  970.     return FALSE;
  971.  
  972.   return UnknownExtensionsDecode(strm);
  973. }
  974.  
  975.  
  976. void H248_TransactionAck::Encode(PASN_Stream & strm) const
  977. {
  978.   PreambleEncode(strm);
  979.  
  980.   m_firstAck.Encode(strm);
  981.   if (HasOptionalField(e_lastAck))
  982.     m_lastAck.Encode(strm);
  983.  
  984.   UnknownExtensionsEncode(strm);
  985. }
  986.  
  987.  
  988. PObject * H248_TransactionAck::Clone() const
  989. {
  990. #ifndef PASN_LEANANDMEAN
  991.   PAssert(IsClass(H248_TransactionAck::Class()), PInvalidCast);
  992. #endif
  993.   return new H248_TransactionAck(*this);
  994. }
  995.  
  996.  
  997. //
  998. // ErrorCode
  999. //
  1000.  
  1001. H248_ErrorCode::H248_ErrorCode(unsigned tag, PASN_Object::TagClass tagClass)
  1002.   : PASN_Integer(tag, tagClass)
  1003. {
  1004.   SetConstraints(PASN_Object::FixedConstraint, 0, 65535);
  1005. }
  1006.  
  1007.  
  1008. H248_ErrorCode & H248_ErrorCode::operator=(int v)
  1009. {
  1010.   SetValue(v);
  1011.   return *this;
  1012. }
  1013.  
  1014.  
  1015. H248_ErrorCode & H248_ErrorCode::operator=(unsigned v)
  1016. {
  1017.   SetValue(v);
  1018.   return *this;
  1019. }
  1020.  
  1021.  
  1022. PObject * H248_ErrorCode::Clone() const
  1023. {
  1024. #ifndef PASN_LEANANDMEAN
  1025.   PAssert(IsClass(H248_ErrorCode::Class()), PInvalidCast);
  1026. #endif
  1027.   return new H248_ErrorCode(*this);
  1028. }
  1029.  
  1030.  
  1031. //
  1032. // ErrorText
  1033. //
  1034.  
  1035. H248_ErrorText::H248_ErrorText(unsigned tag, PASN_Object::TagClass tagClass)
  1036.   : PASN_IA5String(tag, tagClass)
  1037. {
  1038. }
  1039.  
  1040.  
  1041. H248_ErrorText & H248_ErrorText::operator=(const char * v)
  1042. {
  1043.   SetValue(v);
  1044.   return *this;
  1045. }
  1046.  
  1047.  
  1048. H248_ErrorText & H248_ErrorText::operator=(const PString & v)
  1049. {
  1050.   SetValue(v);
  1051.   return *this;
  1052. }
  1053.  
  1054.  
  1055. PObject * H248_ErrorText::Clone() const
  1056. {
  1057. #ifndef PASN_LEANANDMEAN
  1058.   PAssert(IsClass(H248_ErrorText::Class()), PInvalidCast);
  1059. #endif
  1060.   return new H248_ErrorText(*this);
  1061. }
  1062.  
  1063.  
  1064. //
  1065. // ContextID
  1066. //
  1067.  
  1068. H248_ContextID::H248_ContextID(unsigned tag, PASN_Object::TagClass tagClass)
  1069.   : PASN_Integer(tag, tagClass)
  1070. {
  1071.   SetConstraints(PASN_Object::FixedConstraint, 0, 4294967295U);
  1072. }
  1073.  
  1074.  
  1075. H248_ContextID & H248_ContextID::operator=(int v)
  1076. {
  1077.   SetValue(v);
  1078.   return *this;
  1079. }
  1080.  
  1081.  
  1082. H248_ContextID & H248_ContextID::operator=(unsigned v)
  1083. {
  1084.   SetValue(v);
  1085.   return *this;
  1086. }
  1087.  
  1088.  
  1089. PObject * H248_ContextID::Clone() const
  1090. {
  1091. #ifndef PASN_LEANANDMEAN
  1092.   PAssert(IsClass(H248_ContextID::Class()), PInvalidCast);
  1093. #endif
  1094.   return new H248_ContextID(*this);
  1095. }
  1096.  
  1097.  
  1098. //
  1099. // ContextAttrAuditRequest
  1100. //
  1101.  
  1102. H248_ContextAttrAuditRequest::H248_ContextAttrAuditRequest(unsigned tag, PASN_Object::TagClass tagClass)
  1103.   : PASN_Sequence(tag, tagClass, 3, TRUE, 0)
  1104. {
  1105. }
  1106.  
  1107.  
  1108. #ifndef PASN_NOPRINTON
  1109. void H248_ContextAttrAuditRequest::PrintOn(ostream & strm) const
  1110. {
  1111.   int indent = strm.precision() + 2;
  1112.   strm << "{\n";
  1113.   if (HasOptionalField(e_topology))
  1114.     strm << setw(indent+11) << "topology = " << setprecision(indent) << m_topology << '\n';
  1115.   if (HasOptionalField(e_emergency))
  1116.     strm << setw(indent+12) << "emergency = " << setprecision(indent) << m_emergency << '\n';
  1117.   if (HasOptionalField(e_priority))
  1118.     strm << setw(indent+11) << "priority = " << setprecision(indent) << m_priority << '\n';
  1119.   strm << setw(indent-1) << "}";
  1120. }
  1121. #endif
  1122.  
  1123.  
  1124. PObject::Comparison H248_ContextAttrAuditRequest::Compare(const PObject & obj) const
  1125. {
  1126. #ifndef PASN_LEANANDMEAN
  1127.   PAssert(IsDescendant(H248_ContextAttrAuditRequest::Class()), PInvalidCast);
  1128. #endif
  1129.   const H248_ContextAttrAuditRequest & other = (const H248_ContextAttrAuditRequest &)obj;
  1130.  
  1131.   Comparison result;
  1132.  
  1133.   if ((result = m_topology.Compare(other.m_topology)) != EqualTo)
  1134.     return result;
  1135.   if ((result = m_emergency.Compare(other.m_emergency)) != EqualTo)
  1136.     return result;
  1137.   if ((result = m_priority.Compare(other.m_priority)) != EqualTo)
  1138.     return result;
  1139.  
  1140.   return PASN_Sequence::Compare(other);
  1141. }
  1142.  
  1143.  
  1144. PINDEX H248_ContextAttrAuditRequest::GetDataLength() const
  1145. {
  1146.   PINDEX length = 0;
  1147.   if (HasOptionalField(e_topology))
  1148.     length += m_topology.GetObjectLength();
  1149.   if (HasOptionalField(e_emergency))
  1150.     length += m_emergency.GetObjectLength();
  1151.   if (HasOptionalField(e_priority))
  1152.     length += m_priority.GetObjectLength();
  1153.   return length;
  1154. }
  1155.  
  1156.  
  1157. BOOL H248_ContextAttrAuditRequest::Decode(PASN_Stream & strm)
  1158. {
  1159.   if (!PreambleDecode(strm))
  1160.     return FALSE;
  1161.  
  1162.   if (HasOptionalField(e_topology) && !m_topology.Decode(strm))
  1163.     return FALSE;
  1164.   if (HasOptionalField(e_emergency) && !m_emergency.Decode(strm))
  1165.     return FALSE;
  1166.   if (HasOptionalField(e_priority) && !m_priority.Decode(strm))
  1167.     return FALSE;
  1168.  
  1169.   return UnknownExtensionsDecode(strm);
  1170. }
  1171.  
  1172.  
  1173. void H248_ContextAttrAuditRequest::Encode(PASN_Stream & strm) const
  1174. {
  1175.   PreambleEncode(strm);
  1176.  
  1177.   if (HasOptionalField(e_topology))
  1178.     m_topology.Encode(strm);
  1179.   if (HasOptionalField(e_emergency))
  1180.     m_emergency.Encode(strm);
  1181.   if (HasOptionalField(e_priority))
  1182.     m_priority.Encode(strm);
  1183.  
  1184.   UnknownExtensionsEncode(strm);
  1185. }
  1186.  
  1187.  
  1188. PObject * H248_ContextAttrAuditRequest::Clone() const
  1189. {
  1190. #ifndef PASN_LEANANDMEAN
  1191.   PAssert(IsClass(H248_ContextAttrAuditRequest::Class()), PInvalidCast);
  1192. #endif
  1193.   return new H248_ContextAttrAuditRequest(*this);
  1194. }
  1195.  
  1196.  
  1197. //
  1198. // Command
  1199. //
  1200.  
  1201. H248_Command::H248_Command(unsigned tag, PASN_Object::TagClass tagClass)
  1202.   : PASN_Choice(tag, tagClass, 8, TRUE
  1203. #ifndef PASN_NOPRINTON
  1204.       , "addReq "
  1205.         "moveReq "
  1206.         "modReq "
  1207.         "subtractReq "
  1208.         "auditCapRequest "
  1209.         "auditValueRequest "
  1210.         "notifyReq "
  1211.         "serviceChangeReq "
  1212. #endif
  1213.     )
  1214. {
  1215. }
  1216.  
  1217.  
  1218. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1219. H248_Command::operator H248_AmmRequest &() const
  1220. #else
  1221. H248_Command::operator H248_AmmRequest &()
  1222. {
  1223. #ifndef PASN_LEANANDMEAN
  1224.   PAssert(PAssertNULL(choice)->IsDescendant(H248_AmmRequest::Class()), PInvalidCast);
  1225. #endif
  1226.   return *(H248_AmmRequest *)choice;
  1227. }
  1228.  
  1229.  
  1230. H248_Command::operator const H248_AmmRequest &() const
  1231. #endif
  1232. {
  1233. #ifndef PASN_LEANANDMEAN
  1234.   PAssert(PAssertNULL(choice)->IsDescendant(H248_AmmRequest::Class()), PInvalidCast);
  1235. #endif
  1236.   return *(H248_AmmRequest *)choice;
  1237. }
  1238.  
  1239.  
  1240. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1241. H248_Command::operator H248_SubtractRequest &() const
  1242. #else
  1243. H248_Command::operator H248_SubtractRequest &()
  1244. {
  1245. #ifndef PASN_LEANANDMEAN
  1246.   PAssert(PAssertNULL(choice)->IsDescendant(H248_SubtractRequest::Class()), PInvalidCast);
  1247. #endif
  1248.   return *(H248_SubtractRequest *)choice;
  1249. }
  1250.  
  1251.  
  1252. H248_Command::operator const H248_SubtractRequest &() const
  1253. #endif
  1254. {
  1255. #ifndef PASN_LEANANDMEAN
  1256.   PAssert(PAssertNULL(choice)->IsDescendant(H248_SubtractRequest::Class()), PInvalidCast);
  1257. #endif
  1258.   return *(H248_SubtractRequest *)choice;
  1259. }
  1260.  
  1261.  
  1262. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1263. H248_Command::operator H248_AuditRequest &() const
  1264. #else
  1265. H248_Command::operator H248_AuditRequest &()
  1266. {
  1267. #ifndef PASN_LEANANDMEAN
  1268.   PAssert(PAssertNULL(choice)->IsDescendant(H248_AuditRequest::Class()), PInvalidCast);
  1269. #endif
  1270.   return *(H248_AuditRequest *)choice;
  1271. }
  1272.  
  1273.  
  1274. H248_Command::operator const H248_AuditRequest &() const
  1275. #endif
  1276. {
  1277. #ifndef PASN_LEANANDMEAN
  1278.   PAssert(PAssertNULL(choice)->IsDescendant(H248_AuditRequest::Class()), PInvalidCast);
  1279. #endif
  1280.   return *(H248_AuditRequest *)choice;
  1281. }
  1282.  
  1283.  
  1284. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1285. H248_Command::operator H248_NotifyRequest &() const
  1286. #else
  1287. H248_Command::operator H248_NotifyRequest &()
  1288. {
  1289. #ifndef PASN_LEANANDMEAN
  1290.   PAssert(PAssertNULL(choice)->IsDescendant(H248_NotifyRequest::Class()), PInvalidCast);
  1291. #endif
  1292.   return *(H248_NotifyRequest *)choice;
  1293. }
  1294.  
  1295.  
  1296. H248_Command::operator const H248_NotifyRequest &() const
  1297. #endif
  1298. {
  1299. #ifndef PASN_LEANANDMEAN
  1300.   PAssert(PAssertNULL(choice)->IsDescendant(H248_NotifyRequest::Class()), PInvalidCast);
  1301. #endif
  1302.   return *(H248_NotifyRequest *)choice;
  1303. }
  1304.  
  1305.  
  1306. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1307. H248_Command::operator H248_ServiceChangeRequest &() const
  1308. #else
  1309. H248_Command::operator H248_ServiceChangeRequest &()
  1310. {
  1311. #ifndef PASN_LEANANDMEAN
  1312.   PAssert(PAssertNULL(choice)->IsDescendant(H248_ServiceChangeRequest::Class()), PInvalidCast);
  1313. #endif
  1314.   return *(H248_ServiceChangeRequest *)choice;
  1315. }
  1316.  
  1317.  
  1318. H248_Command::operator const H248_ServiceChangeRequest &() const
  1319. #endif
  1320. {
  1321. #ifndef PASN_LEANANDMEAN
  1322.   PAssert(PAssertNULL(choice)->IsDescendant(H248_ServiceChangeRequest::Class()), PInvalidCast);
  1323. #endif
  1324.   return *(H248_ServiceChangeRequest *)choice;
  1325. }
  1326.  
  1327.  
  1328. BOOL H248_Command::CreateObject()
  1329. {
  1330.   switch (tag) {
  1331.     case e_addReq :
  1332.     case e_moveReq :
  1333.     case e_modReq :
  1334.       choice = new H248_AmmRequest();
  1335.       return TRUE;
  1336.     case e_subtractReq :
  1337.       choice = new H248_SubtractRequest();
  1338.       return TRUE;
  1339.     case e_auditCapRequest :
  1340.     case e_auditValueRequest :
  1341.       choice = new H248_AuditRequest();
  1342.       return TRUE;
  1343.     case e_notifyReq :
  1344.       choice = new H248_NotifyRequest();
  1345.       return TRUE;
  1346.     case e_serviceChangeReq :
  1347.       choice = new H248_ServiceChangeRequest();
  1348.       return TRUE;
  1349.   }
  1350.  
  1351.   choice = NULL;
  1352.   return FALSE;
  1353. }
  1354.  
  1355.  
  1356. PObject * H248_Command::Clone() const
  1357. {
  1358. #ifndef PASN_LEANANDMEAN
  1359.   PAssert(IsClass(H248_Command::Class()), PInvalidCast);
  1360. #endif
  1361.   return new H248_Command(*this);
  1362. }
  1363.  
  1364.  
  1365. //
  1366. // CommandReply
  1367. //
  1368.  
  1369. H248_CommandReply::H248_CommandReply(unsigned tag, PASN_Object::TagClass tagClass)
  1370.   : PASN_Choice(tag, tagClass, 8, TRUE
  1371. #ifndef PASN_NOPRINTON
  1372.       , "addReply "
  1373.         "moveReply "
  1374.         "modReply "
  1375.         "subtractReply "
  1376.         "auditCapReply "
  1377.         "auditValueReply "
  1378.         "notifyReply "
  1379.         "serviceChangeReply "
  1380. #endif
  1381.     )
  1382. {
  1383. }
  1384.  
  1385.  
  1386. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1387. H248_CommandReply::operator H248_AmmsReply &() const
  1388. #else
  1389. H248_CommandReply::operator H248_AmmsReply &()
  1390. {
  1391. #ifndef PASN_LEANANDMEAN
  1392.   PAssert(PAssertNULL(choice)->IsDescendant(H248_AmmsReply::Class()), PInvalidCast);
  1393. #endif
  1394.   return *(H248_AmmsReply *)choice;
  1395. }
  1396.  
  1397.  
  1398. H248_CommandReply::operator const H248_AmmsReply &() const
  1399. #endif
  1400. {
  1401. #ifndef PASN_LEANANDMEAN
  1402.   PAssert(PAssertNULL(choice)->IsDescendant(H248_AmmsReply::Class()), PInvalidCast);
  1403. #endif
  1404.   return *(H248_AmmsReply *)choice;
  1405. }
  1406.  
  1407.  
  1408. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1409. H248_CommandReply::operator H248_AuditReply &() const
  1410. #else
  1411. H248_CommandReply::operator H248_AuditReply &()
  1412. {
  1413. #ifndef PASN_LEANANDMEAN
  1414.   PAssert(PAssertNULL(choice)->IsDescendant(H248_AuditReply::Class()), PInvalidCast);
  1415. #endif
  1416.   return *(H248_AuditReply *)choice;
  1417. }
  1418.  
  1419.  
  1420. H248_CommandReply::operator const H248_AuditReply &() const
  1421. #endif
  1422. {
  1423. #ifndef PASN_LEANANDMEAN
  1424.   PAssert(PAssertNULL(choice)->IsDescendant(H248_AuditReply::Class()), PInvalidCast);
  1425. #endif
  1426.   return *(H248_AuditReply *)choice;
  1427. }
  1428.  
  1429.  
  1430. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1431. H248_CommandReply::operator H248_NotifyReply &() const
  1432. #else
  1433. H248_CommandReply::operator H248_NotifyReply &()
  1434. {
  1435. #ifndef PASN_LEANANDMEAN
  1436.   PAssert(PAssertNULL(choice)->IsDescendant(H248_NotifyReply::Class()), PInvalidCast);
  1437. #endif
  1438.   return *(H248_NotifyReply *)choice;
  1439. }
  1440.  
  1441.  
  1442. H248_CommandReply::operator const H248_NotifyReply &() const
  1443. #endif
  1444. {
  1445. #ifndef PASN_LEANANDMEAN
  1446.   PAssert(PAssertNULL(choice)->IsDescendant(H248_NotifyReply::Class()), PInvalidCast);
  1447. #endif
  1448.   return *(H248_NotifyReply *)choice;
  1449. }
  1450.  
  1451.  
  1452. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1453. H248_CommandReply::operator H248_ServiceChangeReply &() const
  1454. #else
  1455. H248_CommandReply::operator H248_ServiceChangeReply &()
  1456. {
  1457. #ifndef PASN_LEANANDMEAN
  1458.   PAssert(PAssertNULL(choice)->IsDescendant(H248_ServiceChangeReply::Class()), PInvalidCast);
  1459. #endif
  1460.   return *(H248_ServiceChangeReply *)choice;
  1461. }
  1462.  
  1463.  
  1464. H248_CommandReply::operator const H248_ServiceChangeReply &() const
  1465. #endif
  1466. {
  1467. #ifndef PASN_LEANANDMEAN
  1468.   PAssert(PAssertNULL(choice)->IsDescendant(H248_ServiceChangeReply::Class()), PInvalidCast);
  1469. #endif
  1470.   return *(H248_ServiceChangeReply *)choice;
  1471. }
  1472.  
  1473.  
  1474. BOOL H248_CommandReply::CreateObject()
  1475. {
  1476.   switch (tag) {
  1477.     case e_addReply :
  1478.     case e_moveReply :
  1479.     case e_modReply :
  1480.     case e_subtractReply :
  1481.       choice = new H248_AmmsReply();
  1482.       return TRUE;
  1483.     case e_auditCapReply :
  1484.     case e_auditValueReply :
  1485.       choice = new H248_AuditReply();
  1486.       return TRUE;
  1487.     case e_notifyReply :
  1488.       choice = new H248_NotifyReply();
  1489.       return TRUE;
  1490.     case e_serviceChangeReply :
  1491.       choice = new H248_ServiceChangeReply();
  1492.       return TRUE;
  1493.   }
  1494.  
  1495.   choice = NULL;
  1496.   return FALSE;
  1497. }
  1498.  
  1499.  
  1500. PObject * H248_CommandReply::Clone() const
  1501. {
  1502. #ifndef PASN_LEANANDMEAN
  1503.   PAssert(IsClass(H248_CommandReply::Class()), PInvalidCast);
  1504. #endif
  1505.   return new H248_CommandReply(*this);
  1506. }
  1507.  
  1508.  
  1509. //
  1510. // AmmDescriptor
  1511. //
  1512.  
  1513. H248_AmmDescriptor::H248_AmmDescriptor(unsigned tag, PASN_Object::TagClass tagClass)
  1514.   : PASN_Choice(tag, tagClass, 8, TRUE
  1515. #ifndef PASN_NOPRINTON
  1516.       , "mediaDescriptor "
  1517.         "modemDescriptor "
  1518.         "muxDescriptor "
  1519.         "eventsDescriptor "
  1520.         "eventBufferDescriptor "
  1521.         "signalsDescriptor "
  1522.         "digitMapDescriptor "
  1523.         "auditDescriptor "
  1524. #endif
  1525.     )
  1526. {
  1527. }
  1528.  
  1529.  
  1530. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1531. H248_AmmDescriptor::operator H248_MediaDescriptor &() const
  1532. #else
  1533. H248_AmmDescriptor::operator H248_MediaDescriptor &()
  1534. {
  1535. #ifndef PASN_LEANANDMEAN
  1536.   PAssert(PAssertNULL(choice)->IsDescendant(H248_MediaDescriptor::Class()), PInvalidCast);
  1537. #endif
  1538.   return *(H248_MediaDescriptor *)choice;
  1539. }
  1540.  
  1541.  
  1542. H248_AmmDescriptor::operator const H248_MediaDescriptor &() const
  1543. #endif
  1544. {
  1545. #ifndef PASN_LEANANDMEAN
  1546.   PAssert(PAssertNULL(choice)->IsDescendant(H248_MediaDescriptor::Class()), PInvalidCast);
  1547. #endif
  1548.   return *(H248_MediaDescriptor *)choice;
  1549. }
  1550.  
  1551.  
  1552. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1553. H248_AmmDescriptor::operator H248_ModemDescriptor &() const
  1554. #else
  1555. H248_AmmDescriptor::operator H248_ModemDescriptor &()
  1556. {
  1557. #ifndef PASN_LEANANDMEAN
  1558.   PAssert(PAssertNULL(choice)->IsDescendant(H248_ModemDescriptor::Class()), PInvalidCast);
  1559. #endif
  1560.   return *(H248_ModemDescriptor *)choice;
  1561. }
  1562.  
  1563.  
  1564. H248_AmmDescriptor::operator const H248_ModemDescriptor &() const
  1565. #endif
  1566. {
  1567. #ifndef PASN_LEANANDMEAN
  1568.   PAssert(PAssertNULL(choice)->IsDescendant(H248_ModemDescriptor::Class()), PInvalidCast);
  1569. #endif
  1570.   return *(H248_ModemDescriptor *)choice;
  1571. }
  1572.  
  1573.  
  1574. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1575. H248_AmmDescriptor::operator H248_MuxDescriptor &() const
  1576. #else
  1577. H248_AmmDescriptor::operator H248_MuxDescriptor &()
  1578. {
  1579. #ifndef PASN_LEANANDMEAN
  1580.   PAssert(PAssertNULL(choice)->IsDescendant(H248_MuxDescriptor::Class()), PInvalidCast);
  1581. #endif
  1582.   return *(H248_MuxDescriptor *)choice;
  1583. }
  1584.  
  1585.  
  1586. H248_AmmDescriptor::operator const H248_MuxDescriptor &() const
  1587. #endif
  1588. {
  1589. #ifndef PASN_LEANANDMEAN
  1590.   PAssert(PAssertNULL(choice)->IsDescendant(H248_MuxDescriptor::Class()), PInvalidCast);
  1591. #endif
  1592.   return *(H248_MuxDescriptor *)choice;
  1593. }
  1594.  
  1595.  
  1596. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1597. H248_AmmDescriptor::operator H248_EventsDescriptor &() const
  1598. #else
  1599. H248_AmmDescriptor::operator H248_EventsDescriptor &()
  1600. {
  1601. #ifndef PASN_LEANANDMEAN
  1602.   PAssert(PAssertNULL(choice)->IsDescendant(H248_EventsDescriptor::Class()), PInvalidCast);
  1603. #endif
  1604.   return *(H248_EventsDescriptor *)choice;
  1605. }
  1606.  
  1607.  
  1608. H248_AmmDescriptor::operator const H248_EventsDescriptor &() const
  1609. #endif
  1610. {
  1611. #ifndef PASN_LEANANDMEAN
  1612.   PAssert(PAssertNULL(choice)->IsDescendant(H248_EventsDescriptor::Class()), PInvalidCast);
  1613. #endif
  1614.   return *(H248_EventsDescriptor *)choice;
  1615. }
  1616.  
  1617.  
  1618. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1619. H248_AmmDescriptor::operator H248_EventBufferDescriptor &() const
  1620. #else
  1621. H248_AmmDescriptor::operator H248_EventBufferDescriptor &()
  1622. {
  1623. #ifndef PASN_LEANANDMEAN
  1624.   PAssert(PAssertNULL(choice)->IsDescendant(H248_EventBufferDescriptor::Class()), PInvalidCast);
  1625. #endif
  1626.   return *(H248_EventBufferDescriptor *)choice;
  1627. }
  1628.  
  1629.  
  1630. H248_AmmDescriptor::operator const H248_EventBufferDescriptor &() const
  1631. #endif
  1632. {
  1633. #ifndef PASN_LEANANDMEAN
  1634.   PAssert(PAssertNULL(choice)->IsDescendant(H248_EventBufferDescriptor::Class()), PInvalidCast);
  1635. #endif
  1636.   return *(H248_EventBufferDescriptor *)choice;
  1637. }
  1638.  
  1639.  
  1640. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1641. H248_AmmDescriptor::operator H248_SignalsDescriptor &() const
  1642. #else
  1643. H248_AmmDescriptor::operator H248_SignalsDescriptor &()
  1644. {
  1645. #ifndef PASN_LEANANDMEAN
  1646.   PAssert(PAssertNULL(choice)->IsDescendant(H248_SignalsDescriptor::Class()), PInvalidCast);
  1647. #endif
  1648.   return *(H248_SignalsDescriptor *)choice;
  1649. }
  1650.  
  1651.  
  1652. H248_AmmDescriptor::operator const H248_SignalsDescriptor &() const
  1653. #endif
  1654. {
  1655. #ifndef PASN_LEANANDMEAN
  1656.   PAssert(PAssertNULL(choice)->IsDescendant(H248_SignalsDescriptor::Class()), PInvalidCast);
  1657. #endif
  1658.   return *(H248_SignalsDescriptor *)choice;
  1659. }
  1660.  
  1661.  
  1662. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1663. H248_AmmDescriptor::operator H248_DigitMapDescriptor &() const
  1664. #else
  1665. H248_AmmDescriptor::operator H248_DigitMapDescriptor &()
  1666. {
  1667. #ifndef PASN_LEANANDMEAN
  1668.   PAssert(PAssertNULL(choice)->IsDescendant(H248_DigitMapDescriptor::Class()), PInvalidCast);
  1669. #endif
  1670.   return *(H248_DigitMapDescriptor *)choice;
  1671. }
  1672.  
  1673.  
  1674. H248_AmmDescriptor::operator const H248_DigitMapDescriptor &() const
  1675. #endif
  1676. {
  1677. #ifndef PASN_LEANANDMEAN
  1678.   PAssert(PAssertNULL(choice)->IsDescendant(H248_DigitMapDescriptor::Class()), PInvalidCast);
  1679. #endif
  1680.   return *(H248_DigitMapDescriptor *)choice;
  1681. }
  1682.  
  1683.  
  1684. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1685. H248_AmmDescriptor::operator H248_AuditDescriptor &() const
  1686. #else
  1687. H248_AmmDescriptor::operator H248_AuditDescriptor &()
  1688. {
  1689. #ifndef PASN_LEANANDMEAN
  1690.   PAssert(PAssertNULL(choice)->IsDescendant(H248_AuditDescriptor::Class()), PInvalidCast);
  1691. #endif
  1692.   return *(H248_AuditDescriptor *)choice;
  1693. }
  1694.  
  1695.  
  1696. H248_AmmDescriptor::operator const H248_AuditDescriptor &() const
  1697. #endif
  1698. {
  1699. #ifndef PASN_LEANANDMEAN
  1700.   PAssert(PAssertNULL(choice)->IsDescendant(H248_AuditDescriptor::Class()), PInvalidCast);
  1701. #endif
  1702.   return *(H248_AuditDescriptor *)choice;
  1703. }
  1704.  
  1705.  
  1706. BOOL H248_AmmDescriptor::CreateObject()
  1707. {
  1708.   switch (tag) {
  1709.     case e_mediaDescriptor :
  1710.       choice = new H248_MediaDescriptor();
  1711.       return TRUE;
  1712.     case e_modemDescriptor :
  1713.       choice = new H248_ModemDescriptor();
  1714.       return TRUE;
  1715.     case e_muxDescriptor :
  1716.       choice = new H248_MuxDescriptor();
  1717.       return TRUE;
  1718.     case e_eventsDescriptor :
  1719.       choice = new H248_EventsDescriptor();
  1720.       return TRUE;
  1721.     case e_eventBufferDescriptor :
  1722.       choice = new H248_EventBufferDescriptor();
  1723.       return TRUE;
  1724.     case e_signalsDescriptor :
  1725.       choice = new H248_SignalsDescriptor();
  1726.       return TRUE;
  1727.     case e_digitMapDescriptor :
  1728.       choice = new H248_DigitMapDescriptor();
  1729.       return TRUE;
  1730.     case e_auditDescriptor :
  1731.       choice = new H248_AuditDescriptor();
  1732.       return TRUE;
  1733.   }
  1734.  
  1735.   choice = NULL;
  1736.   return FALSE;
  1737. }
  1738.  
  1739.  
  1740. PObject * H248_AmmDescriptor::Clone() const
  1741. {
  1742. #ifndef PASN_LEANANDMEAN
  1743.   PAssert(IsClass(H248_AmmDescriptor::Class()), PInvalidCast);
  1744. #endif
  1745.   return new H248_AmmDescriptor(*this);
  1746. }
  1747.  
  1748.  
  1749. //
  1750. // AuditReply
  1751. //
  1752.  
  1753. H248_AuditReply::H248_AuditReply(unsigned tag, PASN_Object::TagClass tagClass)
  1754.   : PASN_Choice(tag, tagClass, 3, TRUE
  1755. #ifndef PASN_NOPRINTON
  1756.       , "contextAuditResult "
  1757.         "error "
  1758.         "auditResult "
  1759. #endif
  1760.     )
  1761. {
  1762. }
  1763.  
  1764.  
  1765. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1766. H248_AuditReply::operator H248_TerminationIDList &() const
  1767. #else
  1768. H248_AuditReply::operator H248_TerminationIDList &()
  1769. {
  1770. #ifndef PASN_LEANANDMEAN
  1771.   PAssert(PAssertNULL(choice)->IsDescendant(H248_TerminationIDList::Class()), PInvalidCast);
  1772. #endif
  1773.   return *(H248_TerminationIDList *)choice;
  1774. }
  1775.  
  1776.  
  1777. H248_AuditReply::operator const H248_TerminationIDList &() const
  1778. #endif
  1779. {
  1780. #ifndef PASN_LEANANDMEAN
  1781.   PAssert(PAssertNULL(choice)->IsDescendant(H248_TerminationIDList::Class()), PInvalidCast);
  1782. #endif
  1783.   return *(H248_TerminationIDList *)choice;
  1784. }
  1785.  
  1786.  
  1787. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1788. H248_AuditReply::operator H248_ErrorDescriptor &() const
  1789. #else
  1790. H248_AuditReply::operator H248_ErrorDescriptor &()
  1791. {
  1792. #ifndef PASN_LEANANDMEAN
  1793.   PAssert(PAssertNULL(choice)->IsDescendant(H248_ErrorDescriptor::Class()), PInvalidCast);
  1794. #endif
  1795.   return *(H248_ErrorDescriptor *)choice;
  1796. }
  1797.  
  1798.  
  1799. H248_AuditReply::operator const H248_ErrorDescriptor &() const
  1800. #endif
  1801. {
  1802. #ifndef PASN_LEANANDMEAN
  1803.   PAssert(PAssertNULL(choice)->IsDescendant(H248_ErrorDescriptor::Class()), PInvalidCast);
  1804. #endif
  1805.   return *(H248_ErrorDescriptor *)choice;
  1806. }
  1807.  
  1808.  
  1809. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1810. H248_AuditReply::operator H248_AuditResult &() const
  1811. #else
  1812. H248_AuditReply::operator H248_AuditResult &()
  1813. {
  1814. #ifndef PASN_LEANANDMEAN
  1815.   PAssert(PAssertNULL(choice)->IsDescendant(H248_AuditResult::Class()), PInvalidCast);
  1816. #endif
  1817.   return *(H248_AuditResult *)choice;
  1818. }
  1819.  
  1820.  
  1821. H248_AuditReply::operator const H248_AuditResult &() const
  1822. #endif
  1823. {
  1824. #ifndef PASN_LEANANDMEAN
  1825.   PAssert(PAssertNULL(choice)->IsDescendant(H248_AuditResult::Class()), PInvalidCast);
  1826. #endif
  1827.   return *(H248_AuditResult *)choice;
  1828. }
  1829.  
  1830.  
  1831. BOOL H248_AuditReply::CreateObject()
  1832. {
  1833.   switch (tag) {
  1834.     case e_contextAuditResult :
  1835.       choice = new H248_TerminationIDList();
  1836.       return TRUE;
  1837.     case e_error :
  1838.       choice = new H248_ErrorDescriptor();
  1839.       return TRUE;
  1840.     case e_auditResult :
  1841.       choice = new H248_AuditResult();
  1842.       return TRUE;
  1843.   }
  1844.  
  1845.   choice = NULL;
  1846.   return FALSE;
  1847. }
  1848.  
  1849.  
  1850. PObject * H248_AuditReply::Clone() const
  1851. {
  1852. #ifndef PASN_LEANANDMEAN
  1853.   PAssert(IsClass(H248_AuditReply::Class()), PInvalidCast);
  1854. #endif
  1855.   return new H248_AuditReply(*this);
  1856. }
  1857.  
  1858.  
  1859. //
  1860. // TerminationAudit
  1861. //
  1862.  
  1863. H248_TerminationAudit::H248_TerminationAudit(unsigned tag, PASN_Object::TagClass tagClass)
  1864.   : PASN_Array(tag, tagClass)
  1865. {
  1866. }
  1867.  
  1868.  
  1869. PASN_Object * H248_TerminationAudit::CreateObject() const
  1870. {
  1871.   return new H248_AuditReturnParameter;
  1872. }
  1873.  
  1874.  
  1875. H248_AuditReturnParameter & H248_TerminationAudit::operator[](PINDEX i) const
  1876. {
  1877.   return (H248_AuditReturnParameter &)array[i];
  1878. }
  1879.  
  1880.  
  1881. PObject * H248_TerminationAudit::Clone() const
  1882. {
  1883. #ifndef PASN_LEANANDMEAN
  1884.   PAssert(IsClass(H248_TerminationAudit::Class()), PInvalidCast);
  1885. #endif
  1886.   return new H248_TerminationAudit(*this);
  1887. }
  1888.  
  1889.  
  1890. //
  1891. // AuditReturnParameter
  1892. //
  1893.  
  1894. H248_AuditReturnParameter::H248_AuditReturnParameter(unsigned tag, PASN_Object::TagClass tagClass)
  1895.   : PASN_Choice(tag, tagClass, 12, TRUE
  1896. #ifndef PASN_NOPRINTON
  1897.       , "errorDescriptor "
  1898.         "mediaDescriptor "
  1899.         "modemDescriptor "
  1900.         "muxDescriptor "
  1901.         "eventsDescriptor "
  1902.         "eventBufferDescriptor "
  1903.         "signalsDescriptor "
  1904.         "digitMapDescriptor "
  1905.         "observedEventsDescriptor "
  1906.         "statisticsDescriptor "
  1907.         "packagesDescriptor "
  1908.         "emptyDescriptors "
  1909. #endif
  1910.     )
  1911. {
  1912. }
  1913.  
  1914.  
  1915. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1916. H248_AuditReturnParameter::operator H248_ErrorDescriptor &() const
  1917. #else
  1918. H248_AuditReturnParameter::operator H248_ErrorDescriptor &()
  1919. {
  1920. #ifndef PASN_LEANANDMEAN
  1921.   PAssert(PAssertNULL(choice)->IsDescendant(H248_ErrorDescriptor::Class()), PInvalidCast);
  1922. #endif
  1923.   return *(H248_ErrorDescriptor *)choice;
  1924. }
  1925.  
  1926.  
  1927. H248_AuditReturnParameter::operator const H248_ErrorDescriptor &() const
  1928. #endif
  1929. {
  1930. #ifndef PASN_LEANANDMEAN
  1931.   PAssert(PAssertNULL(choice)->IsDescendant(H248_ErrorDescriptor::Class()), PInvalidCast);
  1932. #endif
  1933.   return *(H248_ErrorDescriptor *)choice;
  1934. }
  1935.  
  1936.  
  1937. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1938. H248_AuditReturnParameter::operator H248_MediaDescriptor &() const
  1939. #else
  1940. H248_AuditReturnParameter::operator H248_MediaDescriptor &()
  1941. {
  1942. #ifndef PASN_LEANANDMEAN
  1943.   PAssert(PAssertNULL(choice)->IsDescendant(H248_MediaDescriptor::Class()), PInvalidCast);
  1944. #endif
  1945.   return *(H248_MediaDescriptor *)choice;
  1946. }
  1947.  
  1948.  
  1949. H248_AuditReturnParameter::operator const H248_MediaDescriptor &() const
  1950. #endif
  1951. {
  1952. #ifndef PASN_LEANANDMEAN
  1953.   PAssert(PAssertNULL(choice)->IsDescendant(H248_MediaDescriptor::Class()), PInvalidCast);
  1954. #endif
  1955.   return *(H248_MediaDescriptor *)choice;
  1956. }
  1957.  
  1958.  
  1959. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1960. H248_AuditReturnParameter::operator H248_ModemDescriptor &() const
  1961. #else
  1962. H248_AuditReturnParameter::operator H248_ModemDescriptor &()
  1963. {
  1964. #ifndef PASN_LEANANDMEAN
  1965.   PAssert(PAssertNULL(choice)->IsDescendant(H248_ModemDescriptor::Class()), PInvalidCast);
  1966. #endif
  1967.   return *(H248_ModemDescriptor *)choice;
  1968. }
  1969.  
  1970.  
  1971. H248_AuditReturnParameter::operator const H248_ModemDescriptor &() const
  1972. #endif
  1973. {
  1974. #ifndef PASN_LEANANDMEAN
  1975.   PAssert(PAssertNULL(choice)->IsDescendant(H248_ModemDescriptor::Class()), PInvalidCast);
  1976. #endif
  1977.   return *(H248_ModemDescriptor *)choice;
  1978. }
  1979.  
  1980.  
  1981. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1982. H248_AuditReturnParameter::operator H248_MuxDescriptor &() const
  1983. #else
  1984. H248_AuditReturnParameter::operator H248_MuxDescriptor &()
  1985. {
  1986. #ifndef PASN_LEANANDMEAN
  1987.   PAssert(PAssertNULL(choice)->IsDescendant(H248_MuxDescriptor::Class()), PInvalidCast);
  1988. #endif
  1989.   return *(H248_MuxDescriptor *)choice;
  1990. }
  1991.  
  1992.  
  1993. H248_AuditReturnParameter::operator const H248_MuxDescriptor &() const
  1994. #endif
  1995. {
  1996. #ifndef PASN_LEANANDMEAN
  1997.   PAssert(PAssertNULL(choice)->IsDescendant(H248_MuxDescriptor::Class()), PInvalidCast);
  1998. #endif
  1999.   return *(H248_MuxDescriptor *)choice;
  2000. }
  2001.  
  2002.  
  2003. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  2004. H248_AuditReturnParameter::operator H248_EventsDescriptor &() const
  2005. #else
  2006. H248_AuditReturnParameter::operator H248_EventsDescriptor &()
  2007. {
  2008. #ifndef PASN_LEANANDMEAN
  2009.   PAssert(PAssertNULL(choice)->IsDescendant(H248_EventsDescriptor::Class()), PInvalidCast);
  2010. #endif
  2011.   return *(H248_EventsDescriptor *)choice;
  2012. }
  2013.  
  2014.  
  2015. H248_AuditReturnParameter::operator const H248_EventsDescriptor &() const
  2016. #endif
  2017. {
  2018. #ifndef PASN_LEANANDMEAN
  2019.   PAssert(PAssertNULL(choice)->IsDescendant(H248_EventsDescriptor::Class()), PInvalidCast);
  2020. #endif
  2021.   return *(H248_EventsDescriptor *)choice;
  2022. }
  2023.  
  2024.  
  2025. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  2026. H248_AuditReturnParameter::operator H248_EventBufferDescriptor &() const
  2027. #else
  2028. H248_AuditReturnParameter::operator H248_EventBufferDescriptor &()
  2029. {
  2030. #ifndef PASN_LEANANDMEAN
  2031.   PAssert(PAssertNULL(choice)->IsDescendant(H248_EventBufferDescriptor::Class()), PInvalidCast);
  2032. #endif
  2033.   return *(H248_EventBufferDescriptor *)choice;
  2034. }
  2035.  
  2036.  
  2037. H248_AuditReturnParameter::operator const H248_EventBufferDescriptor &() const
  2038. #endif
  2039. {
  2040. #ifndef PASN_LEANANDMEAN
  2041.   PAssert(PAssertNULL(choice)->IsDescendant(H248_EventBufferDescriptor::Class()), PInvalidCast);
  2042. #endif
  2043.   return *(H248_EventBufferDescriptor *)choice;
  2044. }
  2045.  
  2046.  
  2047. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  2048. H248_AuditReturnParameter::operator H248_SignalsDescriptor &() const
  2049. #else
  2050. H248_AuditReturnParameter::operator H248_SignalsDescriptor &()
  2051. {
  2052. #ifndef PASN_LEANANDMEAN
  2053.   PAssert(PAssertNULL(choice)->IsDescendant(H248_SignalsDescriptor::Class()), PInvalidCast);
  2054. #endif
  2055.   return *(H248_SignalsDescriptor *)choice;
  2056. }
  2057.  
  2058.  
  2059. H248_AuditReturnParameter::operator const H248_SignalsDescriptor &() const
  2060. #endif
  2061. {
  2062. #ifndef PASN_LEANANDMEAN
  2063.   PAssert(PAssertNULL(choice)->IsDescendant(H248_SignalsDescriptor::Class()), PInvalidCast);
  2064. #endif
  2065.   return *(H248_SignalsDescriptor *)choice;
  2066. }
  2067.  
  2068.  
  2069. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  2070. H248_AuditReturnParameter::operator H248_DigitMapDescriptor &() const
  2071. #else
  2072. H248_AuditReturnParameter::operator H248_DigitMapDescriptor &()
  2073. {
  2074. #ifndef PASN_LEANANDMEAN
  2075.   PAssert(PAssertNULL(choice)->IsDescendant(H248_DigitMapDescriptor::Class()), PInvalidCast);
  2076. #endif
  2077.   return *(H248_DigitMapDescriptor *)choice;
  2078. }
  2079.  
  2080.  
  2081. H248_AuditReturnParameter::operator const H248_DigitMapDescriptor &() const
  2082. #endif
  2083. {
  2084. #ifndef PASN_LEANANDMEAN
  2085.   PAssert(PAssertNULL(choice)->IsDescendant(H248_DigitMapDescriptor::Class()), PInvalidCast);
  2086. #endif
  2087.   return *(H248_DigitMapDescriptor *)choice;
  2088. }
  2089.  
  2090.  
  2091. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  2092. H248_AuditReturnParameter::operator H248_ObservedEventsDescriptor &() const
  2093. #else
  2094. H248_AuditReturnParameter::operator H248_ObservedEventsDescriptor &()
  2095. {
  2096. #ifndef PASN_LEANANDMEAN
  2097.   PAssert(PAssertNULL(choice)->IsDescendant(H248_ObservedEventsDescriptor::Class()), PInvalidCast);
  2098. #endif
  2099.   return *(H248_ObservedEventsDescriptor *)choice;
  2100. }
  2101.  
  2102.  
  2103. H248_AuditReturnParameter::operator const H248_ObservedEventsDescriptor &() const
  2104. #endif
  2105. {
  2106. #ifndef PASN_LEANANDMEAN
  2107.   PAssert(PAssertNULL(choice)->IsDescendant(H248_ObservedEventsDescriptor::Class()), PInvalidCast);
  2108. #endif
  2109.   return *(H248_ObservedEventsDescriptor *)choice;
  2110. }
  2111.  
  2112.  
  2113. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  2114. H248_AuditReturnParameter::operator H248_StatisticsDescriptor &() const
  2115. #else
  2116. H248_AuditReturnParameter::operator H248_StatisticsDescriptor &()
  2117. {
  2118. #ifndef PASN_LEANANDMEAN
  2119.   PAssert(PAssertNULL(choice)->IsDescendant(H248_StatisticsDescriptor::Class()), PInvalidCast);
  2120. #endif
  2121.   return *(H248_StatisticsDescriptor *)choice;
  2122. }
  2123.  
  2124.  
  2125. H248_AuditReturnParameter::operator const H248_StatisticsDescriptor &() const
  2126. #endif
  2127. {
  2128. #ifndef PASN_LEANANDMEAN
  2129.   PAssert(PAssertNULL(choice)->IsDescendant(H248_StatisticsDescriptor::Class()), PInvalidCast);
  2130. #endif
  2131.   return *(H248_StatisticsDescriptor *)choice;
  2132. }
  2133.  
  2134.  
  2135. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  2136. H248_AuditReturnParameter::operator H248_PackagesDescriptor &() const
  2137. #else
  2138. H248_AuditReturnParameter::operator H248_PackagesDescriptor &()
  2139. {
  2140. #ifndef PASN_LEANANDMEAN
  2141.   PAssert(PAssertNULL(choice)->IsDescendant(H248_PackagesDescriptor::Class()), PInvalidCast);
  2142. #endif
  2143.   return *(H248_PackagesDescriptor *)choice;
  2144. }
  2145.  
  2146.  
  2147. H248_AuditReturnParameter::operator const H248_PackagesDescriptor &() const
  2148. #endif
  2149. {
  2150. #ifndef PASN_LEANANDMEAN
  2151.   PAssert(PAssertNULL(choice)->IsDescendant(H248_PackagesDescriptor::Class()), PInvalidCast);
  2152. #endif
  2153.   return *(H248_PackagesDescriptor *)choice;
  2154. }
  2155.  
  2156.  
  2157. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  2158. H248_AuditReturnParameter::operator H248_AuditDescriptor &() const
  2159. #else
  2160. H248_AuditReturnParameter::operator H248_AuditDescriptor &()
  2161. {
  2162. #ifndef PASN_LEANANDMEAN
  2163.   PAssert(PAssertNULL(choice)->IsDescendant(H248_AuditDescriptor::Class()), PInvalidCast);
  2164. #endif
  2165.   return *(H248_AuditDescriptor *)choice;
  2166. }
  2167.  
  2168.  
  2169. H248_AuditReturnParameter::operator const H248_AuditDescriptor &() const
  2170. #endif
  2171. {
  2172. #ifndef PASN_LEANANDMEAN
  2173.   PAssert(PAssertNULL(choice)->IsDescendant(H248_AuditDescriptor::Class()), PInvalidCast);
  2174. #endif
  2175.   return *(H248_AuditDescriptor *)choice;
  2176. }
  2177.  
  2178.  
  2179. BOOL H248_AuditReturnParameter::CreateObject()
  2180. {
  2181.   switch (tag) {
  2182.     case e_errorDescriptor :
  2183.       choice = new H248_ErrorDescriptor();
  2184.       return TRUE;
  2185.     case e_mediaDescriptor :
  2186.       choice = new H248_MediaDescriptor();
  2187.       return TRUE;
  2188.     case e_modemDescriptor :
  2189.       choice = new H248_ModemDescriptor();
  2190.       return TRUE;
  2191.     case e_muxDescriptor :
  2192.       choice = new H248_MuxDescriptor();
  2193.       return TRUE;
  2194.     case e_eventsDescriptor :
  2195.       choice = new H248_EventsDescriptor();
  2196.       return TRUE;
  2197.     case e_eventBufferDescriptor :
  2198.       choice = new H248_EventBufferDescriptor();
  2199.       return TRUE;
  2200.     case e_signalsDescriptor :
  2201.       choice = new H248_SignalsDescriptor();
  2202.       return TRUE;
  2203.     case e_digitMapDescriptor :
  2204.       choice = new H248_DigitMapDescriptor();
  2205.       return TRUE;
  2206.     case e_observedEventsDescriptor :
  2207.       choice = new H248_ObservedEventsDescriptor();
  2208.       return TRUE;
  2209.     case e_statisticsDescriptor :
  2210.       choice = new H248_StatisticsDescriptor();
  2211.       return TRUE;
  2212.     case e_packagesDescriptor :
  2213.       choice = new H248_PackagesDescriptor();
  2214.       return TRUE;
  2215.     case e_emptyDescriptors :
  2216.       choice = new H248_AuditDescriptor();
  2217.       return TRUE;
  2218.   }
  2219.  
  2220.   choice = NULL;
  2221.   return FALSE;
  2222. }
  2223.  
  2224.  
  2225. PObject * H248_AuditReturnParameter::Clone() const
  2226. {
  2227. #ifndef PASN_LEANANDMEAN
  2228.   PAssert(IsClass(H248_AuditReturnParameter::Class()), PInvalidCast);
  2229. #endif
  2230.   return new H248_AuditReturnParameter(*this);
  2231. }
  2232.  
  2233.  
  2234. //
  2235. // IndAuditParameter
  2236. //
  2237.  
  2238. H248_IndAuditParameter::H248_IndAuditParameter(unsigned tag, PASN_Object::TagClass tagClass)
  2239.   : PASN_Choice(tag, tagClass, 7, TRUE
  2240. #ifndef PASN_NOPRINTON
  2241.       , "indaudmediaDescriptor "
  2242.         "indaudeventsDescriptor "
  2243.         "indaudeventBufferDescriptor "
  2244.         "indaudsignalsDescriptor "
  2245.         "indauddigitMapDescriptor "
  2246.         "indaudstatisticsDescriptor "
  2247.         "indaudpackagesDescriptor "
  2248. #endif
  2249.     )
  2250. {
  2251. }
  2252.  
  2253.  
  2254. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  2255. H248_IndAuditParameter::operator H248_IndAudMediaDescriptor &() const
  2256. #else
  2257. H248_IndAuditParameter::operator H248_IndAudMediaDescriptor &()
  2258. {
  2259. #ifndef PASN_LEANANDMEAN
  2260.   PAssert(PAssertNULL(choice)->IsDescendant(H248_IndAudMediaDescriptor::Class()), PInvalidCast);
  2261. #endif
  2262.   return *(H248_IndAudMediaDescriptor *)choice;
  2263. }
  2264.  
  2265.  
  2266. H248_IndAuditParameter::operator const H248_IndAudMediaDescriptor &() const
  2267. #endif
  2268. {
  2269. #ifndef PASN_LEANANDMEAN
  2270.   PAssert(PAssertNULL(choice)->IsDescendant(H248_IndAudMediaDescriptor::Class()), PInvalidCast);
  2271. #endif
  2272.   return *(H248_IndAudMediaDescriptor *)choice;
  2273. }
  2274.  
  2275.  
  2276. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  2277. H248_IndAuditParameter::operator H248_IndAudEventsDescriptor &() const
  2278. #else
  2279. H248_IndAuditParameter::operator H248_IndAudEventsDescriptor &()
  2280. {
  2281. #ifndef PASN_LEANANDMEAN
  2282.   PAssert(PAssertNULL(choice)->IsDescendant(H248_IndAudEventsDescriptor::Class()), PInvalidCast);
  2283. #endif
  2284.   return *(H248_IndAudEventsDescriptor *)choice;
  2285. }
  2286.  
  2287.  
  2288. H248_IndAuditParameter::operator const H248_IndAudEventsDescriptor &() const
  2289. #endif
  2290. {
  2291. #ifndef PASN_LEANANDMEAN
  2292.   PAssert(PAssertNULL(choice)->IsDescendant(H248_IndAudEventsDescriptor::Class()), PInvalidCast);
  2293. #endif
  2294.   return *(H248_IndAudEventsDescriptor *)choice;
  2295. }
  2296.  
  2297.  
  2298. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  2299. H248_IndAuditParameter::operator H248_IndAudEventBufferDescriptor &() const
  2300. #else
  2301. H248_IndAuditParameter::operator H248_IndAudEventBufferDescriptor &()
  2302. {
  2303. #ifndef PASN_LEANANDMEAN
  2304.   PAssert(PAssertNULL(choice)->IsDescendant(H248_IndAudEventBufferDescriptor::Class()), PInvalidCast);
  2305. #endif
  2306.   return *(H248_IndAudEventBufferDescriptor *)choice;
  2307. }
  2308.  
  2309.  
  2310. H248_IndAuditParameter::operator const H248_IndAudEventBufferDescriptor &() const
  2311. #endif
  2312. {
  2313. #ifndef PASN_LEANANDMEAN
  2314.   PAssert(PAssertNULL(choice)->IsDescendant(H248_IndAudEventBufferDescriptor::Class()), PInvalidCast);
  2315. #endif
  2316.   return *(H248_IndAudEventBufferDescriptor *)choice;
  2317. }
  2318.  
  2319.  
  2320. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  2321. H248_IndAuditParameter::operator H248_IndAudSignalsDescriptor &() const
  2322. #else
  2323. H248_IndAuditParameter::operator H248_IndAudSignalsDescriptor &()
  2324. {
  2325. #ifndef PASN_LEANANDMEAN
  2326.   PAssert(PAssertNULL(choice)->IsDescendant(H248_IndAudSignalsDescriptor::Class()), PInvalidCast);
  2327. #endif
  2328.   return *(H248_IndAudSignalsDescriptor *)choice;
  2329. }
  2330.  
  2331.  
  2332. H248_IndAuditParameter::operator const H248_IndAudSignalsDescriptor &() const
  2333. #endif
  2334. {
  2335. #ifndef PASN_LEANANDMEAN
  2336.   PAssert(PAssertNULL(choice)->IsDescendant(H248_IndAudSignalsDescriptor::Class()), PInvalidCast);
  2337. #endif
  2338.   return *(H248_IndAudSignalsDescriptor *)choice;
  2339. }
  2340.  
  2341.  
  2342. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  2343. H248_IndAuditParameter::operator H248_IndAudDigitMapDescriptor &() const
  2344. #else
  2345. H248_IndAuditParameter::operator H248_IndAudDigitMapDescriptor &()
  2346. {
  2347. #ifndef PASN_LEANANDMEAN
  2348.   PAssert(PAssertNULL(choice)->IsDescendant(H248_IndAudDigitMapDescriptor::Class()), PInvalidCast);
  2349. #endif
  2350.   return *(H248_IndAudDigitMapDescriptor *)choice;
  2351. }
  2352.  
  2353.  
  2354. H248_IndAuditParameter::operator const H248_IndAudDigitMapDescriptor &() const
  2355. #endif
  2356. {
  2357. #ifndef PASN_LEANANDMEAN
  2358.   PAssert(PAssertNULL(choice)->IsDescendant(H248_IndAudDigitMapDescriptor::Class()), PInvalidCast);
  2359. #endif
  2360.   return *(H248_IndAudDigitMapDescriptor *)choice;
  2361. }
  2362.  
  2363.  
  2364. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  2365. H248_IndAuditParameter::operator H248_IndAudStatisticsDescriptor &() const
  2366. #else
  2367. H248_IndAuditParameter::operator H248_IndAudStatisticsDescriptor &()
  2368. {
  2369. #ifndef PASN_LEANANDMEAN
  2370.   PAssert(PAssertNULL(choice)->IsDescendant(H248_IndAudStatisticsDescriptor::Class()), PInvalidCast);
  2371. #endif
  2372.   return *(H248_IndAudStatisticsDescriptor *)choice;
  2373. }
  2374.  
  2375.  
  2376. H248_IndAuditParameter::operator const H248_IndAudStatisticsDescriptor &() const
  2377. #endif
  2378. {
  2379. #ifndef PASN_LEANANDMEAN
  2380.   PAssert(PAssertNULL(choice)->IsDescendant(H248_IndAudStatisticsDescriptor::Class()), PInvalidCast);
  2381. #endif
  2382.   return *(H248_IndAudStatisticsDescriptor *)choice;
  2383. }
  2384.  
  2385.  
  2386. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  2387. H248_IndAuditParameter::operator H248_IndAudPackagesDescriptor &() const
  2388. #else
  2389. H248_IndAuditParameter::operator H248_IndAudPackagesDescriptor &()
  2390. {
  2391. #ifndef PASN_LEANANDMEAN
  2392.   PAssert(PAssertNULL(choice)->IsDescendant(H248_IndAudPackagesDescriptor::Class()), PInvalidCast);
  2393. #endif
  2394.   return *(H248_IndAudPackagesDescriptor *)choice;
  2395. }
  2396.  
  2397.  
  2398. H248_IndAuditParameter::operator const H248_IndAudPackagesDescriptor &() const
  2399. #endif
  2400. {
  2401. #ifndef PASN_LEANANDMEAN
  2402.   PAssert(PAssertNULL(choice)->IsDescendant(H248_IndAudPackagesDescriptor::Class()), PInvalidCast);
  2403. #endif
  2404.   return *(H248_IndAudPackagesDescriptor *)choice;
  2405. }
  2406.  
  2407.  
  2408. BOOL H248_IndAuditParameter::CreateObject()
  2409. {
  2410.   switch (tag) {
  2411.     case e_indaudmediaDescriptor :
  2412.       choice = new H248_IndAudMediaDescriptor();
  2413.       return TRUE;
  2414.     case e_indaudeventsDescriptor :
  2415.       choice = new H248_IndAudEventsDescriptor();
  2416.       return TRUE;
  2417.     case e_indaudeventBufferDescriptor :
  2418.       choice = new H248_IndAudEventBufferDescriptor();
  2419.       return TRUE;
  2420.     case e_indaudsignalsDescriptor :
  2421.       choice = new H248_IndAudSignalsDescriptor();
  2422.       return TRUE;
  2423.     case e_indauddigitMapDescriptor :
  2424.       choice = new H248_IndAudDigitMapDescriptor();
  2425.       return TRUE;
  2426.     case e_indaudstatisticsDescriptor :
  2427.       choice = new H248_IndAudStatisticsDescriptor();
  2428.       return TRUE;
  2429.     case e_indaudpackagesDescriptor :
  2430.       choice = new H248_IndAudPackagesDescriptor();
  2431.       return TRUE;
  2432.   }
  2433.  
  2434.   choice = NULL;
  2435.   return FALSE;
  2436. }
  2437.  
  2438.  
  2439. PObject * H248_IndAuditParameter::Clone() const
  2440. {
  2441. #ifndef PASN_LEANANDMEAN
  2442.   PAssert(IsClass(H248_IndAuditParameter::Class()), PInvalidCast);
  2443. #endif
  2444.   return new H248_IndAuditParameter(*this);
  2445. }
  2446.  
  2447.  
  2448. //
  2449. // IndAudPropertyGroup
  2450. //
  2451.  
  2452. H248_IndAudPropertyGroup::H248_IndAudPropertyGroup(unsigned tag, PASN_Object::TagClass tagClass)
  2453.   : PASN_Array(tag, tagClass)
  2454. {
  2455. }
  2456.  
  2457.  
  2458. PASN_Object * H248_IndAudPropertyGroup::CreateObject() const
  2459. {
  2460.   return new H248_IndAudPropertyParm;
  2461. }
  2462.  
  2463.  
  2464. H248_IndAudPropertyParm & H248_IndAudPropertyGroup::operator[](PINDEX i) const
  2465. {
  2466.   return (H248_IndAudPropertyParm &)array[i];
  2467. }
  2468.  
  2469.  
  2470. PObject * H248_IndAudPropertyGroup::Clone() const
  2471. {
  2472. #ifndef PASN_LEANANDMEAN
  2473.   PAssert(IsClass(H248_IndAudPropertyGroup::Class()), PInvalidCast);
  2474. #endif
  2475.   return new H248_IndAudPropertyGroup(*this);
  2476. }
  2477.  
  2478.  
  2479. //
  2480. // IndAudSignalsDescriptor
  2481. //
  2482.  
  2483. H248_IndAudSignalsDescriptor::H248_IndAudSignalsDescriptor(unsigned tag, PASN_Object::TagClass tagClass)
  2484.   : PASN_Choice(tag, tagClass, 2, TRUE
  2485. #ifndef PASN_NOPRINTON
  2486.       , "signal "
  2487.         "seqSigList "
  2488. #endif
  2489.     )
  2490. {
  2491. }
  2492.  
  2493.  
  2494. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  2495. H248_IndAudSignalsDescriptor::operator H248_IndAudSignal &() const
  2496. #else
  2497. H248_IndAudSignalsDescriptor::operator H248_IndAudSignal &()
  2498. {
  2499. #ifndef PASN_LEANANDMEAN
  2500.   PAssert(PAssertNULL(choice)->IsDescendant(H248_IndAudSignal::Class()), PInvalidCast);
  2501. #endif
  2502.   return *(H248_IndAudSignal *)choice;
  2503. }
  2504.  
  2505.  
  2506. H248_IndAudSignalsDescriptor::operator const H248_IndAudSignal &() const
  2507. #endif
  2508. {
  2509. #ifndef PASN_LEANANDMEAN
  2510.   PAssert(PAssertNULL(choice)->IsDescendant(H248_IndAudSignal::Class()), PInvalidCast);
  2511. #endif
  2512.   return *(H248_IndAudSignal *)choice;
  2513. }
  2514.  
  2515.  
  2516. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  2517. H248_IndAudSignalsDescriptor::operator H248_IndAudSeqSigList &() const
  2518. #else
  2519. H248_IndAudSignalsDescriptor::operator H248_IndAudSeqSigList &()
  2520. {
  2521. #ifndef PASN_LEANANDMEAN
  2522.   PAssert(PAssertNULL(choice)->IsDescendant(H248_IndAudSeqSigList::Class()), PInvalidCast);
  2523. #endif
  2524.   return *(H248_IndAudSeqSigList *)choice;
  2525. }
  2526.  
  2527.  
  2528. H248_IndAudSignalsDescriptor::operator const H248_IndAudSeqSigList &() const
  2529. #endif
  2530. {
  2531. #ifndef PASN_LEANANDMEAN
  2532.   PAssert(PAssertNULL(choice)->IsDescendant(H248_IndAudSeqSigList::Class()), PInvalidCast);
  2533. #endif
  2534.   return *(H248_IndAudSeqSigList *)choice;
  2535. }
  2536.  
  2537.  
  2538. BOOL H248_IndAudSignalsDescriptor::CreateObject()
  2539. {
  2540.   switch (tag) {
  2541.     case e_signal :
  2542.       choice = new H248_IndAudSignal();
  2543.       return TRUE;
  2544.     case e_seqSigList :
  2545.       choice = new H248_IndAudSeqSigList();
  2546.       return TRUE;
  2547.   }
  2548.  
  2549.   choice = NULL;
  2550.   return FALSE;
  2551. }
  2552.  
  2553.  
  2554. PObject * H248_IndAudSignalsDescriptor::Clone() const
  2555. {
  2556. #ifndef PASN_LEANANDMEAN
  2557.   PAssert(IsClass(H248_IndAudSignalsDescriptor::Class()), PInvalidCast);
  2558. #endif
  2559.   return new H248_IndAudSignalsDescriptor(*this);
  2560. }
  2561.  
  2562.  
  2563. //
  2564. // ServiceChangeResult
  2565. //
  2566.  
  2567. H248_ServiceChangeResult::H248_ServiceChangeResult(unsigned tag, PASN_Object::TagClass tagClass)
  2568.   : PASN_Choice(tag, tagClass, 2, FALSE
  2569. #ifndef PASN_NOPRINTON
  2570.       , "errorDescriptor "
  2571.         "serviceChangeResParms "
  2572. #endif
  2573.     )
  2574. {
  2575. }
  2576.  
  2577.  
  2578. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  2579. H248_ServiceChangeResult::operator H248_ErrorDescriptor &() const
  2580. #else
  2581. H248_ServiceChangeResult::operator H248_ErrorDescriptor &()
  2582. {
  2583. #ifndef PASN_LEANANDMEAN
  2584.   PAssert(PAssertNULL(choice)->IsDescendant(H248_ErrorDescriptor::Class()), PInvalidCast);
  2585. #endif
  2586.   return *(H248_ErrorDescriptor *)choice;
  2587. }
  2588.  
  2589.  
  2590. H248_ServiceChangeResult::operator const H248_ErrorDescriptor &() const
  2591. #endif
  2592. {
  2593. #ifndef PASN_LEANANDMEAN
  2594.   PAssert(PAssertNULL(choice)->IsDescendant(H248_ErrorDescriptor::Class()), PInvalidCast);
  2595. #endif
  2596.   return *(H248_ErrorDescriptor *)choice;
  2597. }
  2598.  
  2599.  
  2600. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  2601. H248_ServiceChangeResult::operator H248_ServiceChangeResParm &() const
  2602. #else
  2603. H248_ServiceChangeResult::operator H248_ServiceChangeResParm &()
  2604. {
  2605. #ifndef PASN_LEANANDMEAN
  2606.   PAssert(PAssertNULL(choice)->IsDescendant(H248_ServiceChangeResParm::Class()), PInvalidCast);
  2607. #endif
  2608.   return *(H248_ServiceChangeResParm *)choice;
  2609. }
  2610.  
  2611.  
  2612. H248_ServiceChangeResult::operator const H248_ServiceChangeResParm &() const
  2613. #endif
  2614. {
  2615. #ifndef PASN_LEANANDMEAN
  2616.   PAssert(PAssertNULL(choice)->IsDescendant(H248_ServiceChangeResParm::Class()), PInvalidCast);
  2617. #endif
  2618.   return *(H248_ServiceChangeResParm *)choice;
  2619. }
  2620.  
  2621.  
  2622. BOOL H248_ServiceChangeResult::CreateObject()
  2623. {
  2624.   switch (tag) {
  2625.     case e_errorDescriptor :
  2626.       choice = new H248_ErrorDescriptor();
  2627.       return TRUE;
  2628.     case e_serviceChangeResParms :
  2629.       choice = new H248_ServiceChangeResParm();
  2630.       return TRUE;
  2631.   }
  2632.  
  2633.   choice = NULL;
  2634.   return FALSE;
  2635. }
  2636.  
  2637.  
  2638. PObject * H248_ServiceChangeResult::Clone() const
  2639. {
  2640. #ifndef PASN_LEANANDMEAN
  2641.   PAssert(IsClass(H248_ServiceChangeResult::Class()), PInvalidCast);
  2642. #endif
  2643.   return new H248_ServiceChangeResult(*this);
  2644. }
  2645.  
  2646.  
  2647. //
  2648. // WildcardField
  2649. //
  2650.  
  2651. H248_WildcardField::H248_WildcardField(unsigned tag, PASN_Object::TagClass tagClass)
  2652.   : PASN_OctetString(tag, tagClass)
  2653. {
  2654.   SetConstraints(PASN_Object::FixedConstraint, 1);
  2655. }
  2656.  
  2657.  
  2658. H248_WildcardField::H248_WildcardField(const char * v)
  2659. {
  2660.   SetValue(v);
  2661. }
  2662.  
  2663.  
  2664. H248_WildcardField::H248_WildcardField(const PString & v)
  2665. {
  2666.   SetValue(v);
  2667. }
  2668.  
  2669.  
  2670. H248_WildcardField::H248_WildcardField(const PBYTEArray & v)
  2671. {
  2672.   SetValue(v);
  2673. }
  2674.  
  2675.  
  2676. H248_WildcardField & H248_WildcardField::operator=(const char * v)
  2677. {
  2678.   SetValue(v);
  2679.   return *this;
  2680. }
  2681.  
  2682.  
  2683. H248_WildcardField & H248_WildcardField::operator=(const PString & v)
  2684. {
  2685.   SetValue(v);
  2686.   return *this;
  2687. }
  2688.  
  2689.  
  2690. H248_WildcardField & H248_WildcardField::operator=(const PBYTEArray & v)
  2691. {
  2692.   SetValue(v);
  2693.   return *this;
  2694. }
  2695.  
  2696.  
  2697. PObject * H248_WildcardField::Clone() const
  2698. {
  2699. #ifndef PASN_LEANANDMEAN
  2700.   PAssert(IsClass(H248_WildcardField::Class()), PInvalidCast);
  2701. #endif
  2702.   return new H248_WildcardField(*this);
  2703. }
  2704.  
  2705.  
  2706. //
  2707. // TerminationIDList
  2708. //
  2709.  
  2710. H248_TerminationIDList::H248_TerminationIDList(unsigned tag, PASN_Object::TagClass tagClass)
  2711.   : PASN_Array(tag, tagClass)
  2712. {
  2713. }
  2714.  
  2715.  
  2716. PASN_Object * H248_TerminationIDList::CreateObject() const
  2717. {
  2718.   return new H248_TerminationID;
  2719. }
  2720.  
  2721.  
  2722. H248_TerminationID & H248_TerminationIDList::operator[](PINDEX i) const
  2723. {
  2724.   return (H248_TerminationID &)array[i];
  2725. }
  2726.  
  2727.  
  2728. PObject * H248_TerminationIDList::Clone() const
  2729. {
  2730. #ifndef PASN_LEANANDMEAN
  2731.   PAssert(IsClass(H248_TerminationIDList::Class()), PInvalidCast);
  2732. #endif
  2733.   return new H248_TerminationIDList(*this);
  2734. }
  2735.  
  2736.  
  2737. //
  2738. // StreamMode
  2739. //
  2740.  
  2741. H248_StreamMode::H248_StreamMode(unsigned tag, PASN_Object::TagClass tagClass)
  2742.   : PASN_Enumeration(tag, tagClass, 4, TRUE
  2743. #ifndef PASN_NOPRINTON
  2744.       , "sendOnly "
  2745.         "recvOnly "
  2746.         "sendRecv "
  2747.         "inactive "
  2748.         "loopBack "
  2749. #endif
  2750.     )
  2751. {
  2752. }
  2753.  
  2754.  
  2755. H248_StreamMode & H248_StreamMode::operator=(unsigned v)
  2756. {
  2757.   SetValue(v);
  2758.   return *this;
  2759. }
  2760.  
  2761.  
  2762. PObject * H248_StreamMode::Clone() const
  2763. {
  2764. #ifndef PASN_LEANANDMEAN
  2765.   PAssert(IsClass(H248_StreamMode::Class()), PInvalidCast);
  2766. #endif
  2767.   return new H248_StreamMode(*this);
  2768. }
  2769.  
  2770.  
  2771. //
  2772. // Name
  2773. //
  2774.  
  2775. H248_Name::H248_Name(unsigned tag, PASN_Object::TagClass tagClass)
  2776.   : PASN_OctetString(tag, tagClass)
  2777. {
  2778.   SetConstraints(PASN_Object::FixedConstraint, 2);
  2779. }
  2780.  
  2781.  
  2782. H248_Name::H248_Name(const char * v)
  2783. {
  2784.   SetValue(v);
  2785. }
  2786.  
  2787.  
  2788. H248_Name::H248_Name(const PString & v)
  2789. {
  2790.   SetValue(v);
  2791. }
  2792.  
  2793.  
  2794. H248_Name::H248_Name(const PBYTEArray & v)
  2795. {
  2796.   SetValue(v);
  2797. }
  2798.  
  2799.  
  2800. H248_Name & H248_Name::operator=(const char * v)
  2801. {
  2802.   SetValue(v);
  2803.   return *this;
  2804. }
  2805.  
  2806.  
  2807. H248_Name & H248_Name::operator=(const PString & v)
  2808. {
  2809.   SetValue(v);
  2810.   return *this;
  2811. }
  2812.  
  2813.  
  2814. H248_Name & H248_Name::operator=(const PBYTEArray & v)
  2815. {
  2816.   SetValue(v);
  2817.   return *this;
  2818. }
  2819.  
  2820.  
  2821. PObject * H248_Name::Clone() const
  2822. {
  2823. #ifndef PASN_LEANANDMEAN
  2824.   PAssert(IsClass(H248_Name::Class()), PInvalidCast);
  2825. #endif
  2826.   return new H248_Name(*this);
  2827. }
  2828.  
  2829.  
  2830. //
  2831. // PkgdName
  2832. //
  2833.  
  2834. H248_PkgdName::H248_PkgdName(unsigned tag, PASN_Object::TagClass tagClass)
  2835.   : PASN_OctetString(tag, tagClass)
  2836. {
  2837.   SetConstraints(PASN_Object::FixedConstraint, 4);
  2838. }
  2839.  
  2840.  
  2841. H248_PkgdName::H248_PkgdName(const char * v)
  2842. {
  2843.   SetValue(v);
  2844. }
  2845.  
  2846.  
  2847. H248_PkgdName::H248_PkgdName(const PString & v)
  2848. {
  2849.   SetValue(v);
  2850. }
  2851.  
  2852.  
  2853. H248_PkgdName::H248_PkgdName(const PBYTEArray & v)
  2854. {
  2855.   SetValue(v);
  2856. }
  2857.  
  2858.  
  2859. H248_PkgdName & H248_PkgdName::operator=(const char * v)
  2860. {
  2861.   SetValue(v);
  2862.   return *this;
  2863. }
  2864.  
  2865.  
  2866. H248_PkgdName & H248_PkgdName::operator=(const PString & v)
  2867. {
  2868.   SetValue(v);
  2869.   return *this;
  2870. }
  2871.  
  2872.  
  2873. H248_PkgdName & H248_PkgdName::operator=(const PBYTEArray & v)
  2874. {
  2875.   SetValue(v);
  2876.   return *this;
  2877. }
  2878.  
  2879.  
  2880. PObject * H248_PkgdName::Clone() const
  2881. {
  2882. #ifndef PASN_LEANANDMEAN
  2883.   PAssert(IsClass(H248_PkgdName::Class()), PInvalidCast);
  2884. #endif
  2885.   return new H248_PkgdName(*this);
  2886. }
  2887.  
  2888.  
  2889. //
  2890. // Relation
  2891. //
  2892.  
  2893. H248_Relation::H248_Relation(unsigned tag, PASN_Object::TagClass tagClass)
  2894.   : PASN_Enumeration(tag, tagClass, 2, TRUE
  2895. #ifndef PASN_NOPRINTON
  2896.       , "greaterThan "
  2897.         "smallerThan "
  2898.         "unequalTo "
  2899. #endif
  2900.     )
  2901. {
  2902. }
  2903.  
  2904.  
  2905. H248_Relation & H248_Relation::operator=(unsigned v)
  2906. {
  2907.   SetValue(v);
  2908.   return *this;
  2909. }
  2910.  
  2911.  
  2912. PObject * H248_Relation::Clone() const
  2913. {
  2914. #ifndef PASN_LEANANDMEAN
  2915.   PAssert(IsClass(H248_Relation::Class()), PInvalidCast);
  2916. #endif
  2917.   return new H248_Relation(*this);
  2918. }
  2919.  
  2920.  
  2921. //
  2922. // PropertyGroup
  2923. //
  2924.  
  2925. H248_PropertyGroup::H248_PropertyGroup(unsigned tag, PASN_Object::TagClass tagClass)
  2926.   : PASN_Array(tag, tagClass)
  2927. {
  2928. }
  2929.  
  2930.  
  2931. PASN_Object * H248_PropertyGroup::CreateObject() const
  2932. {
  2933.   return new H248_PropertyParm;
  2934. }
  2935.  
  2936.  
  2937. H248_PropertyParm & H248_PropertyGroup::operator[](PINDEX i) const
  2938. {
  2939.   return (H248_PropertyParm &)array[i];
  2940. }
  2941.  
  2942.  
  2943. PObject * H248_PropertyGroup::Clone() const
  2944. {
  2945. #ifndef PASN_LEANANDMEAN
  2946.   PAssert(IsClass(H248_PropertyGroup::Class()), PInvalidCast);
  2947. #endif
  2948.   return new H248_PropertyGroup(*this);
  2949. }
  2950.  
  2951.  
  2952. //
  2953. // EventBufferControl
  2954. //
  2955.  
  2956. H248_EventBufferControl::H248_EventBufferControl(unsigned tag, PASN_Object::TagClass tagClass)
  2957.   : PASN_Enumeration(tag, tagClass, 1, TRUE
  2958. #ifndef PASN_NOPRINTON
  2959.       , "off "
  2960.         "lockStep "
  2961. #endif
  2962.     )
  2963. {
  2964. }
  2965.  
  2966.  
  2967. H248_EventBufferControl & H248_EventBufferControl::operator=(unsigned v)
  2968. {
  2969.   SetValue(v);
  2970.   return *this;
  2971. }
  2972.  
  2973.  
  2974. PObject * H248_EventBufferControl::Clone() const
  2975. {
  2976. #ifndef PASN_LEANANDMEAN
  2977.   PAssert(IsClass(H248_EventBufferControl::Class()), PInvalidCast);
  2978. #endif
  2979.   return new H248_EventBufferControl(*this);
  2980. }
  2981.  
  2982.  
  2983. //
  2984. // ServiceState
  2985. //
  2986.  
  2987. H248_ServiceState::H248_ServiceState(unsigned tag, PASN_Object::TagClass tagClass)
  2988.   : PASN_Enumeration(tag, tagClass, 2, TRUE
  2989. #ifndef PASN_NOPRINTON
  2990.       , "test "
  2991.         "outOfSvc "
  2992.         "inSvc "
  2993. #endif
  2994.     )
  2995. {
  2996. }
  2997.  
  2998.  
  2999. H248_ServiceState & H248_ServiceState::operator=(unsigned v)
  3000. {
  3001.   SetValue(v);
  3002.   return *this;
  3003. }
  3004.  
  3005.  
  3006. PObject * H248_ServiceState::Clone() const
  3007. {
  3008. #ifndef PASN_LEANANDMEAN
  3009.   PAssert(IsClass(H248_ServiceState::Class()), PInvalidCast);
  3010. #endif
  3011.   return new H248_ServiceState(*this);
  3012. }
  3013.  
  3014.  
  3015. //
  3016. // MuxType
  3017. //
  3018.  
  3019. H248_MuxType::H248_MuxType(unsigned tag, PASN_Object::TagClass tagClass)
  3020.   : PASN_Enumeration(tag, tagClass, 4, TRUE
  3021. #ifndef PASN_NOPRINTON
  3022.       , "h221 "
  3023.         "h223 "
  3024.         "h226 "
  3025.         "v76 "
  3026.         "nx64k "
  3027. #endif
  3028.     )
  3029. {
  3030. }
  3031.  
  3032.  
  3033. H248_MuxType & H248_MuxType::operator=(unsigned v)
  3034. {
  3035.   SetValue(v);
  3036.   return *this;
  3037. }
  3038.  
  3039.  
  3040. PObject * H248_MuxType::Clone() const
  3041. {
  3042. #ifndef PASN_LEANANDMEAN
  3043.   PAssert(IsClass(H248_MuxType::Class()), PInvalidCast);
  3044. #endif
  3045.   return new H248_MuxType(*this);
  3046. }
  3047.  
  3048.  
  3049. //
  3050. // StreamID
  3051. //
  3052.  
  3053. H248_StreamID::H248_StreamID(unsigned tag, PASN_Object::TagClass tagClass)
  3054.   : PASN_Integer(tag, tagClass)
  3055. {
  3056.   SetConstraints(PASN_Object::FixedConstraint, 0, 65535);
  3057. }
  3058.  
  3059.  
  3060. H248_StreamID & H248_StreamID::operator=(int v)
  3061. {
  3062.   SetValue(v);
  3063.   return *this;
  3064. }
  3065.  
  3066.  
  3067. H248_StreamID & H248_StreamID::operator=(unsigned v)
  3068. {
  3069.   SetValue(v);
  3070.   return *this;
  3071. }
  3072.  
  3073.  
  3074. PObject * H248_StreamID::Clone() const
  3075. {
  3076. #ifndef PASN_LEANANDMEAN
  3077.   PAssert(IsClass(H248_StreamID::Class()), PInvalidCast);
  3078. #endif
  3079.   return new H248_StreamID(*this);
  3080. }
  3081.  
  3082.  
  3083. //
  3084. // EventDM
  3085. //
  3086.  
  3087. H248_EventDM::H248_EventDM(unsigned tag, PASN_Object::TagClass tagClass)
  3088.   : PASN_Choice(tag, tagClass, 2, FALSE
  3089. #ifndef PASN_NOPRINTON
  3090.       , "digitMapName "
  3091.         "digitMapValue "
  3092. #endif
  3093.     )
  3094. {
  3095. }
  3096.  
  3097.  
  3098. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  3099. H248_EventDM::operator H248_DigitMapName &() const
  3100. #else
  3101. H248_EventDM::operator H248_DigitMapName &()
  3102. {
  3103. #ifndef PASN_LEANANDMEAN
  3104.   PAssert(PAssertNULL(choice)->IsDescendant(H248_DigitMapName::Class()), PInvalidCast);
  3105. #endif
  3106.   return *(H248_DigitMapName *)choice;
  3107. }
  3108.  
  3109.  
  3110. H248_EventDM::operator const H248_DigitMapName &() const
  3111. #endif
  3112. {
  3113. #ifndef PASN_LEANANDMEAN
  3114.   PAssert(PAssertNULL(choice)->IsDescendant(H248_DigitMapName::Class()), PInvalidCast);
  3115. #endif
  3116.   return *(H248_DigitMapName *)choice;
  3117. }
  3118.  
  3119.  
  3120. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  3121. H248_EventDM::operator H248_DigitMapValue &() const
  3122. #else
  3123. H248_EventDM::operator H248_DigitMapValue &()
  3124. {
  3125. #ifndef PASN_LEANANDMEAN
  3126.   PAssert(PAssertNULL(choice)->IsDescendant(H248_DigitMapValue::Class()), PInvalidCast);
  3127. #endif
  3128.   return *(H248_DigitMapValue *)choice;
  3129. }
  3130.  
  3131.  
  3132. H248_EventDM::operator const H248_DigitMapValue &() const
  3133. #endif
  3134. {
  3135. #ifndef PASN_LEANANDMEAN
  3136.   PAssert(PAssertNULL(choice)->IsDescendant(H248_DigitMapValue::Class()), PInvalidCast);
  3137. #endif
  3138.   return *(H248_DigitMapValue *)choice;
  3139. }
  3140.  
  3141.  
  3142. BOOL H248_EventDM::CreateObject()
  3143. {
  3144.   switch (tag) {
  3145.     case e_digitMapName :
  3146.       choice = new H248_DigitMapName();
  3147.       return TRUE;
  3148.     case e_digitMapValue :
  3149.       choice = new H248_DigitMapValue();
  3150.       return TRUE;
  3151.   }
  3152.  
  3153.   choice = NULL;
  3154.   return FALSE;
  3155. }
  3156.  
  3157.  
  3158. PObject * H248_EventDM::Clone() const
  3159. {
  3160. #ifndef PASN_LEANANDMEAN
  3161.   PAssert(IsClass(H248_EventDM::Class()), PInvalidCast);
  3162. #endif
  3163.   return new H248_EventDM(*this);
  3164. }
  3165.  
  3166.  
  3167. //
  3168. // EventBufferDescriptor
  3169. //
  3170.  
  3171. H248_EventBufferDescriptor::H248_EventBufferDescriptor(unsigned tag, PASN_Object::TagClass tagClass)
  3172.   : PASN_Array(tag, tagClass)
  3173. {
  3174. }
  3175.  
  3176.  
  3177. PASN_Object * H248_EventBufferDescriptor::CreateObject() const
  3178. {
  3179.   return new H248_EventSpec;
  3180. }
  3181.  
  3182.  
  3183. H248_EventSpec & H248_EventBufferDescriptor::operator[](PINDEX i) const
  3184. {
  3185.   return (H248_EventSpec &)array[i];
  3186. }
  3187.  
  3188.  
  3189. PObject * H248_EventBufferDescriptor::Clone() const
  3190. {
  3191. #ifndef PASN_LEANANDMEAN
  3192.   PAssert(IsClass(H248_EventBufferDescriptor::Class()), PInvalidCast);
  3193. #endif
  3194.   return new H248_EventBufferDescriptor(*this);
  3195. }
  3196.  
  3197.  
  3198. //
  3199. // SignalsDescriptor
  3200. //
  3201.  
  3202. H248_SignalsDescriptor::H248_SignalsDescriptor(unsigned tag, PASN_Object::TagClass tagClass)
  3203.   : PASN_Array(tag, tagClass)
  3204. {
  3205. }
  3206.  
  3207.  
  3208. PASN_Object * H248_SignalsDescriptor::CreateObject() const
  3209. {
  3210.   return new H248_SignalRequest;
  3211. }
  3212.  
  3213.  
  3214. H248_SignalRequest & H248_SignalsDescriptor::operator[](PINDEX i) const
  3215. {
  3216.   return (H248_SignalRequest &)array[i];
  3217. }
  3218.  
  3219.  
  3220. PObject * H248_SignalsDescriptor::Clone() const
  3221. {
  3222. #ifndef PASN_LEANANDMEAN
  3223.   PAssert(IsClass(H248_SignalsDescriptor::Class()), PInvalidCast);
  3224. #endif
  3225.   return new H248_SignalsDescriptor(*this);
  3226. }
  3227.  
  3228.  
  3229. //
  3230. // SignalRequest
  3231. //
  3232.  
  3233. H248_SignalRequest::H248_SignalRequest(unsigned tag, PASN_Object::TagClass tagClass)
  3234.   : PASN_Choice(tag, tagClass, 2, TRUE
  3235. #ifndef PASN_NOPRINTON
  3236.       , "signal "
  3237.         "seqSigList "
  3238. #endif
  3239.     )
  3240. {
  3241. }
  3242.  
  3243.  
  3244. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  3245. H248_SignalRequest::operator H248_Signal &() const
  3246. #else
  3247. H248_SignalRequest::operator H248_Signal &()
  3248. {
  3249. #ifndef PASN_LEANANDMEAN
  3250.   PAssert(PAssertNULL(choice)->IsDescendant(H248_Signal::Class()), PInvalidCast);
  3251. #endif
  3252.   return *(H248_Signal *)choice;
  3253. }
  3254.  
  3255.  
  3256. H248_SignalRequest::operator const H248_Signal &() const
  3257. #endif
  3258. {
  3259. #ifndef PASN_LEANANDMEAN
  3260.   PAssert(PAssertNULL(choice)->IsDescendant(H248_Signal::Class()), PInvalidCast);
  3261. #endif
  3262.   return *(H248_Signal *)choice;
  3263. }
  3264.  
  3265.  
  3266. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  3267. H248_SignalRequest::operator H248_SeqSigList &() const
  3268. #else
  3269. H248_SignalRequest::operator H248_SeqSigList &()
  3270. {
  3271. #ifndef PASN_LEANANDMEAN
  3272.   PAssert(PAssertNULL(choice)->IsDescendant(H248_SeqSigList::Class()), PInvalidCast);
  3273. #endif
  3274.   return *(H248_SeqSigList *)choice;
  3275. }
  3276.  
  3277.  
  3278. H248_SignalRequest::operator const H248_SeqSigList &() const
  3279. #endif
  3280. {
  3281. #ifndef PASN_LEANANDMEAN
  3282.   PAssert(PAssertNULL(choice)->IsDescendant(H248_SeqSigList::Class()), PInvalidCast);
  3283. #endif
  3284.   return *(H248_SeqSigList *)choice;
  3285. }
  3286.  
  3287.  
  3288. BOOL H248_SignalRequest::CreateObject()
  3289. {
  3290.   switch (tag) {
  3291.     case e_signal :
  3292.       choice = new H248_Signal();
  3293.       return TRUE;
  3294.     case e_seqSigList :
  3295.       choice = new H248_SeqSigList();
  3296.       return TRUE;
  3297.   }
  3298.  
  3299.   choice = NULL;
  3300.   return FALSE;
  3301. }
  3302.  
  3303.  
  3304. PObject * H248_SignalRequest::Clone() const
  3305. {
  3306. #ifndef PASN_LEANANDMEAN
  3307.   PAssert(IsClass(H248_SignalRequest::Class()), PInvalidCast);
  3308. #endif
  3309.   return new H248_SignalRequest(*this);
  3310. }
  3311.  
  3312.  
  3313. //
  3314. // SignalType
  3315. //
  3316.  
  3317. H248_SignalType::H248_SignalType(unsigned tag, PASN_Object::TagClass tagClass)
  3318.   : PASN_Enumeration(tag, tagClass, 2, TRUE
  3319. #ifndef PASN_NOPRINTON
  3320.       , "brief "
  3321.         "onOff "
  3322.         "timeOut "
  3323. #endif
  3324.     )
  3325. {
  3326. }
  3327.  
  3328.  
  3329. H248_SignalType & H248_SignalType::operator=(unsigned v)
  3330. {
  3331.   SetValue(v);
  3332.   return *this;
  3333. }
  3334.  
  3335.  
  3336. PObject * H248_SignalType::Clone() const
  3337. {
  3338. #ifndef PASN_LEANANDMEAN
  3339.   PAssert(IsClass(H248_SignalType::Class()), PInvalidCast);
  3340. #endif
  3341.   return new H248_SignalType(*this);
  3342. }
  3343.  
  3344.  
  3345. //
  3346. // SignalName
  3347. //
  3348.  
  3349. H248_SignalName::H248_SignalName(unsigned tag, PASN_Object::TagClass tagClass)
  3350.   : H248_PkgdName(tag, tagClass)
  3351. {
  3352. }
  3353.  
  3354.  
  3355. H248_SignalName::H248_SignalName(const char * v)
  3356. {
  3357.   SetValue(v);
  3358. }
  3359.  
  3360.  
  3361. H248_SignalName::H248_SignalName(const PString & v)
  3362. {
  3363.   SetValue(v);
  3364. }
  3365.  
  3366.  
  3367. H248_SignalName::H248_SignalName(const PBYTEArray & v)
  3368. {
  3369.   SetValue(v);
  3370. }
  3371.  
  3372.  
  3373. H248_SignalName & H248_SignalName::operator=(const char * v)
  3374. {
  3375.   SetValue(v);
  3376.   return *this;
  3377. }
  3378.  
  3379.  
  3380. H248_SignalName & H248_SignalName::operator=(const PString & v)
  3381. {
  3382.   SetValue(v);
  3383.   return *this;
  3384. }
  3385.  
  3386.  
  3387. H248_SignalName & H248_SignalName::operator=(const PBYTEArray & v)
  3388. {
  3389.   SetValue(v);
  3390.   return *this;
  3391. }
  3392.  
  3393.  
  3394. PObject * H248_SignalName::Clone() const
  3395. {
  3396. #ifndef PASN_LEANANDMEAN
  3397.   PAssert(IsClass(H248_SignalName::Class()), PInvalidCast);
  3398. #endif
  3399.   return new H248_SignalName(*this);
  3400. }
  3401.  
  3402.  
  3403. //
  3404. // NotifyCompletion
  3405. //
  3406.  
  3407. H248_NotifyCompletion::H248_NotifyCompletion(unsigned tag, PASN_Object::TagClass tagClass)
  3408.   : PASN_BitString(tag, tagClass)
  3409. {
  3410. }
  3411.  
  3412.  
  3413. PObject * H248_NotifyCompletion::Clone() const
  3414. {
  3415. #ifndef PASN_LEANANDMEAN
  3416.   PAssert(IsClass(H248_NotifyCompletion::Class()), PInvalidCast);
  3417. #endif
  3418.   return new H248_NotifyCompletion(*this);
  3419. }
  3420.  
  3421.  
  3422. //
  3423. // RequestID
  3424. //
  3425.  
  3426. H248_RequestID::H248_RequestID(unsigned tag, PASN_Object::TagClass tagClass)
  3427.   : PASN_Integer(tag, tagClass)
  3428. {
  3429.   SetConstraints(PASN_Object::FixedConstraint, 0, 4294967295U);
  3430. }
  3431.  
  3432.  
  3433. H248_RequestID & H248_RequestID::operator=(int v)
  3434. {
  3435.   SetValue(v);
  3436.   return *this;
  3437. }
  3438.  
  3439.  
  3440. H248_RequestID & H248_RequestID::operator=(unsigned v)
  3441. {
  3442.   SetValue(v);
  3443.   return *this;
  3444. }
  3445.  
  3446.  
  3447. PObject * H248_RequestID::Clone() const
  3448. {
  3449. #ifndef PASN_LEANANDMEAN
  3450.   PAssert(IsClass(H248_RequestID::Class()), PInvalidCast);
  3451. #endif
  3452.   return new H248_RequestID(*this);
  3453. }
  3454.  
  3455.  
  3456. //
  3457. // ModemType
  3458. //
  3459.  
  3460. H248_ModemType::H248_ModemType(unsigned tag, PASN_Object::TagClass tagClass)
  3461.   : PASN_Enumeration(tag, tagClass, 8, TRUE
  3462. #ifndef PASN_NOPRINTON
  3463.       , "v18 "
  3464.         "v22 "
  3465.         "v22bis "
  3466.         "v32 "
  3467.         "v32bis "
  3468.         "v34 "
  3469.         "v90 "
  3470.         "v91 "
  3471.         "synchISDN "
  3472. #endif
  3473.     )
  3474. {
  3475. }
  3476.  
  3477.  
  3478. H248_ModemType & H248_ModemType::operator=(unsigned v)
  3479. {
  3480.   SetValue(v);
  3481.   return *this;
  3482. }
  3483.  
  3484.  
  3485. PObject * H248_ModemType::Clone() const
  3486. {
  3487. #ifndef PASN_LEANANDMEAN
  3488.   PAssert(IsClass(H248_ModemType::Class()), PInvalidCast);
  3489. #endif
  3490.   return new H248_ModemType(*this);
  3491. }
  3492.  
  3493.  
  3494. //
  3495. // DigitMapName
  3496. //
  3497.  
  3498. H248_DigitMapName::H248_DigitMapName(unsigned tag, PASN_Object::TagClass tagClass)
  3499.   : H248_Name(tag, tagClass)
  3500. {
  3501. }
  3502.  
  3503.  
  3504. H248_DigitMapName::H248_DigitMapName(const char * v)
  3505. {
  3506.   SetValue(v);
  3507. }
  3508.  
  3509.  
  3510. H248_DigitMapName::H248_DigitMapName(const PString & v)
  3511. {
  3512.   SetValue(v);
  3513. }
  3514.  
  3515.  
  3516. H248_DigitMapName::H248_DigitMapName(const PBYTEArray & v)
  3517. {
  3518.   SetValue(v);
  3519. }
  3520.  
  3521.  
  3522. H248_DigitMapName & H248_DigitMapName::operator=(const char * v)
  3523. {
  3524.   SetValue(v);
  3525.   return *this;
  3526. }
  3527.  
  3528.  
  3529. H248_DigitMapName & H248_DigitMapName::operator=(const PString & v)
  3530. {
  3531.   SetValue(v);
  3532.   return *this;
  3533. }
  3534.  
  3535.  
  3536. H248_DigitMapName & H248_DigitMapName::operator=(const PBYTEArray & v)
  3537. {
  3538.   SetValue(v);
  3539.   return *this;
  3540. }
  3541.  
  3542.  
  3543. PObject * H248_DigitMapName::Clone() const
  3544. {
  3545. #ifndef PASN_LEANANDMEAN
  3546.   PAssert(IsClass(H248_DigitMapName::Class()), PInvalidCast);
  3547. #endif
  3548.   return new H248_DigitMapName(*this);
  3549. }
  3550.  
  3551.  
  3552. //
  3553. // DigitMapValue
  3554. //
  3555.  
  3556. H248_DigitMapValue::H248_DigitMapValue(unsigned tag, PASN_Object::TagClass tagClass)
  3557.   : PASN_Sequence(tag, tagClass, 3, TRUE, 1)
  3558. {
  3559.   m_startTimer.SetConstraints(PASN_Object::FixedConstraint, 0, 99);
  3560.   m_shortTimer.SetConstraints(PASN_Object::FixedConstraint, 0, 99);
  3561.   m_longTimer.SetConstraints(PASN_Object::FixedConstraint, 0, 99);
  3562.   m_durationTimer.SetConstraints(PASN_Object::FixedConstraint, 0, 99);
  3563. }
  3564.  
  3565.  
  3566. #ifndef PASN_NOPRINTON
  3567. void H248_DigitMapValue::PrintOn(ostream & strm) const
  3568. {
  3569.   int indent = strm.precision() + 2;
  3570.   strm << "{\n";
  3571.   if (HasOptionalField(e_startTimer))
  3572.     strm << setw(indent+13) << "startTimer = " << setprecision(indent) << m_startTimer << '\n';
  3573.   if (HasOptionalField(e_shortTimer))
  3574.     strm << setw(indent+13) << "shortTimer = " << setprecision(indent) << m_shortTimer << '\n';
  3575.   if (HasOptionalField(e_longTimer))
  3576.     strm << setw(indent+12) << "longTimer = " << setprecision(indent) << m_longTimer << '\n';
  3577.   strm << setw(indent+15) << "digitMapBody = " << setprecision(indent) << m_digitMapBody << '\n';
  3578.   if (HasOptionalField(e_durationTimer))
  3579.     strm << setw(indent+16) << "durationTimer = " << setprecision(indent) << m_durationTimer << '\n';
  3580.   strm << setw(indent-1) << "}";
  3581. }
  3582. #endif
  3583.  
  3584.  
  3585. PObject::Comparison H248_DigitMapValue::Compare(const PObject & obj) const
  3586. {
  3587. #ifndef PASN_LEANANDMEAN
  3588.   PAssert(IsDescendant(H248_DigitMapValue::Class()), PInvalidCast);
  3589. #endif
  3590.   const H248_DigitMapValue & other = (const H248_DigitMapValue &)obj;
  3591.  
  3592.   Comparison result;
  3593.  
  3594.   if ((result = m_startTimer.Compare(other.m_startTimer)) != EqualTo)
  3595.     return result;
  3596.   if ((result = m_shortTimer.Compare(other.m_shortTimer)) != EqualTo)
  3597.     return result;
  3598.   if ((result = m_longTimer.Compare(other.m_longTimer)) != EqualTo)
  3599.     return result;
  3600.   if ((result = m_digitMapBody.Compare(other.m_digitMapBody)) != EqualTo)
  3601.     return result;
  3602.  
  3603.   return PASN_Sequence::Compare(other);
  3604. }
  3605.  
  3606.  
  3607. PINDEX H248_DigitMapValue::GetDataLength() const
  3608. {
  3609.   PINDEX length = 0;
  3610.   if (HasOptionalField(e_startTimer))
  3611.     length += m_startTimer.GetObjectLength();
  3612.   if (HasOptionalField(e_shortTimer))
  3613.     length += m_shortTimer.GetObjectLength();
  3614.   if (HasOptionalField(e_longTimer))
  3615.     length += m_longTimer.GetObjectLength();
  3616.   length += m_digitMapBody.GetObjectLength();
  3617.   return length;
  3618. }
  3619.  
  3620.  
  3621. BOOL H248_DigitMapValue::Decode(PASN_Stream & strm)
  3622. {
  3623.   if (!PreambleDecode(strm))
  3624.     return FALSE;
  3625.  
  3626.   if (HasOptionalField(e_startTimer) && !m_startTimer.Decode(strm))
  3627.     return FALSE;
  3628.   if (HasOptionalField(e_shortTimer) && !m_shortTimer.Decode(strm))
  3629.     return FALSE;
  3630.   if (HasOptionalField(e_longTimer) && !m_longTimer.Decode(strm))
  3631.     return FALSE;
  3632.   if (!m_digitMapBody.Decode(strm))
  3633.     return FALSE;
  3634.   if (!KnownExtensionDecode(strm, e_durationTimer, m_durationTimer))
  3635.     return FALSE;
  3636.  
  3637.   return UnknownExtensionsDecode(strm);
  3638. }
  3639.  
  3640.  
  3641. void H248_DigitMapValue::Encode(PASN_Stream & strm) const
  3642. {
  3643.   PreambleEncode(strm);
  3644.  
  3645.   if (HasOptionalField(e_startTimer))
  3646.     m_startTimer.Encode(strm);
  3647.   if (HasOptionalField(e_shortTimer))
  3648.     m_shortTimer.Encode(strm);
  3649.   if (HasOptionalField(e_longTimer))
  3650.     m_longTimer.Encode(strm);
  3651.   m_digitMapBody.Encode(strm);
  3652.   KnownExtensionEncode(strm, e_durationTimer, m_durationTimer);
  3653.  
  3654.   UnknownExtensionsEncode(strm);
  3655. }
  3656.  
  3657.  
  3658. PObject * H248_DigitMapValue::Clone() const
  3659. {
  3660. #ifndef PASN_LEANANDMEAN
  3661.   PAssert(IsClass(H248_DigitMapValue::Class()), PInvalidCast);
  3662. #endif
  3663.   return new H248_DigitMapValue(*this);
  3664. }
  3665.  
  3666.  
  3667. //
  3668. // ServiceChangeAddress
  3669. //
  3670.  
  3671. H248_ServiceChangeAddress::H248_ServiceChangeAddress(unsigned tag, PASN_Object::TagClass tagClass)
  3672.   : PASN_Choice(tag, tagClass, 6, TRUE
  3673. #ifndef PASN_NOPRINTON
  3674.       , "portNumber "
  3675.         "ip4Address "
  3676.         "ip6Address "
  3677.         "domainName "
  3678.         "deviceName "
  3679.         "mtpAddress "
  3680. #endif
  3681.     )
  3682. {
  3683. }
  3684.  
  3685.  
  3686. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  3687. H248_ServiceChangeAddress::operator H248_IP4Address &() const
  3688. #else
  3689. H248_ServiceChangeAddress::operator H248_IP4Address &()
  3690. {
  3691. #ifndef PASN_LEANANDMEAN
  3692.   PAssert(PAssertNULL(choice)->IsDescendant(H248_IP4Address::Class()), PInvalidCast);
  3693. #endif
  3694.   return *(H248_IP4Address *)choice;
  3695. }
  3696.  
  3697.  
  3698. H248_ServiceChangeAddress::operator const H248_IP4Address &() const
  3699. #endif
  3700. {
  3701. #ifndef PASN_LEANANDMEAN
  3702.   PAssert(PAssertNULL(choice)->IsDescendant(H248_IP4Address::Class()), PInvalidCast);
  3703. #endif
  3704.   return *(H248_IP4Address *)choice;
  3705. }
  3706.  
  3707.  
  3708. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  3709. H248_ServiceChangeAddress::operator H248_IP6Address &() const
  3710. #else
  3711. H248_ServiceChangeAddress::operator H248_IP6Address &()
  3712. {
  3713. #ifndef PASN_LEANANDMEAN
  3714.   PAssert(PAssertNULL(choice)->IsDescendant(H248_IP6Address::Class()), PInvalidCast);
  3715. #endif
  3716.   return *(H248_IP6Address *)choice;
  3717. }
  3718.  
  3719.  
  3720. H248_ServiceChangeAddress::operator const H248_IP6Address &() const
  3721. #endif
  3722. {
  3723. #ifndef PASN_LEANANDMEAN
  3724.   PAssert(PAssertNULL(choice)->IsDescendant(H248_IP6Address::Class()), PInvalidCast);
  3725. #endif
  3726.   return *(H248_IP6Address *)choice;
  3727. }
  3728.  
  3729.  
  3730. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  3731. H248_ServiceChangeAddress::operator H248_DomainName &() const
  3732. #else
  3733. H248_ServiceChangeAddress::operator H248_DomainName &()
  3734. {
  3735. #ifndef PASN_LEANANDMEAN
  3736.   PAssert(PAssertNULL(choice)->IsDescendant(H248_DomainName::Class()), PInvalidCast);
  3737. #endif
  3738.   return *(H248_DomainName *)choice;
  3739. }
  3740.  
  3741.  
  3742. H248_ServiceChangeAddress::operator const H248_DomainName &() const
  3743. #endif
  3744. {
  3745. #ifndef PASN_LEANANDMEAN
  3746.   PAssert(PAssertNULL(choice)->IsDescendant(H248_DomainName::Class()), PInvalidCast);
  3747. #endif
  3748.   return *(H248_DomainName *)choice;
  3749. }
  3750.  
  3751.  
  3752. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  3753. H248_ServiceChangeAddress::operator H248_PathName &() const
  3754. #else
  3755. H248_ServiceChangeAddress::operator H248_PathName &()
  3756. {
  3757. #ifndef PASN_LEANANDMEAN
  3758.   PAssert(PAssertNULL(choice)->IsDescendant(H248_PathName::Class()), PInvalidCast);
  3759. #endif
  3760.   return *(H248_PathName *)choice;
  3761. }
  3762.  
  3763.  
  3764. H248_ServiceChangeAddress::operator const H248_PathName &() const
  3765. #endif
  3766. {
  3767. #ifndef PASN_LEANANDMEAN
  3768.   PAssert(PAssertNULL(choice)->IsDescendant(H248_PathName::Class()), PInvalidCast);
  3769. #endif
  3770.   return *(H248_PathName *)choice;
  3771. }
  3772.  
  3773.  
  3774. BOOL H248_ServiceChangeAddress::CreateObject()
  3775. {
  3776.   switch (tag) {
  3777.     case e_portNumber :
  3778.       choice = new PASN_Integer();
  3779.       choice->SetConstraints(PASN_Object::FixedConstraint, 0, 65535);
  3780.       return TRUE;
  3781.     case e_ip4Address :
  3782.       choice = new H248_IP4Address();
  3783.       return TRUE;
  3784.     case e_ip6Address :
  3785.       choice = new H248_IP6Address();
  3786.       return TRUE;
  3787.     case e_domainName :
  3788.       choice = new H248_DomainName();
  3789.       return TRUE;
  3790.     case e_deviceName :
  3791.       choice = new H248_PathName();
  3792.       return TRUE;
  3793.     case e_mtpAddress :
  3794.       choice = new PASN_OctetString();
  3795.       choice->SetConstraints(PASN_Object::FixedConstraint, 2, 4);
  3796.       return TRUE;
  3797.   }
  3798.  
  3799.   choice = NULL;
  3800.   return FALSE;
  3801. }
  3802.  
  3803.  
  3804. PObject * H248_ServiceChangeAddress::Clone() const
  3805. {
  3806. #ifndef PASN_LEANANDMEAN
  3807.   PAssert(IsClass(H248_ServiceChangeAddress::Class()), PInvalidCast);
  3808. #endif
  3809.   return new H248_ServiceChangeAddress(*this);
  3810. }
  3811.  
  3812.  
  3813. //
  3814. // ServiceChangeMethod
  3815. //
  3816.  
  3817. H248_ServiceChangeMethod::H248_ServiceChangeMethod(unsigned tag, PASN_Object::TagClass tagClass)
  3818.   : PASN_Enumeration(tag, tagClass, 5, TRUE
  3819. #ifndef PASN_NOPRINTON
  3820.       , "failover "
  3821.         "forced "
  3822.         "graceful "
  3823.         "restart "
  3824.         "disconnected "
  3825.         "handOff "
  3826. #endif
  3827.     )
  3828. {
  3829. }
  3830.  
  3831.  
  3832. H248_ServiceChangeMethod & H248_ServiceChangeMethod::operator=(unsigned v)
  3833. {
  3834.   SetValue(v);
  3835.   return *this;
  3836. }
  3837.  
  3838.  
  3839. PObject * H248_ServiceChangeMethod::Clone() const
  3840. {
  3841. #ifndef PASN_LEANANDMEAN
  3842.   PAssert(IsClass(H248_ServiceChangeMethod::Class()), PInvalidCast);
  3843. #endif
  3844.   return new H248_ServiceChangeMethod(*this);
  3845. }
  3846.  
  3847.  
  3848. //
  3849. // ServiceChangeProfile
  3850. //
  3851.  
  3852. H248_ServiceChangeProfile::H248_ServiceChangeProfile(unsigned tag, PASN_Object::TagClass tagClass)
  3853.   : PASN_Sequence(tag, tagClass, 0, FALSE, 0)
  3854. {
  3855.   m_profileName.SetConstraints(PASN_Object::FixedConstraint, 1, 67);
  3856. }
  3857.  
  3858.  
  3859. #ifndef PASN_NOPRINTON
  3860. void H248_ServiceChangeProfile::PrintOn(ostream & strm) const
  3861. {
  3862.   int indent = strm.precision() + 2;
  3863.   strm << "{\n";
  3864.   strm << setw(indent+14) << "profileName = " << setprecision(indent) << m_profileName << '\n';
  3865.   strm << setw(indent-1) << "}";
  3866. }
  3867. #endif
  3868.  
  3869.  
  3870. PObject::Comparison H248_ServiceChangeProfile::Compare(const PObject & obj) const
  3871. {
  3872. #ifndef PASN_LEANANDMEAN
  3873.   PAssert(IsDescendant(H248_ServiceChangeProfile::Class()), PInvalidCast);
  3874. #endif
  3875.   const H248_ServiceChangeProfile & other = (const H248_ServiceChangeProfile &)obj;
  3876.  
  3877.   Comparison result;
  3878.  
  3879.   if ((result = m_profileName.Compare(other.m_profileName)) != EqualTo)
  3880.     return result;
  3881.  
  3882.   return PASN_Sequence::Compare(other);
  3883. }
  3884.  
  3885.  
  3886. PINDEX H248_ServiceChangeProfile::GetDataLength() const
  3887. {
  3888.   PINDEX length = 0;
  3889.   length += m_profileName.GetObjectLength();
  3890.   return length;
  3891. }
  3892.  
  3893.  
  3894. BOOL H248_ServiceChangeProfile::Decode(PASN_Stream & strm)
  3895. {
  3896.   if (!PreambleDecode(strm))
  3897.     return FALSE;
  3898.  
  3899.   if (!m_profileName.Decode(strm))
  3900.     return FALSE;
  3901.  
  3902.   return UnknownExtensionsDecode(strm);
  3903. }
  3904.  
  3905.  
  3906. void H248_ServiceChangeProfile::Encode(PASN_Stream & strm) const
  3907. {
  3908.   PreambleEncode(strm);
  3909.  
  3910.   m_profileName.Encode(strm);
  3911.  
  3912.   UnknownExtensionsEncode(strm);
  3913. }
  3914.  
  3915.  
  3916. PObject * H248_ServiceChangeProfile::Clone() const
  3917. {
  3918. #ifndef PASN_LEANANDMEAN
  3919.   PAssert(IsClass(H248_ServiceChangeProfile::Class()), PInvalidCast);
  3920. #endif
  3921.   return new H248_ServiceChangeProfile(*this);
  3922. }
  3923.  
  3924.  
  3925. //
  3926. // PackagesDescriptor
  3927. //
  3928.  
  3929. H248_PackagesDescriptor::H248_PackagesDescriptor(unsigned tag, PASN_Object::TagClass tagClass)
  3930.   : PASN_Array(tag, tagClass)
  3931. {
  3932. }
  3933.  
  3934.  
  3935. PASN_Object * H248_PackagesDescriptor::CreateObject() const
  3936. {
  3937.   return new H248_PackagesItem;
  3938. }
  3939.  
  3940.  
  3941. H248_PackagesItem & H248_PackagesDescriptor::operator[](PINDEX i) const
  3942. {
  3943.   return (H248_PackagesItem &)array[i];
  3944. }
  3945.  
  3946.  
  3947. PObject * H248_PackagesDescriptor::Clone() const
  3948. {
  3949. #ifndef PASN_LEANANDMEAN
  3950.   PAssert(IsClass(H248_PackagesDescriptor::Class()), PInvalidCast);
  3951. #endif
  3952.   return new H248_PackagesDescriptor(*this);
  3953. }
  3954.  
  3955.  
  3956. //
  3957. // PackagesItem
  3958. //
  3959.  
  3960. H248_PackagesItem::H248_PackagesItem(unsigned tag, PASN_Object::TagClass tagClass)
  3961.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  3962. {
  3963.   m_packageVersion.SetConstraints(PASN_Object::FixedConstraint, 0, 99);
  3964. }
  3965.  
  3966.  
  3967. #ifndef PASN_NOPRINTON
  3968. void H248_PackagesItem::PrintOn(ostream & strm) const
  3969. {
  3970.   int indent = strm.precision() + 2;
  3971.   strm << "{\n";
  3972.   strm << setw(indent+14) << "packageName = " << setprecision(indent) << m_packageName << '\n';
  3973.   strm << setw(indent+17) << "packageVersion = " << setprecision(indent) << m_packageVersion << '\n';
  3974.   strm << setw(indent-1) << "}";
  3975. }
  3976. #endif
  3977.  
  3978.  
  3979. PObject::Comparison H248_PackagesItem::Compare(const PObject & obj) const
  3980. {
  3981. #ifndef PASN_LEANANDMEAN
  3982.   PAssert(IsDescendant(H248_PackagesItem::Class()), PInvalidCast);
  3983. #endif
  3984.   const H248_PackagesItem & other = (const H248_PackagesItem &)obj;
  3985.  
  3986.   Comparison result;
  3987.  
  3988.   if ((result = m_packageName.Compare(other.m_packageName)) != EqualTo)
  3989.     return result;
  3990.   if ((result = m_packageVersion.Compare(other.m_packageVersion)) != EqualTo)
  3991.     return result;
  3992.  
  3993.   return PASN_Sequence::Compare(other);
  3994. }
  3995.  
  3996.  
  3997. PINDEX H248_PackagesItem::GetDataLength() const
  3998. {
  3999.   PINDEX length = 0;
  4000.   length += m_packageName.GetObjectLength();
  4001.   length += m_packageVersion.GetObjectLength();
  4002.   return length;
  4003. }
  4004.  
  4005.  
  4006. BOOL H248_PackagesItem::Decode(PASN_Stream & strm)
  4007. {
  4008.   if (!PreambleDecode(strm))
  4009.     return FALSE;
  4010.  
  4011.   if (!m_packageName.Decode(strm))
  4012.     return FALSE;
  4013.   if (!m_packageVersion.Decode(strm))
  4014.     return FALSE;
  4015.  
  4016.   return UnknownExtensionsDecode(strm);
  4017. }
  4018.  
  4019.  
  4020. void H248_PackagesItem::Encode(PASN_Stream & strm) const
  4021. {
  4022.   PreambleEncode(strm);
  4023.  
  4024.   m_packageName.Encode(strm);
  4025.   m_packageVersion.Encode(strm);
  4026.  
  4027.   UnknownExtensionsEncode(strm);
  4028. }
  4029.  
  4030.  
  4031. PObject * H248_PackagesItem::Clone() const
  4032. {
  4033. #ifndef PASN_LEANANDMEAN
  4034.   PAssert(IsClass(H248_PackagesItem::Class()), PInvalidCast);
  4035. #endif
  4036.   return new H248_PackagesItem(*this);
  4037. }
  4038.  
  4039.  
  4040. //
  4041. // StatisticsDescriptor
  4042. //
  4043.  
  4044. H248_StatisticsDescriptor::H248_StatisticsDescriptor(unsigned tag, PASN_Object::TagClass tagClass)
  4045.   : PASN_Array(tag, tagClass)
  4046. {
  4047. }
  4048.  
  4049.  
  4050. PASN_Object * H248_StatisticsDescriptor::CreateObject() const
  4051. {
  4052.   return new H248_StatisticsParameter;
  4053. }
  4054.  
  4055.  
  4056. H248_StatisticsParameter & H248_StatisticsDescriptor::operator[](PINDEX i) const
  4057. {
  4058.   return (H248_StatisticsParameter &)array[i];
  4059. }
  4060.  
  4061.  
  4062. PObject * H248_StatisticsDescriptor::Clone() const
  4063. {
  4064. #ifndef PASN_LEANANDMEAN
  4065.   PAssert(IsClass(H248_StatisticsDescriptor::Class()), PInvalidCast);
  4066. #endif
  4067.   return new H248_StatisticsDescriptor(*this);
  4068. }
  4069.  
  4070.  
  4071. //
  4072. // NonStandardIdentifier
  4073. //
  4074.  
  4075. H248_NonStandardIdentifier::H248_NonStandardIdentifier(unsigned tag, PASN_Object::TagClass tagClass)
  4076.   : PASN_Choice(tag, tagClass, 3, TRUE
  4077. #ifndef PASN_NOPRINTON
  4078.       , "object "
  4079.         "h221NonStandard "
  4080.         "experimental "
  4081. #endif
  4082.     )
  4083. {
  4084. }
  4085.  
  4086.  
  4087. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  4088. H248_NonStandardIdentifier::operator H248_H221NonStandard &() const
  4089. #else
  4090. H248_NonStandardIdentifier::operator H248_H221NonStandard &()
  4091. {
  4092. #ifndef PASN_LEANANDMEAN
  4093.   PAssert(PAssertNULL(choice)->IsDescendant(H248_H221NonStandard::Class()), PInvalidCast);
  4094. #endif
  4095.   return *(H248_H221NonStandard *)choice;
  4096. }
  4097.  
  4098.  
  4099. H248_NonStandardIdentifier::operator const H248_H221NonStandard &() const
  4100. #endif
  4101. {
  4102. #ifndef PASN_LEANANDMEAN
  4103.   PAssert(PAssertNULL(choice)->IsDescendant(H248_H221NonStandard::Class()), PInvalidCast);
  4104. #endif
  4105.   return *(H248_H221NonStandard *)choice;
  4106. }
  4107.  
  4108.  
  4109. BOOL H248_NonStandardIdentifier::CreateObject()
  4110. {
  4111.   switch (tag) {
  4112.     case e_object :
  4113.       choice = new PASN_ObjectId();
  4114.       return TRUE;
  4115.     case e_h221NonStandard :
  4116.       choice = new H248_H221NonStandard();
  4117.       return TRUE;
  4118.     case e_experimental :
  4119.       choice = new PASN_IA5String();
  4120.       choice->SetConstraints(PASN_Object::FixedConstraint, 8);
  4121.       return TRUE;
  4122.   }
  4123.  
  4124.   choice = NULL;
  4125.   return FALSE;
  4126. }
  4127.  
  4128.  
  4129. PObject * H248_NonStandardIdentifier::Clone() const
  4130. {
  4131. #ifndef PASN_LEANANDMEAN
  4132.   PAssert(IsClass(H248_NonStandardIdentifier::Class()), PInvalidCast);
  4133. #endif
  4134.   return new H248_NonStandardIdentifier(*this);
  4135. }
  4136.  
  4137.  
  4138. //
  4139. // H221NonStandard
  4140. //
  4141.  
  4142. H248_H221NonStandard::H248_H221NonStandard(unsigned tag, PASN_Object::TagClass tagClass)
  4143.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  4144. {
  4145.   m_t35CountryCode1.SetConstraints(PASN_Object::FixedConstraint, 0, 255);
  4146.   m_t35CountryCode2.SetConstraints(PASN_Object::FixedConstraint, 0, 255);
  4147.   m_t35Extension.SetConstraints(PASN_Object::FixedConstraint, 0, 255);
  4148.   m_manufacturerCode.SetConstraints(PASN_Object::FixedConstraint, 0, 65535);
  4149. }
  4150.  
  4151.  
  4152. #ifndef PASN_NOPRINTON
  4153. void H248_H221NonStandard::PrintOn(ostream & strm) const
  4154. {
  4155.   int indent = strm.precision() + 2;
  4156.   strm << "{\n";
  4157.   strm << setw(indent+18) << "t35CountryCode1 = " << setprecision(indent) << m_t35CountryCode1 << '\n';
  4158.   strm << setw(indent+18) << "t35CountryCode2 = " << setprecision(indent) << m_t35CountryCode2 << '\n';
  4159.   strm << setw(indent+15) << "t35Extension = " << setprecision(indent) << m_t35Extension << '\n';
  4160.   strm << setw(indent+19) << "manufacturerCode = " << setprecision(indent) << m_manufacturerCode << '\n';
  4161.   strm << setw(indent-1) << "}";
  4162. }
  4163. #endif
  4164.  
  4165.  
  4166. PObject::Comparison H248_H221NonStandard::Compare(const PObject & obj) const
  4167. {
  4168. #ifndef PASN_LEANANDMEAN
  4169.   PAssert(IsDescendant(H248_H221NonStandard::Class()), PInvalidCast);
  4170. #endif
  4171.   const H248_H221NonStandard & other = (const H248_H221NonStandard &)obj;
  4172.  
  4173.   Comparison result;
  4174.  
  4175.   if ((result = m_t35CountryCode1.Compare(other.m_t35CountryCode1)) != EqualTo)
  4176.     return result;
  4177.   if ((result = m_t35CountryCode2.Compare(other.m_t35CountryCode2)) != EqualTo)
  4178.     return result;
  4179.   if ((result = m_t35Extension.Compare(other.m_t35Extension)) != EqualTo)
  4180.     return result;
  4181.   if ((result = m_manufacturerCode.Compare(other.m_manufacturerCode)) != EqualTo)
  4182.     return result;
  4183.  
  4184.   return PASN_Sequence::Compare(other);
  4185. }
  4186.  
  4187.  
  4188. PINDEX H248_H221NonStandard::GetDataLength() const
  4189. {
  4190.   PINDEX length = 0;
  4191.   length += m_t35CountryCode1.GetObjectLength();
  4192.   length += m_t35CountryCode2.GetObjectLength();
  4193.   length += m_t35Extension.GetObjectLength();
  4194.   length += m_manufacturerCode.GetObjectLength();
  4195.   return length;
  4196. }
  4197.  
  4198.  
  4199. BOOL H248_H221NonStandard::Decode(PASN_Stream & strm)
  4200. {
  4201.   if (!PreambleDecode(strm))
  4202.     return FALSE;
  4203.  
  4204.   if (!m_t35CountryCode1.Decode(strm))
  4205.     return FALSE;
  4206.   if (!m_t35CountryCode2.Decode(strm))
  4207.     return FALSE;
  4208.   if (!m_t35Extension.Decode(strm))
  4209.     return FALSE;
  4210.   if (!m_manufacturerCode.Decode(strm))
  4211.     return FALSE;
  4212.  
  4213.   return UnknownExtensionsDecode(strm);
  4214. }
  4215.  
  4216.  
  4217. void H248_H221NonStandard::Encode(PASN_Stream & strm) const
  4218. {
  4219.   PreambleEncode(strm);
  4220.  
  4221.   m_t35CountryCode1.Encode(strm);
  4222.   m_t35CountryCode2.Encode(strm);
  4223.   m_t35Extension.Encode(strm);
  4224.   m_manufacturerCode.Encode(strm);
  4225.  
  4226.   UnknownExtensionsEncode(strm);
  4227. }
  4228.  
  4229.  
  4230. PObject * H248_H221NonStandard::Clone() const
  4231. {
  4232. #ifndef PASN_LEANANDMEAN
  4233.   PAssert(IsClass(H248_H221NonStandard::Class()), PInvalidCast);
  4234. #endif
  4235.   return new H248_H221NonStandard(*this);
  4236. }
  4237.  
  4238.  
  4239. //
  4240. // TimeNotation
  4241. //
  4242.  
  4243. H248_TimeNotation::H248_TimeNotation(unsigned tag, PASN_Object::TagClass tagClass)
  4244.   : PASN_Sequence(tag, tagClass, 0, FALSE, 0)
  4245. {
  4246.   m_date.SetConstraints(PASN_Object::FixedConstraint, 8);
  4247.   m_time.SetConstraints(PASN_Object::FixedConstraint, 8);
  4248. }
  4249.  
  4250.  
  4251. #ifndef PASN_NOPRINTON
  4252. void H248_TimeNotation::PrintOn(ostream & strm) const
  4253. {
  4254.   int indent = strm.precision() + 2;
  4255.   strm << "{\n";
  4256.   strm << setw(indent+7) << "date = " << setprecision(indent) << m_date << '\n';
  4257.   strm << setw(indent+7) << "time = " << setprecision(indent) << m_time << '\n';
  4258.   strm << setw(indent-1) << "}";
  4259. }
  4260. #endif
  4261.  
  4262.  
  4263. PObject::Comparison H248_TimeNotation::Compare(const PObject & obj) const
  4264. {
  4265. #ifndef PASN_LEANANDMEAN
  4266.   PAssert(IsDescendant(H248_TimeNotation::Class()), PInvalidCast);
  4267. #endif
  4268.   const H248_TimeNotation & other = (const H248_TimeNotation &)obj;
  4269.  
  4270.   Comparison result;
  4271.  
  4272.   if ((result = m_date.Compare(other.m_date)) != EqualTo)
  4273.     return result;
  4274.   if ((result = m_time.Compare(other.m_time)) != EqualTo)
  4275.     return result;
  4276.  
  4277.   return PASN_Sequence::Compare(other);
  4278. }
  4279.  
  4280.  
  4281. PINDEX H248_TimeNotation::GetDataLength() const
  4282. {
  4283.   PINDEX length = 0;
  4284.   length += m_date.GetObjectLength();
  4285.   length += m_time.GetObjectLength();
  4286.   return length;
  4287. }
  4288.  
  4289.  
  4290. BOOL H248_TimeNotation::Decode(PASN_Stream & strm)
  4291. {
  4292.   if (!PreambleDecode(strm))
  4293.     return FALSE;
  4294.  
  4295.   if (!m_date.Decode(strm))
  4296.     return FALSE;
  4297.   if (!m_time.Decode(strm))
  4298.     return FALSE;
  4299.  
  4300.   return UnknownExtensionsDecode(strm);
  4301. }
  4302.  
  4303.  
  4304. void H248_TimeNotation::Encode(PASN_Stream & strm) const
  4305. {
  4306.   PreambleEncode(strm);
  4307.  
  4308.   m_date.Encode(strm);
  4309.   m_time.Encode(strm);
  4310.  
  4311.   UnknownExtensionsEncode(strm);
  4312. }
  4313.  
  4314.  
  4315. PObject * H248_TimeNotation::Clone() const
  4316. {
  4317. #ifndef PASN_LEANANDMEAN
  4318.   PAssert(IsClass(H248_TimeNotation::Class()), PInvalidCast);
  4319. #endif
  4320.   return new H248_TimeNotation(*this);
  4321. }
  4322.  
  4323.  
  4324. //
  4325. // Value
  4326. //
  4327.  
  4328. H248_Value::H248_Value(unsigned tag, PASN_Object::TagClass tagClass)
  4329.   : PASN_Array(tag, tagClass)
  4330. {
  4331. }
  4332.  
  4333.  
  4334. PASN_Object * H248_Value::CreateObject() const
  4335. {
  4336.   return new PASN_OctetString;
  4337. }
  4338.  
  4339.  
  4340. PASN_OctetString & H248_Value::operator[](PINDEX i) const
  4341. {
  4342.   return (PASN_OctetString &)array[i];
  4343. }
  4344.  
  4345.  
  4346. PObject * H248_Value::Clone() const
  4347. {
  4348. #ifndef PASN_LEANANDMEAN
  4349.   PAssert(IsClass(H248_Value::Class()), PInvalidCast);
  4350. #endif
  4351.   return new H248_Value(*this);
  4352. }
  4353.  
  4354.  
  4355. //
  4356. // Message_messageBody
  4357. //
  4358.  
  4359. H248_Message_messageBody::H248_Message_messageBody(unsigned tag, PASN_Object::TagClass tagClass)
  4360.   : PASN_Choice(tag, tagClass, 2, FALSE
  4361. #ifndef PASN_NOPRINTON
  4362.       , "messageError "
  4363.         "transactions "
  4364. #endif
  4365.     )
  4366. {
  4367. }
  4368.  
  4369.  
  4370. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  4371. H248_Message_messageBody::operator H248_ErrorDescriptor &() const
  4372. #else
  4373. H248_Message_messageBody::operator H248_ErrorDescriptor &()
  4374. {
  4375. #ifndef PASN_LEANANDMEAN
  4376.   PAssert(PAssertNULL(choice)->IsDescendant(H248_ErrorDescriptor::Class()), PInvalidCast);
  4377. #endif
  4378.   return *(H248_ErrorDescriptor *)choice;
  4379. }
  4380.  
  4381.  
  4382. H248_Message_messageBody::operator const H248_ErrorDescriptor &() const
  4383. #endif
  4384. {
  4385. #ifndef PASN_LEANANDMEAN
  4386.   PAssert(PAssertNULL(choice)->IsDescendant(H248_ErrorDescriptor::Class()), PInvalidCast);
  4387. #endif
  4388.   return *(H248_ErrorDescriptor *)choice;
  4389. }
  4390.  
  4391.  
  4392. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  4393. H248_Message_messageBody::operator H248_ArrayOf_Transaction &() const
  4394. #else
  4395. H248_Message_messageBody::operator H248_ArrayOf_Transaction &()
  4396. {
  4397. #ifndef PASN_LEANANDMEAN
  4398.   PAssert(PAssertNULL(choice)->IsDescendant(H248_ArrayOf_Transaction::Class()), PInvalidCast);
  4399. #endif
  4400.   return *(H248_ArrayOf_Transaction *)choice;
  4401. }
  4402.  
  4403.  
  4404. H248_Message_messageBody::operator const H248_ArrayOf_Transaction &() const
  4405. #endif
  4406. {
  4407. #ifndef PASN_LEANANDMEAN
  4408.   PAssert(PAssertNULL(choice)->IsDescendant(H248_ArrayOf_Transaction::Class()), PInvalidCast);
  4409. #endif
  4410.   return *(H248_ArrayOf_Transaction *)choice;
  4411. }
  4412.  
  4413.  
  4414. BOOL H248_Message_messageBody::CreateObject()
  4415. {
  4416.   switch (tag) {
  4417.     case e_messageError :
  4418.       choice = new H248_ErrorDescriptor();
  4419.       return TRUE;
  4420.     case e_transactions :
  4421.       choice = new H248_ArrayOf_Transaction();
  4422.       return TRUE;
  4423.   }
  4424.  
  4425.   choice = NULL;
  4426.   return FALSE;
  4427. }
  4428.  
  4429.  
  4430. PObject * H248_Message_messageBody::Clone() const
  4431. {
  4432. #ifndef PASN_LEANANDMEAN
  4433.   PAssert(IsClass(H248_Message_messageBody::Class()), PInvalidCast);
  4434. #endif
  4435.   return new H248_Message_messageBody(*this);
  4436. }
  4437.  
  4438.  
  4439. //
  4440. // ArrayOf_ActionRequest
  4441. //
  4442.  
  4443. H248_ArrayOf_ActionRequest::H248_ArrayOf_ActionRequest(unsigned tag, PASN_Object::TagClass tagClass)
  4444.   : PASN_Array(tag, tagClass)
  4445. {
  4446. }
  4447.  
  4448.  
  4449. PASN_Object * H248_ArrayOf_ActionRequest::CreateObject() const
  4450. {
  4451.   return new H248_ActionRequest;
  4452. }
  4453.  
  4454.  
  4455. H248_ActionRequest & H248_ArrayOf_ActionRequest::operator[](PINDEX i) const
  4456. {
  4457.   return (H248_ActionRequest &)array[i];
  4458. }
  4459.  
  4460.  
  4461. PObject * H248_ArrayOf_ActionRequest::Clone() const
  4462. {
  4463. #ifndef PASN_LEANANDMEAN
  4464.   PAssert(IsClass(H248_ArrayOf_ActionRequest::Class()), PInvalidCast);
  4465. #endif
  4466.   return new H248_ArrayOf_ActionRequest(*this);
  4467. }
  4468.  
  4469.  
  4470. //
  4471. // TransactionReply_transactionResult
  4472. //
  4473.  
  4474. H248_TransactionReply_transactionResult::H248_TransactionReply_transactionResult(unsigned tag, PASN_Object::TagClass tagClass)
  4475.   : PASN_Choice(tag, tagClass, 2, FALSE
  4476. #ifndef PASN_NOPRINTON
  4477.       , "transactionError "
  4478.         "actionReplies "
  4479. #endif
  4480.     )
  4481. {
  4482. }
  4483.  
  4484.  
  4485. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  4486. H248_TransactionReply_transactionResult::operator H248_ErrorDescriptor &() const
  4487. #else
  4488. H248_TransactionReply_transactionResult::operator H248_ErrorDescriptor &()
  4489. {
  4490. #ifndef PASN_LEANANDMEAN
  4491.   PAssert(PAssertNULL(choice)->IsDescendant(H248_ErrorDescriptor::Class()), PInvalidCast);
  4492. #endif
  4493.   return *(H248_ErrorDescriptor *)choice;
  4494. }
  4495.  
  4496.  
  4497. H248_TransactionReply_transactionResult::operator const H248_ErrorDescriptor &() const
  4498. #endif
  4499. {
  4500. #ifndef PASN_LEANANDMEAN
  4501.   PAssert(PAssertNULL(choice)->IsDescendant(H248_ErrorDescriptor::Class()), PInvalidCast);
  4502. #endif
  4503.   return *(H248_ErrorDescriptor *)choice;
  4504. }
  4505.  
  4506.  
  4507. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  4508. H248_TransactionReply_transactionResult::operator H248_ArrayOf_ActionReply &() const
  4509. #else
  4510. H248_TransactionReply_transactionResult::operator H248_ArrayOf_ActionReply &()
  4511. {
  4512. #ifndef PASN_LEANANDMEAN
  4513.   PAssert(PAssertNULL(choice)->IsDescendant(H248_ArrayOf_ActionReply::Class()), PInvalidCast);
  4514. #endif
  4515.   return *(H248_ArrayOf_ActionReply *)choice;
  4516. }
  4517.  
  4518.  
  4519. H248_TransactionReply_transactionResult::operator const H248_ArrayOf_ActionReply &() const
  4520. #endif
  4521. {
  4522. #ifndef PASN_LEANANDMEAN
  4523.   PAssert(PAssertNULL(choice)->IsDescendant(H248_ArrayOf_ActionReply::Class()), PInvalidCast);
  4524. #endif
  4525.   return *(H248_ArrayOf_ActionReply *)choice;
  4526. }
  4527.  
  4528.  
  4529. BOOL H248_TransactionReply_transactionResult::CreateObject()
  4530. {
  4531.   switch (tag) {
  4532.     case e_transactionError :
  4533.       choice = new H248_ErrorDescriptor();
  4534.       return TRUE;
  4535.     case e_actionReplies :
  4536.       choice = new H248_ArrayOf_ActionReply();
  4537.       return TRUE;
  4538.   }
  4539.  
  4540.   choice = NULL;
  4541.   return FALSE;
  4542. }
  4543.  
  4544.  
  4545. PObject * H248_TransactionReply_transactionResult::Clone() const
  4546. {
  4547. #ifndef PASN_LEANANDMEAN
  4548.   PAssert(IsClass(H248_TransactionReply_transactionResult::Class()), PInvalidCast);
  4549. #endif
  4550.   return new H248_TransactionReply_transactionResult(*this);
  4551. }
  4552.  
  4553.  
  4554. //
  4555. // ArrayOf_CommandRequest
  4556. //
  4557.  
  4558. H248_ArrayOf_CommandRequest::H248_ArrayOf_CommandRequest(unsigned tag, PASN_Object::TagClass tagClass)
  4559.   : PASN_Array(tag, tagClass)
  4560. {
  4561. }
  4562.  
  4563.  
  4564. PASN_Object * H248_ArrayOf_CommandRequest::CreateObject() const
  4565. {
  4566.   return new H248_CommandRequest;
  4567. }
  4568.  
  4569.  
  4570. H248_CommandRequest & H248_ArrayOf_CommandRequest::operator[](PINDEX i) const
  4571. {
  4572.   return (H248_CommandRequest &)array[i];
  4573. }
  4574.  
  4575.  
  4576. PObject * H248_ArrayOf_CommandRequest::Clone() const
  4577. {
  4578. #ifndef PASN_LEANANDMEAN
  4579.   PAssert(IsClass(H248_ArrayOf_CommandRequest::Class()), PInvalidCast);
  4580. #endif
  4581.   return new H248_ArrayOf_CommandRequest(*this);
  4582. }
  4583.  
  4584.  
  4585. //
  4586. // ArrayOf_CommandReply
  4587. //
  4588.  
  4589. H248_ArrayOf_CommandReply::H248_ArrayOf_CommandReply(unsigned tag, PASN_Object::TagClass tagClass)
  4590.   : PASN_Array(tag, tagClass)
  4591. {
  4592. }
  4593.  
  4594.  
  4595. PASN_Object * H248_ArrayOf_CommandReply::CreateObject() const
  4596. {
  4597.   return new H248_CommandReply;
  4598. }
  4599.  
  4600.  
  4601. H248_CommandReply & H248_ArrayOf_CommandReply::operator[](PINDEX i) const
  4602. {
  4603.   return (H248_CommandReply &)array[i];
  4604. }
  4605.  
  4606.  
  4607. PObject * H248_ArrayOf_CommandReply::Clone() const
  4608. {
  4609. #ifndef PASN_LEANANDMEAN
  4610.   PAssert(IsClass(H248_ArrayOf_CommandReply::Class()), PInvalidCast);
  4611. #endif
  4612.   return new H248_ArrayOf_CommandReply(*this);
  4613. }
  4614.  
  4615.  
  4616. //
  4617. // ArrayOf_TopologyRequest
  4618. //
  4619.  
  4620. H248_ArrayOf_TopologyRequest::H248_ArrayOf_TopologyRequest(unsigned tag, PASN_Object::TagClass tagClass)
  4621.   : PASN_Array(tag, tagClass)
  4622. {
  4623. }
  4624.  
  4625.  
  4626. PASN_Object * H248_ArrayOf_TopologyRequest::CreateObject() const
  4627. {
  4628.   return new H248_TopologyRequest;
  4629. }
  4630.  
  4631.  
  4632. H248_TopologyRequest & H248_ArrayOf_TopologyRequest::operator[](PINDEX i) const
  4633. {
  4634.   return (H248_TopologyRequest &)array[i];
  4635. }
  4636.  
  4637.  
  4638. PObject * H248_ArrayOf_TopologyRequest::Clone() const
  4639. {
  4640. #ifndef PASN_LEANANDMEAN
  4641.   PAssert(IsClass(H248_ArrayOf_TopologyRequest::Class()), PInvalidCast);
  4642. #endif
  4643.   return new H248_ArrayOf_TopologyRequest(*this);
  4644. }
  4645.  
  4646.  
  4647. //
  4648. // TopologyRequest_topologyDirection
  4649. //
  4650.  
  4651. H248_TopologyRequest_topologyDirection::H248_TopologyRequest_topologyDirection(unsigned tag, PASN_Object::TagClass tagClass)
  4652.   : PASN_Enumeration(tag, tagClass, 2, FALSE
  4653. #ifndef PASN_NOPRINTON
  4654.       , "bothway "
  4655.         "isolate "
  4656.         "oneway "
  4657. #endif
  4658.     )
  4659. {
  4660. }
  4661.  
  4662.  
  4663. H248_TopologyRequest_topologyDirection & H248_TopologyRequest_topologyDirection::operator=(unsigned v)
  4664. {
  4665.   SetValue(v);
  4666.   return *this;
  4667. }
  4668.  
  4669.  
  4670. PObject * H248_TopologyRequest_topologyDirection::Clone() const
  4671. {
  4672. #ifndef PASN_LEANANDMEAN
  4673.   PAssert(IsClass(H248_TopologyRequest_topologyDirection::Class()), PInvalidCast);
  4674. #endif
  4675.   return new H248_TopologyRequest_topologyDirection(*this);
  4676. }
  4677.  
  4678.  
  4679. //
  4680. // ArrayOf_AmmDescriptor
  4681. //
  4682.  
  4683. H248_ArrayOf_AmmDescriptor::H248_ArrayOf_AmmDescriptor(unsigned tag, PASN_Object::TagClass tagClass)
  4684.   : PASN_Array(tag, tagClass)
  4685. {
  4686. }
  4687.  
  4688.  
  4689. PASN_Object * H248_ArrayOf_AmmDescriptor::CreateObject() const
  4690. {
  4691.   return new H248_AmmDescriptor;
  4692. }
  4693.  
  4694.  
  4695. H248_AmmDescriptor & H248_ArrayOf_AmmDescriptor::operator[](PINDEX i) const
  4696. {
  4697.   return (H248_AmmDescriptor &)array[i];
  4698. }
  4699.  
  4700.  
  4701. PObject * H248_ArrayOf_AmmDescriptor::Clone() const
  4702. {
  4703. #ifndef PASN_LEANANDMEAN
  4704.   PAssert(IsClass(H248_ArrayOf_AmmDescriptor::Class()), PInvalidCast);
  4705. #endif
  4706.   return new H248_ArrayOf_AmmDescriptor(*this);
  4707. }
  4708.  
  4709.  
  4710. //
  4711. // ArrayOf_IndAuditParameter
  4712. //
  4713.  
  4714. H248_ArrayOf_IndAuditParameter::H248_ArrayOf_IndAuditParameter(unsigned tag, PASN_Object::TagClass tagClass)
  4715.   : PASN_Array(tag, tagClass)
  4716. {
  4717. }
  4718.  
  4719.  
  4720. PASN_Object * H248_ArrayOf_IndAuditParameter::CreateObject() const
  4721. {
  4722.   return new H248_IndAuditParameter;
  4723. }
  4724.  
  4725.  
  4726. H248_IndAuditParameter & H248_ArrayOf_IndAuditParameter::operator[](PINDEX i) const
  4727. {
  4728.   return (H248_IndAuditParameter &)array[i];
  4729. }
  4730.  
  4731.  
  4732. PObject * H248_ArrayOf_IndAuditParameter::Clone() const
  4733. {
  4734. #ifndef PASN_LEANANDMEAN
  4735.   PAssert(IsClass(H248_ArrayOf_IndAuditParameter::Class()), PInvalidCast);
  4736. #endif
  4737.   return new H248_ArrayOf_IndAuditParameter(*this);
  4738. }
  4739.  
  4740.  
  4741. //
  4742. // IndAudMediaDescriptor_streams
  4743. //
  4744.  
  4745. H248_IndAudMediaDescriptor_streams::H248_IndAudMediaDescriptor_streams(unsigned tag, PASN_Object::TagClass tagClass)
  4746.   : PASN_Choice(tag, tagClass, 2, FALSE
  4747. #ifndef PASN_NOPRINTON
  4748.       , "oneStream "
  4749.         "multiStream "
  4750. #endif
  4751.     )
  4752. {
  4753. }
  4754.  
  4755.  
  4756. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  4757. H248_IndAudMediaDescriptor_streams::operator H248_IndAudStreamParms &() const
  4758. #else
  4759. H248_IndAudMediaDescriptor_streams::operator H248_IndAudStreamParms &()
  4760. {
  4761. #ifndef PASN_LEANANDMEAN
  4762.   PAssert(PAssertNULL(choice)->IsDescendant(H248_IndAudStreamParms::Class()), PInvalidCast);
  4763. #endif
  4764.   return *(H248_IndAudStreamParms *)choice;
  4765. }
  4766.  
  4767.  
  4768. H248_IndAudMediaDescriptor_streams::operator const H248_IndAudStreamParms &() const
  4769. #endif
  4770. {
  4771. #ifndef PASN_LEANANDMEAN
  4772.   PAssert(PAssertNULL(choice)->IsDescendant(H248_IndAudStreamParms::Class()), PInvalidCast);
  4773. #endif
  4774.   return *(H248_IndAudStreamParms *)choice;
  4775. }
  4776.  
  4777.  
  4778. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  4779. H248_IndAudMediaDescriptor_streams::operator H248_ArrayOf_IndAudStreamDescriptor &() const
  4780. #else
  4781. H248_IndAudMediaDescriptor_streams::operator H248_ArrayOf_IndAudStreamDescriptor &()
  4782. {
  4783. #ifndef PASN_LEANANDMEAN
  4784.   PAssert(PAssertNULL(choice)->IsDescendant(H248_ArrayOf_IndAudStreamDescriptor::Class()), PInvalidCast);
  4785. #endif
  4786.   return *(H248_ArrayOf_IndAudStreamDescriptor *)choice;
  4787. }
  4788.  
  4789.  
  4790. H248_IndAudMediaDescriptor_streams::operator const H248_ArrayOf_IndAudStreamDescriptor &() const
  4791. #endif
  4792. {
  4793. #ifndef PASN_LEANANDMEAN
  4794.   PAssert(PAssertNULL(choice)->IsDescendant(H248_ArrayOf_IndAudStreamDescriptor::Class()), PInvalidCast);
  4795. #endif
  4796.   return *(H248_ArrayOf_IndAudStreamDescriptor *)choice;
  4797. }
  4798.  
  4799.  
  4800. BOOL H248_IndAudMediaDescriptor_streams::CreateObject()
  4801. {
  4802.   switch (tag) {
  4803.     case e_oneStream :
  4804.       choice = new H248_IndAudStreamParms();
  4805.       return TRUE;
  4806.     case e_multiStream :
  4807.       choice = new H248_ArrayOf_IndAudStreamDescriptor();
  4808.       return TRUE;
  4809.   }
  4810.  
  4811.   choice = NULL;
  4812.   return FALSE;
  4813. }
  4814.  
  4815.  
  4816. PObject * H248_IndAudMediaDescriptor_streams::Clone() const
  4817. {
  4818. #ifndef PASN_LEANANDMEAN
  4819.   PAssert(IsClass(H248_IndAudMediaDescriptor_streams::Class()), PInvalidCast);
  4820. #endif
  4821.   return new H248_IndAudMediaDescriptor_streams(*this);
  4822. }
  4823.  
  4824.  
  4825. //
  4826. // ArrayOf_IndAudPropertyParm
  4827. //
  4828.  
  4829. H248_ArrayOf_IndAudPropertyParm::H248_ArrayOf_IndAudPropertyParm(unsigned tag, PASN_Object::TagClass tagClass)
  4830.   : PASN_Array(tag, tagClass)
  4831. {
  4832. }
  4833.  
  4834.  
  4835. PASN_Object * H248_ArrayOf_IndAudPropertyParm::CreateObject() const
  4836. {
  4837.   return new H248_IndAudPropertyParm;
  4838. }
  4839.  
  4840.  
  4841. H248_IndAudPropertyParm & H248_ArrayOf_IndAudPropertyParm::operator[](PINDEX i) const
  4842. {
  4843.   return (H248_IndAudPropertyParm &)array[i];
  4844. }
  4845.  
  4846.  
  4847. PObject * H248_ArrayOf_IndAudPropertyParm::Clone() const
  4848. {
  4849. #ifndef PASN_LEANANDMEAN
  4850.   PAssert(IsClass(H248_ArrayOf_IndAudPropertyParm::Class()), PInvalidCast);
  4851. #endif
  4852.   return new H248_ArrayOf_IndAudPropertyParm(*this);
  4853. }
  4854.  
  4855.  
  4856. //
  4857. // ArrayOf_ObservedEvent
  4858. //
  4859.  
  4860. H248_ArrayOf_ObservedEvent::H248_ArrayOf_ObservedEvent(unsigned tag, PASN_Object::TagClass tagClass)
  4861.   : PASN_Array(tag, tagClass)
  4862. {
  4863. }
  4864.  
  4865.  
  4866. PASN_Object * H248_ArrayOf_ObservedEvent::CreateObject() const
  4867. {
  4868.   return new H248_ObservedEvent;
  4869. }
  4870.  
  4871.  
  4872. H248_ObservedEvent & H248_ArrayOf_ObservedEvent::operator[](PINDEX i) const
  4873. {
  4874.   return (H248_ObservedEvent &)array[i];
  4875. }
  4876.  
  4877.  
  4878. PObject * H248_ArrayOf_ObservedEvent::Clone() const
  4879. {
  4880. #ifndef PASN_LEANANDMEAN
  4881.   PAssert(IsClass(H248_ArrayOf_ObservedEvent::Class()), PInvalidCast);
  4882. #endif
  4883.   return new H248_ArrayOf_ObservedEvent(*this);
  4884. }
  4885.  
  4886.  
  4887. //
  4888. // ArrayOf_EventParameter
  4889. //
  4890.  
  4891. H248_ArrayOf_EventParameter::H248_ArrayOf_EventParameter(unsigned tag, PASN_Object::TagClass tagClass)
  4892.   : PASN_Array(tag, tagClass)
  4893. {
  4894. }
  4895.  
  4896.  
  4897. PASN_Object * H248_ArrayOf_EventParameter::CreateObject() const
  4898. {
  4899.   return new H248_EventParameter;
  4900. }
  4901.  
  4902.  
  4903. H248_EventParameter & H248_ArrayOf_EventParameter::operator[](PINDEX i) const
  4904. {
  4905.   return (H248_EventParameter &)array[i];
  4906. }
  4907.  
  4908.  
  4909. PObject * H248_ArrayOf_EventParameter::Clone() const
  4910. {
  4911. #ifndef PASN_LEANANDMEAN
  4912.   PAssert(IsClass(H248_ArrayOf_EventParameter::Class()), PInvalidCast);
  4913. #endif
  4914.   return new H248_ArrayOf_EventParameter(*this);
  4915. }
  4916.  
  4917.  
  4918. //
  4919. // EventParameter_extraInfo
  4920. //
  4921.  
  4922. H248_EventParameter_extraInfo::H248_EventParameter_extraInfo(unsigned tag, PASN_Object::TagClass tagClass)
  4923.   : PASN_Choice(tag, tagClass, 3, FALSE
  4924. #ifndef PASN_NOPRINTON
  4925.       , "relation "
  4926.         "range "
  4927.         "sublist "
  4928. #endif
  4929.     )
  4930. {
  4931. }
  4932.  
  4933.  
  4934. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  4935. H248_EventParameter_extraInfo::operator H248_Relation &() const
  4936. #else
  4937. H248_EventParameter_extraInfo::operator H248_Relation &()
  4938. {
  4939. #ifndef PASN_LEANANDMEAN
  4940.   PAssert(PAssertNULL(choice)->IsDescendant(H248_Relation::Class()), PInvalidCast);
  4941. #endif
  4942.   return *(H248_Relation *)choice;
  4943. }
  4944.  
  4945.  
  4946. H248_EventParameter_extraInfo::operator const H248_Relation &() const
  4947. #endif
  4948. {
  4949. #ifndef PASN_LEANANDMEAN
  4950.   PAssert(PAssertNULL(choice)->IsDescendant(H248_Relation::Class()), PInvalidCast);
  4951. #endif
  4952.   return *(H248_Relation *)choice;
  4953. }
  4954.  
  4955.  
  4956. BOOL H248_EventParameter_extraInfo::CreateObject()
  4957. {
  4958.   switch (tag) {
  4959.     case e_relation :
  4960.       choice = new H248_Relation();
  4961.       return TRUE;
  4962.     case e_range :
  4963.     case e_sublist :
  4964.       choice = new PASN_Boolean();
  4965.       return TRUE;
  4966.   }
  4967.  
  4968.   choice = NULL;
  4969.   return FALSE;
  4970. }
  4971.  
  4972.  
  4973. PObject * H248_EventParameter_extraInfo::Clone() const
  4974. {
  4975. #ifndef PASN_LEANANDMEAN
  4976.   PAssert(IsClass(H248_EventParameter_extraInfo::Class()), PInvalidCast);
  4977. #endif
  4978.   return new H248_EventParameter_extraInfo(*this);
  4979. }
  4980.  
  4981.  
  4982. //
  4983. // ArrayOf_WildcardField
  4984. //
  4985.  
  4986. H248_ArrayOf_WildcardField::H248_ArrayOf_WildcardField(unsigned tag, PASN_Object::TagClass tagClass)
  4987.   : PASN_Array(tag, tagClass)
  4988. {
  4989. }
  4990.  
  4991.  
  4992. PASN_Object * H248_ArrayOf_WildcardField::CreateObject() const
  4993. {
  4994.   return new H248_WildcardField;
  4995. }
  4996.  
  4997.  
  4998. H248_WildcardField & H248_ArrayOf_WildcardField::operator[](PINDEX i) const
  4999. {
  5000.   return (H248_WildcardField &)array[i];
  5001. }
  5002.  
  5003.  
  5004. PObject * H248_ArrayOf_WildcardField::Clone() const
  5005. {
  5006. #ifndef PASN_LEANANDMEAN
  5007.   PAssert(IsClass(H248_ArrayOf_WildcardField::Class()), PInvalidCast);
  5008. #endif
  5009.   return new H248_ArrayOf_WildcardField(*this);
  5010. }
  5011.  
  5012.  
  5013. //
  5014. // MediaDescriptor_streams
  5015. //
  5016.  
  5017. H248_MediaDescriptor_streams::H248_MediaDescriptor_streams(unsigned tag, PASN_Object::TagClass tagClass)
  5018.   : PASN_Choice(tag, tagClass, 2, FALSE
  5019. #ifndef PASN_NOPRINTON
  5020.       , "oneStream "
  5021.         "multiStream "
  5022. #endif
  5023.     )
  5024. {
  5025. }
  5026.  
  5027.  
  5028. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  5029. H248_MediaDescriptor_streams::operator H248_StreamParms &() const
  5030. #else
  5031. H248_MediaDescriptor_streams::operator H248_StreamParms &()
  5032. {
  5033. #ifndef PASN_LEANANDMEAN
  5034.   PAssert(PAssertNULL(choice)->IsDescendant(H248_StreamParms::Class()), PInvalidCast);
  5035. #endif
  5036.   return *(H248_StreamParms *)choice;
  5037. }
  5038.  
  5039.  
  5040. H248_MediaDescriptor_streams::operator const H248_StreamParms &() const
  5041. #endif
  5042. {
  5043. #ifndef PASN_LEANANDMEAN
  5044.   PAssert(PAssertNULL(choice)->IsDescendant(H248_StreamParms::Class()), PInvalidCast);
  5045. #endif
  5046.   return *(H248_StreamParms *)choice;
  5047. }
  5048.  
  5049.  
  5050. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  5051. H248_MediaDescriptor_streams::operator H248_ArrayOf_StreamDescriptor &() const
  5052. #else
  5053. H248_MediaDescriptor_streams::operator H248_ArrayOf_StreamDescriptor &()
  5054. {
  5055. #ifndef PASN_LEANANDMEAN
  5056.   PAssert(PAssertNULL(choice)->IsDescendant(H248_ArrayOf_StreamDescriptor::Class()), PInvalidCast);
  5057. #endif
  5058.   return *(H248_ArrayOf_StreamDescriptor *)choice;
  5059. }
  5060.  
  5061.  
  5062. H248_MediaDescriptor_streams::operator const H248_ArrayOf_StreamDescriptor &() const
  5063. #endif
  5064. {
  5065. #ifndef PASN_LEANANDMEAN
  5066.   PAssert(PAssertNULL(choice)->IsDescendant(H248_ArrayOf_StreamDescriptor::Class()), PInvalidCast);
  5067. #endif
  5068.   return *(H248_ArrayOf_StreamDescriptor *)choice;
  5069. }
  5070.  
  5071.  
  5072. BOOL H248_MediaDescriptor_streams::CreateObject()
  5073. {
  5074.   switch (tag) {
  5075.     case e_oneStream :
  5076.       choice = new H248_StreamParms();
  5077.       return TRUE;
  5078.     case e_multiStream :
  5079.       choice = new H248_ArrayOf_StreamDescriptor();
  5080.       return TRUE;
  5081.   }
  5082.  
  5083.   choice = NULL;
  5084.   return FALSE;
  5085. }
  5086.  
  5087.  
  5088. PObject * H248_MediaDescriptor_streams::Clone() const
  5089. {
  5090. #ifndef PASN_LEANANDMEAN
  5091.   PAssert(IsClass(H248_MediaDescriptor_streams::Class()), PInvalidCast);
  5092. #endif
  5093.   return new H248_MediaDescriptor_streams(*this);
  5094. }
  5095.  
  5096.  
  5097. //
  5098. // ArrayOf_PropertyParm
  5099. //
  5100.  
  5101. H248_ArrayOf_PropertyParm::H248_ArrayOf_PropertyParm(unsigned tag, PASN_Object::TagClass tagClass)
  5102.   : PASN_Array(tag, tagClass)
  5103. {
  5104. }
  5105.  
  5106.  
  5107. PASN_Object * H248_ArrayOf_PropertyParm::CreateObject() const
  5108. {
  5109.   return new H248_PropertyParm;
  5110. }
  5111.  
  5112.  
  5113. H248_PropertyParm & H248_ArrayOf_PropertyParm::operator[](PINDEX i) const
  5114. {
  5115.   return (H248_PropertyParm &)array[i];
  5116. }
  5117.  
  5118.  
  5119. PObject * H248_ArrayOf_PropertyParm::Clone() const
  5120. {
  5121. #ifndef PASN_LEANANDMEAN
  5122.   PAssert(IsClass(H248_ArrayOf_PropertyParm::Class()), PInvalidCast);
  5123. #endif
  5124.   return new H248_ArrayOf_PropertyParm(*this);
  5125. }
  5126.  
  5127.  
  5128. //
  5129. // ArrayOf_PASN_OctetString
  5130. //
  5131.  
  5132. H248_ArrayOf_PASN_OctetString::H248_ArrayOf_PASN_OctetString(unsigned tag, PASN_Object::TagClass tagClass)
  5133.   : PASN_Array(tag, tagClass)
  5134. {
  5135. }
  5136.  
  5137.  
  5138. PASN_Object * H248_ArrayOf_PASN_OctetString::CreateObject() const
  5139. {
  5140.   return new PASN_OctetString;
  5141. }
  5142.  
  5143.  
  5144. PASN_OctetString & H248_ArrayOf_PASN_OctetString::operator[](PINDEX i) const
  5145. {
  5146.   return (PASN_OctetString &)array[i];
  5147. }
  5148.  
  5149.  
  5150. PObject * H248_ArrayOf_PASN_OctetString::Clone() const
  5151. {
  5152. #ifndef PASN_LEANANDMEAN
  5153.   PAssert(IsClass(H248_ArrayOf_PASN_OctetString::Class()), PInvalidCast);
  5154. #endif
  5155.   return new H248_ArrayOf_PASN_OctetString(*this);
  5156. }
  5157.  
  5158.  
  5159. //
  5160. // PropertyParm_extraInfo
  5161. //
  5162.  
  5163. H248_PropertyParm_extraInfo::H248_PropertyParm_extraInfo(unsigned tag, PASN_Object::TagClass tagClass)
  5164.   : PASN_Choice(tag, tagClass, 3, FALSE
  5165. #ifndef PASN_NOPRINTON
  5166.       , "relation "
  5167.         "range "
  5168.         "sublist "
  5169. #endif
  5170.     )
  5171. {
  5172. }
  5173.  
  5174.  
  5175. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  5176. H248_PropertyParm_extraInfo::operator H248_Relation &() const
  5177. #else
  5178. H248_PropertyParm_extraInfo::operator H248_Relation &()
  5179. {
  5180. #ifndef PASN_LEANANDMEAN
  5181.   PAssert(PAssertNULL(choice)->IsDescendant(H248_Relation::Class()), PInvalidCast);
  5182. #endif
  5183.   return *(H248_Relation *)choice;
  5184. }
  5185.  
  5186.  
  5187. H248_PropertyParm_extraInfo::operator const H248_Relation &() const
  5188. #endif
  5189. {
  5190. #ifndef PASN_LEANANDMEAN
  5191.   PAssert(PAssertNULL(choice)->IsDescendant(H248_Relation::Class()), PInvalidCast);
  5192. #endif
  5193.   return *(H248_Relation *)choice;
  5194. }
  5195.  
  5196.  
  5197. BOOL H248_PropertyParm_extraInfo::CreateObject()
  5198. {
  5199.   switch (tag) {
  5200.     case e_relation :
  5201.       choice = new H248_Relation();
  5202.       return TRUE;
  5203.     case e_range :
  5204.     case e_sublist :
  5205.       choice = new PASN_Boolean();
  5206.       return TRUE;
  5207.   }
  5208.  
  5209.   choice = NULL;
  5210.   return FALSE;
  5211. }
  5212.  
  5213.  
  5214. PObject * H248_PropertyParm_extraInfo::Clone() const
  5215. {
  5216. #ifndef PASN_LEANANDMEAN
  5217.   PAssert(IsClass(H248_PropertyParm_extraInfo::Class()), PInvalidCast);
  5218. #endif
  5219.   return new H248_PropertyParm_extraInfo(*this);
  5220. }
  5221.  
  5222.  
  5223. //
  5224. // ArrayOf_PropertyGroup
  5225. //
  5226.  
  5227. H248_ArrayOf_PropertyGroup::H248_ArrayOf_PropertyGroup(unsigned tag, PASN_Object::TagClass tagClass)
  5228.   : PASN_Array(tag, tagClass)
  5229. {
  5230. }
  5231.  
  5232.  
  5233. PASN_Object * H248_ArrayOf_PropertyGroup::CreateObject() const
  5234. {
  5235.   return new H248_PropertyGroup;
  5236. }
  5237.  
  5238.  
  5239. H248_PropertyGroup & H248_ArrayOf_PropertyGroup::operator[](PINDEX i) const
  5240. {
  5241.   return (H248_PropertyGroup &)array[i];
  5242. }
  5243.  
  5244.  
  5245. PObject * H248_ArrayOf_PropertyGroup::Clone() const
  5246. {
  5247. #ifndef PASN_LEANANDMEAN
  5248.   PAssert(IsClass(H248_ArrayOf_PropertyGroup::Class()), PInvalidCast);
  5249. #endif
  5250.   return new H248_ArrayOf_PropertyGroup(*this);
  5251. }
  5252.  
  5253.  
  5254. //
  5255. // ArrayOf_TerminationID
  5256. //
  5257.  
  5258. H248_ArrayOf_TerminationID::H248_ArrayOf_TerminationID(unsigned tag, PASN_Object::TagClass tagClass)
  5259.   : PASN_Array(tag, tagClass)
  5260. {
  5261. }
  5262.  
  5263.  
  5264. PASN_Object * H248_ArrayOf_TerminationID::CreateObject() const
  5265. {
  5266.   return new H248_TerminationID;
  5267. }
  5268.  
  5269.  
  5270. H248_TerminationID & H248_ArrayOf_TerminationID::operator[](PINDEX i) const
  5271. {
  5272.   return (H248_TerminationID &)array[i];
  5273. }
  5274.  
  5275.  
  5276. PObject * H248_ArrayOf_TerminationID::Clone() const
  5277. {
  5278. #ifndef PASN_LEANANDMEAN
  5279.   PAssert(IsClass(H248_ArrayOf_TerminationID::Class()), PInvalidCast);
  5280. #endif
  5281.   return new H248_ArrayOf_TerminationID(*this);
  5282. }
  5283.  
  5284.  
  5285. //
  5286. // ArrayOf_RequestedEvent
  5287. //
  5288.  
  5289. H248_ArrayOf_RequestedEvent::H248_ArrayOf_RequestedEvent(unsigned tag, PASN_Object::TagClass tagClass)
  5290.   : PASN_Array(tag, tagClass)
  5291. {
  5292. }
  5293.  
  5294.  
  5295. PASN_Object * H248_ArrayOf_RequestedEvent::CreateObject() const
  5296. {
  5297.   return new H248_RequestedEvent;
  5298. }
  5299.  
  5300.  
  5301. H248_RequestedEvent & H248_ArrayOf_RequestedEvent::operator[](PINDEX i) const
  5302. {
  5303.   return (H248_RequestedEvent &)array[i];
  5304. }
  5305.  
  5306.  
  5307. PObject * H248_ArrayOf_RequestedEvent::Clone() const
  5308. {
  5309. #ifndef PASN_LEANANDMEAN
  5310.   PAssert(IsClass(H248_ArrayOf_RequestedEvent::Class()), PInvalidCast);
  5311. #endif
  5312.   return new H248_ArrayOf_RequestedEvent(*this);
  5313. }
  5314.  
  5315.  
  5316. //
  5317. // ArrayOf_SecondRequestedEvent
  5318. //
  5319.  
  5320. H248_ArrayOf_SecondRequestedEvent::H248_ArrayOf_SecondRequestedEvent(unsigned tag, PASN_Object::TagClass tagClass)
  5321.   : PASN_Array(tag, tagClass)
  5322. {
  5323. }
  5324.  
  5325.  
  5326. PASN_Object * H248_ArrayOf_SecondRequestedEvent::CreateObject() const
  5327. {
  5328.   return new H248_SecondRequestedEvent;
  5329. }
  5330.  
  5331.  
  5332. H248_SecondRequestedEvent & H248_ArrayOf_SecondRequestedEvent::operator[](PINDEX i) const
  5333. {
  5334.   return (H248_SecondRequestedEvent &)array[i];
  5335. }
  5336.  
  5337.  
  5338. PObject * H248_ArrayOf_SecondRequestedEvent::Clone() const
  5339. {
  5340. #ifndef PASN_LEANANDMEAN
  5341.   PAssert(IsClass(H248_ArrayOf_SecondRequestedEvent::Class()), PInvalidCast);
  5342. #endif
  5343.   return new H248_ArrayOf_SecondRequestedEvent(*this);
  5344. }
  5345.  
  5346.  
  5347. //
  5348. // ArrayOf_Signal
  5349. //
  5350.  
  5351. H248_ArrayOf_Signal::H248_ArrayOf_Signal(unsigned tag, PASN_Object::TagClass tagClass)
  5352.   : PASN_Array(tag, tagClass)
  5353. {
  5354. }
  5355.  
  5356.  
  5357. PASN_Object * H248_ArrayOf_Signal::CreateObject() const
  5358. {
  5359.   return new H248_Signal;
  5360. }
  5361.  
  5362.  
  5363. H248_Signal & H248_ArrayOf_Signal::operator[](PINDEX i) const
  5364. {
  5365.   return (H248_Signal &)array[i];
  5366. }
  5367.  
  5368.  
  5369. PObject * H248_ArrayOf_Signal::Clone() const
  5370. {
  5371. #ifndef PASN_LEANANDMEAN
  5372.   PAssert(IsClass(H248_ArrayOf_Signal::Class()), PInvalidCast);
  5373. #endif
  5374.   return new H248_ArrayOf_Signal(*this);
  5375. }
  5376.  
  5377.  
  5378. //
  5379. // ArrayOf_SigParameter
  5380. //
  5381.  
  5382. H248_ArrayOf_SigParameter::H248_ArrayOf_SigParameter(unsigned tag, PASN_Object::TagClass tagClass)
  5383.   : PASN_Array(tag, tagClass)
  5384. {
  5385. }
  5386.  
  5387.  
  5388. PASN_Object * H248_ArrayOf_SigParameter::CreateObject() const
  5389. {
  5390.   return new H248_SigParameter;
  5391. }
  5392.  
  5393.  
  5394. H248_SigParameter & H248_ArrayOf_SigParameter::operator[](PINDEX i) const
  5395. {
  5396.   return (H248_SigParameter &)array[i];
  5397. }
  5398.  
  5399.  
  5400. PObject * H248_ArrayOf_SigParameter::Clone() const
  5401. {
  5402. #ifndef PASN_LEANANDMEAN
  5403.   PAssert(IsClass(H248_ArrayOf_SigParameter::Class()), PInvalidCast);
  5404. #endif
  5405.   return new H248_ArrayOf_SigParameter(*this);
  5406. }
  5407.  
  5408.  
  5409. //
  5410. // SigParameter_extraInfo
  5411. //
  5412.  
  5413. H248_SigParameter_extraInfo::H248_SigParameter_extraInfo(unsigned tag, PASN_Object::TagClass tagClass)
  5414.   : PASN_Choice(tag, tagClass, 3, FALSE
  5415. #ifndef PASN_NOPRINTON
  5416.       , "relation "
  5417.         "range "
  5418.         "sublist "
  5419. #endif
  5420.     )
  5421. {
  5422. }
  5423.  
  5424.  
  5425. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  5426. H248_SigParameter_extraInfo::operator H248_Relation &() const
  5427. #else
  5428. H248_SigParameter_extraInfo::operator H248_Relation &()
  5429. {
  5430. #ifndef PASN_LEANANDMEAN
  5431.   PAssert(PAssertNULL(choice)->IsDescendant(H248_Relation::Class()), PInvalidCast);
  5432. #endif
  5433.   return *(H248_Relation *)choice;
  5434. }
  5435.  
  5436.  
  5437. H248_SigParameter_extraInfo::operator const H248_Relation &() const
  5438. #endif
  5439. {
  5440. #ifndef PASN_LEANANDMEAN
  5441.   PAssert(PAssertNULL(choice)->IsDescendant(H248_Relation::Class()), PInvalidCast);
  5442. #endif
  5443.   return *(H248_Relation *)choice;
  5444. }
  5445.  
  5446.  
  5447. BOOL H248_SigParameter_extraInfo::CreateObject()
  5448. {
  5449.   switch (tag) {
  5450.     case e_relation :
  5451.       choice = new H248_Relation();
  5452.       return TRUE;
  5453.     case e_range :
  5454.     case e_sublist :
  5455.       choice = new PASN_Boolean();
  5456.       return TRUE;
  5457.   }
  5458.  
  5459.   choice = NULL;
  5460.   return FALSE;
  5461. }
  5462.  
  5463.  
  5464. PObject * H248_SigParameter_extraInfo::Clone() const
  5465. {
  5466. #ifndef PASN_LEANANDMEAN
  5467.   PAssert(IsClass(H248_SigParameter_extraInfo::Class()), PInvalidCast);
  5468. #endif
  5469.   return new H248_SigParameter_extraInfo(*this);
  5470. }
  5471.  
  5472.  
  5473. //
  5474. // ArrayOf_ModemType
  5475. //
  5476.  
  5477. H248_ArrayOf_ModemType::H248_ArrayOf_ModemType(unsigned tag, PASN_Object::TagClass tagClass)
  5478.   : PASN_Array(tag, tagClass)
  5479. {
  5480. }
  5481.  
  5482.  
  5483. PASN_Object * H248_ArrayOf_ModemType::CreateObject() const
  5484. {
  5485.   return new H248_ModemType;
  5486. }
  5487.  
  5488.  
  5489. H248_ModemType & H248_ArrayOf_ModemType::operator[](PINDEX i) const
  5490. {
  5491.   return (H248_ModemType &)array[i];
  5492. }
  5493.  
  5494.  
  5495. PObject * H248_ArrayOf_ModemType::Clone() const
  5496. {
  5497. #ifndef PASN_LEANANDMEAN
  5498.   PAssert(IsClass(H248_ArrayOf_ModemType::Class()), PInvalidCast);
  5499. #endif
  5500.   return new H248_ArrayOf_ModemType(*this);
  5501. }
  5502.  
  5503.  
  5504. //
  5505. // ArrayOf_Transaction
  5506. //
  5507.  
  5508. H248_ArrayOf_Transaction::H248_ArrayOf_Transaction(unsigned tag, PASN_Object::TagClass tagClass)
  5509.   : PASN_Array(tag, tagClass)
  5510. {
  5511. }
  5512.  
  5513.  
  5514. PASN_Object * H248_ArrayOf_Transaction::CreateObject() const
  5515. {
  5516.   return new H248_Transaction;
  5517. }
  5518.  
  5519.  
  5520. H248_Transaction & H248_ArrayOf_Transaction::operator[](PINDEX i) const
  5521. {
  5522.   return (H248_Transaction &)array[i];
  5523. }
  5524.  
  5525.  
  5526. PObject * H248_ArrayOf_Transaction::Clone() const
  5527. {
  5528. #ifndef PASN_LEANANDMEAN
  5529.   PAssert(IsClass(H248_ArrayOf_Transaction::Class()), PInvalidCast);
  5530. #endif
  5531.   return new H248_ArrayOf_Transaction(*this);
  5532. }
  5533.  
  5534.  
  5535. //
  5536. // ArrayOf_ActionReply
  5537. //
  5538.  
  5539. H248_ArrayOf_ActionReply::H248_ArrayOf_ActionReply(unsigned tag, PASN_Object::TagClass tagClass)
  5540.   : PASN_Array(tag, tagClass)
  5541. {
  5542. }
  5543.  
  5544.  
  5545. PASN_Object * H248_ArrayOf_ActionReply::CreateObject() const
  5546. {
  5547.   return new H248_ActionReply;
  5548. }
  5549.  
  5550.  
  5551. H248_ActionReply & H248_ArrayOf_ActionReply::operator[](PINDEX i) const
  5552. {
  5553.   return (H248_ActionReply &)array[i];
  5554. }
  5555.  
  5556.  
  5557. PObject * H248_ArrayOf_ActionReply::Clone() const
  5558. {
  5559. #ifndef PASN_LEANANDMEAN
  5560.   PAssert(IsClass(H248_ArrayOf_ActionReply::Class()), PInvalidCast);
  5561. #endif
  5562.   return new H248_ArrayOf_ActionReply(*this);
  5563. }
  5564.  
  5565.  
  5566. //
  5567. // ArrayOf_IndAudStreamDescriptor
  5568. //
  5569.  
  5570. H248_ArrayOf_IndAudStreamDescriptor::H248_ArrayOf_IndAudStreamDescriptor(unsigned tag, PASN_Object::TagClass tagClass)
  5571.   : PASN_Array(tag, tagClass)
  5572. {
  5573. }
  5574.  
  5575.  
  5576. PASN_Object * H248_ArrayOf_IndAudStreamDescriptor::CreateObject() const
  5577. {
  5578.   return new H248_IndAudStreamDescriptor;
  5579. }
  5580.  
  5581.  
  5582. H248_IndAudStreamDescriptor & H248_ArrayOf_IndAudStreamDescriptor::operator[](PINDEX i) const
  5583. {
  5584.   return (H248_IndAudStreamDescriptor &)array[i];
  5585. }
  5586.  
  5587.  
  5588. PObject * H248_ArrayOf_IndAudStreamDescriptor::Clone() const
  5589. {
  5590. #ifndef PASN_LEANANDMEAN
  5591.   PAssert(IsClass(H248_ArrayOf_IndAudStreamDescriptor::Class()), PInvalidCast);
  5592. #endif
  5593.   return new H248_ArrayOf_IndAudStreamDescriptor(*this);
  5594. }
  5595.  
  5596.  
  5597. //
  5598. // ArrayOf_StreamDescriptor
  5599. //
  5600.  
  5601. H248_ArrayOf_StreamDescriptor::H248_ArrayOf_StreamDescriptor(unsigned tag, PASN_Object::TagClass tagClass)
  5602.   : PASN_Array(tag, tagClass)
  5603. {
  5604. }
  5605.  
  5606.  
  5607. PASN_Object * H248_ArrayOf_StreamDescriptor::CreateObject() const
  5608. {
  5609.   return new H248_StreamDescriptor;
  5610. }
  5611.  
  5612.  
  5613. H248_StreamDescriptor & H248_ArrayOf_StreamDescriptor::operator[](PINDEX i) const
  5614. {
  5615.   return (H248_StreamDescriptor &)array[i];
  5616. }
  5617.  
  5618.  
  5619. PObject * H248_ArrayOf_StreamDescriptor::Clone() const
  5620. {
  5621. #ifndef PASN_LEANANDMEAN
  5622.   PAssert(IsClass(H248_ArrayOf_StreamDescriptor::Class()), PInvalidCast);
  5623. #endif
  5624.   return new H248_ArrayOf_StreamDescriptor(*this);
  5625. }
  5626.  
  5627.  
  5628. //
  5629. // AuthenticationHeader
  5630. //
  5631.  
  5632. H248_AuthenticationHeader::H248_AuthenticationHeader(unsigned tag, PASN_Object::TagClass tagClass)
  5633.   : PASN_Sequence(tag, tagClass, 0, FALSE, 0)
  5634. {
  5635. }
  5636.  
  5637.  
  5638. #ifndef PASN_NOPRINTON
  5639. void H248_AuthenticationHeader::PrintOn(ostream & strm) const
  5640. {
  5641.   int indent = strm.precision() + 2;
  5642.   strm << "{\n";
  5643.   strm << setw(indent+15) << "secParmIndex = " << setprecision(indent) << m_secParmIndex << '\n';
  5644.   strm << setw(indent+9) << "seqNum = " << setprecision(indent) << m_seqNum << '\n';
  5645.   strm << setw(indent+5) << "ad = " << setprecision(indent) << m_ad << '\n';
  5646.   strm << setw(indent-1) << "}";
  5647. }
  5648. #endif
  5649.  
  5650.  
  5651. PObject::Comparison H248_AuthenticationHeader::Compare(const PObject & obj) const
  5652. {
  5653. #ifndef PASN_LEANANDMEAN
  5654.   PAssert(IsDescendant(H248_AuthenticationHeader::Class()), PInvalidCast);
  5655. #endif
  5656.   const H248_AuthenticationHeader & other = (const H248_AuthenticationHeader &)obj;
  5657.  
  5658.   Comparison result;
  5659.  
  5660.   if ((result = m_secParmIndex.Compare(other.m_secParmIndex)) != EqualTo)
  5661.     return result;
  5662.   if ((result = m_seqNum.Compare(other.m_seqNum)) != EqualTo)
  5663.     return result;
  5664.   if ((result = m_ad.Compare(other.m_ad)) != EqualTo)
  5665.     return result;
  5666.  
  5667.   return PASN_Sequence::Compare(other);
  5668. }
  5669.  
  5670.  
  5671. PINDEX H248_AuthenticationHeader::GetDataLength() const
  5672. {
  5673.   PINDEX length = 0;
  5674.   length += m_secParmIndex.GetObjectLength();
  5675.   length += m_seqNum.GetObjectLength();
  5676.   length += m_ad.GetObjectLength();
  5677.   return length;
  5678. }
  5679.  
  5680.  
  5681. BOOL H248_AuthenticationHeader::Decode(PASN_Stream & strm)
  5682. {
  5683.   if (!PreambleDecode(strm))
  5684.     return FALSE;
  5685.  
  5686.   if (!m_secParmIndex.Decode(strm))
  5687.     return FALSE;
  5688.   if (!m_seqNum.Decode(strm))
  5689.     return FALSE;
  5690.   if (!m_ad.Decode(strm))
  5691.     return FALSE;
  5692.  
  5693.   return UnknownExtensionsDecode(strm);
  5694. }
  5695.  
  5696.  
  5697. void H248_AuthenticationHeader::Encode(PASN_Stream & strm) const
  5698. {
  5699.   PreambleEncode(strm);
  5700.  
  5701.   m_secParmIndex.Encode(strm);
  5702.   m_seqNum.Encode(strm);
  5703.   m_ad.Encode(strm);
  5704.  
  5705.   UnknownExtensionsEncode(strm);
  5706. }
  5707.  
  5708.  
  5709. PObject * H248_AuthenticationHeader::Clone() const
  5710. {
  5711. #ifndef PASN_LEANANDMEAN
  5712.   PAssert(IsClass(H248_AuthenticationHeader::Class()), PInvalidCast);
  5713. #endif
  5714.   return new H248_AuthenticationHeader(*this);
  5715. }
  5716.  
  5717.  
  5718. //
  5719. // Message
  5720. //
  5721.  
  5722. H248_Message::H248_Message(unsigned tag, PASN_Object::TagClass tagClass)
  5723.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  5724. {
  5725.   m_version.SetConstraints(PASN_Object::FixedConstraint, 0, 99);
  5726. }
  5727.  
  5728.  
  5729. #ifndef PASN_NOPRINTON
  5730. void H248_Message::PrintOn(ostream & strm) const
  5731. {
  5732.   int indent = strm.precision() + 2;
  5733.   strm << "{\n";
  5734.   strm << setw(indent+10) << "version = " << setprecision(indent) << m_version << '\n';
  5735.   strm << setw(indent+6) << "mId = " << setprecision(indent) << m_mId << '\n';
  5736.   strm << setw(indent+14) << "messageBody = " << setprecision(indent) << m_messageBody << '\n';
  5737.   strm << setw(indent-1) << "}";
  5738. }
  5739. #endif
  5740.  
  5741.  
  5742. PObject::Comparison H248_Message::Compare(const PObject & obj) const
  5743. {
  5744. #ifndef PASN_LEANANDMEAN
  5745.   PAssert(IsDescendant(H248_Message::Class()), PInvalidCast);
  5746. #endif
  5747.   const H248_Message & other = (const H248_Message &)obj;
  5748.  
  5749.   Comparison result;
  5750.  
  5751.   if ((result = m_version.Compare(other.m_version)) != EqualTo)
  5752.     return result;
  5753.   if ((result = m_mId.Compare(other.m_mId)) != EqualTo)
  5754.     return result;
  5755.   if ((result = m_messageBody.Compare(other.m_messageBody)) != EqualTo)
  5756.     return result;
  5757.  
  5758.   return PASN_Sequence::Compare(other);
  5759. }
  5760.  
  5761.  
  5762. PINDEX H248_Message::GetDataLength() const
  5763. {
  5764.   PINDEX length = 0;
  5765.   length += m_version.GetObjectLength();
  5766.   length += m_mId.GetObjectLength();
  5767.   length += m_messageBody.GetObjectLength();
  5768.   return length;
  5769. }
  5770.  
  5771.  
  5772. BOOL H248_Message::Decode(PASN_Stream & strm)
  5773. {
  5774.   if (!PreambleDecode(strm))
  5775.     return FALSE;
  5776.  
  5777.   if (!m_version.Decode(strm))
  5778.     return FALSE;
  5779.   if (!m_mId.Decode(strm))
  5780.     return FALSE;
  5781.   if (!m_messageBody.Decode(strm))
  5782.     return FALSE;
  5783.  
  5784.   return UnknownExtensionsDecode(strm);
  5785. }
  5786.  
  5787.  
  5788. void H248_Message::Encode(PASN_Stream & strm) const
  5789. {
  5790.   PreambleEncode(strm);
  5791.  
  5792.   m_version.Encode(strm);
  5793.   m_mId.Encode(strm);
  5794.   m_messageBody.Encode(strm);
  5795.  
  5796.   UnknownExtensionsEncode(strm);
  5797. }
  5798.  
  5799.  
  5800. PObject * H248_Message::Clone() const
  5801. {
  5802. #ifndef PASN_LEANANDMEAN
  5803.   PAssert(IsClass(H248_Message::Class()), PInvalidCast);
  5804. #endif
  5805.   return new H248_Message(*this);
  5806. }
  5807.  
  5808.  
  5809. //
  5810. // TransactionRequest
  5811. //
  5812.  
  5813. H248_TransactionRequest::H248_TransactionRequest(unsigned tag, PASN_Object::TagClass tagClass)
  5814.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  5815. {
  5816. }
  5817.  
  5818.  
  5819. #ifndef PASN_NOPRINTON
  5820. void H248_TransactionRequest::PrintOn(ostream & strm) const
  5821. {
  5822.   int indent = strm.precision() + 2;
  5823.   strm << "{\n";
  5824.   strm << setw(indent+16) << "transactionId = " << setprecision(indent) << m_transactionId << '\n';
  5825.   strm << setw(indent+10) << "actions = " << setprecision(indent) << m_actions << '\n';
  5826.   strm << setw(indent-1) << "}";
  5827. }
  5828. #endif
  5829.  
  5830.  
  5831. PObject::Comparison H248_TransactionRequest::Compare(const PObject & obj) const
  5832. {
  5833. #ifndef PASN_LEANANDMEAN
  5834.   PAssert(IsDescendant(H248_TransactionRequest::Class()), PInvalidCast);
  5835. #endif
  5836.   const H248_TransactionRequest & other = (const H248_TransactionRequest &)obj;
  5837.  
  5838.   Comparison result;
  5839.  
  5840.   if ((result = m_transactionId.Compare(other.m_transactionId)) != EqualTo)
  5841.     return result;
  5842.   if ((result = m_actions.Compare(other.m_actions)) != EqualTo)
  5843.     return result;
  5844.  
  5845.   return PASN_Sequence::Compare(other);
  5846. }
  5847.  
  5848.  
  5849. PINDEX H248_TransactionRequest::GetDataLength() const
  5850. {
  5851.   PINDEX length = 0;
  5852.   length += m_transactionId.GetObjectLength();
  5853.   length += m_actions.GetObjectLength();
  5854.   return length;
  5855. }
  5856.  
  5857.  
  5858. BOOL H248_TransactionRequest::Decode(PASN_Stream & strm)
  5859. {
  5860.   if (!PreambleDecode(strm))
  5861.     return FALSE;
  5862.  
  5863.   if (!m_transactionId.Decode(strm))
  5864.     return FALSE;
  5865.   if (!m_actions.Decode(strm))
  5866.     return FALSE;
  5867.  
  5868.   return UnknownExtensionsDecode(strm);
  5869. }
  5870.  
  5871.  
  5872. void H248_TransactionRequest::Encode(PASN_Stream & strm) const
  5873. {
  5874.   PreambleEncode(strm);
  5875.  
  5876.   m_transactionId.Encode(strm);
  5877.   m_actions.Encode(strm);
  5878.  
  5879.   UnknownExtensionsEncode(strm);
  5880. }
  5881.  
  5882.  
  5883. PObject * H248_TransactionRequest::Clone() const
  5884. {
  5885. #ifndef PASN_LEANANDMEAN
  5886.   PAssert(IsClass(H248_TransactionRequest::Class()), PInvalidCast);
  5887. #endif
  5888.   return new H248_TransactionRequest(*this);
  5889. }
  5890.  
  5891.  
  5892. //
  5893. // TransactionReply
  5894. //
  5895.  
  5896. H248_TransactionReply::H248_TransactionReply(unsigned tag, PASN_Object::TagClass tagClass)
  5897.   : PASN_Sequence(tag, tagClass, 1, TRUE, 0)
  5898. {
  5899. }
  5900.  
  5901.  
  5902. #ifndef PASN_NOPRINTON
  5903. void H248_TransactionReply::PrintOn(ostream & strm) const
  5904. {
  5905.   int indent = strm.precision() + 2;
  5906.   strm << "{\n";
  5907.   strm << setw(indent+16) << "transactionId = " << setprecision(indent) << m_transactionId << '\n';
  5908.   if (HasOptionalField(e_immAckRequired))
  5909.     strm << setw(indent+17) << "immAckRequired = " << setprecision(indent) << m_immAckRequired << '\n';
  5910.   strm << setw(indent+20) << "transactionResult = " << setprecision(indent) << m_transactionResult << '\n';
  5911.   strm << setw(indent-1) << "}";
  5912. }
  5913. #endif
  5914.  
  5915.  
  5916. PObject::Comparison H248_TransactionReply::Compare(const PObject & obj) const
  5917. {
  5918. #ifndef PASN_LEANANDMEAN
  5919.   PAssert(IsDescendant(H248_TransactionReply::Class()), PInvalidCast);
  5920. #endif
  5921.   const H248_TransactionReply & other = (const H248_TransactionReply &)obj;
  5922.  
  5923.   Comparison result;
  5924.  
  5925.   if ((result = m_transactionId.Compare(other.m_transactionId)) != EqualTo)
  5926.     return result;
  5927.   if ((result = m_immAckRequired.Compare(other.m_immAckRequired)) != EqualTo)
  5928.     return result;
  5929.   if ((result = m_transactionResult.Compare(other.m_transactionResult)) != EqualTo)
  5930.     return result;
  5931.  
  5932.   return PASN_Sequence::Compare(other);
  5933. }
  5934.  
  5935.  
  5936. PINDEX H248_TransactionReply::GetDataLength() const
  5937. {
  5938.   PINDEX length = 0;
  5939.   length += m_transactionId.GetObjectLength();
  5940.   if (HasOptionalField(e_immAckRequired))
  5941.     length += m_immAckRequired.GetObjectLength();
  5942.   length += m_transactionResult.GetObjectLength();
  5943.   return length;
  5944. }
  5945.  
  5946.  
  5947. BOOL H248_TransactionReply::Decode(PASN_Stream & strm)
  5948. {
  5949.   if (!PreambleDecode(strm))
  5950.     return FALSE;
  5951.  
  5952.   if (!m_transactionId.Decode(strm))
  5953.     return FALSE;
  5954.   if (HasOptionalField(e_immAckRequired) && !m_immAckRequired.Decode(strm))
  5955.     return FALSE;
  5956.   if (!m_transactionResult.Decode(strm))
  5957.     return FALSE;
  5958.  
  5959.   return UnknownExtensionsDecode(strm);
  5960. }
  5961.  
  5962.  
  5963. void H248_TransactionReply::Encode(PASN_Stream & strm) const
  5964. {
  5965.   PreambleEncode(strm);
  5966.  
  5967.   m_transactionId.Encode(strm);
  5968.   if (HasOptionalField(e_immAckRequired))
  5969.     m_immAckRequired.Encode(strm);
  5970.   m_transactionResult.Encode(strm);
  5971.  
  5972.   UnknownExtensionsEncode(strm);
  5973. }
  5974.  
  5975.  
  5976. PObject * H248_TransactionReply::Clone() const
  5977. {
  5978. #ifndef PASN_LEANANDMEAN
  5979.   PAssert(IsClass(H248_TransactionReply::Class()), PInvalidCast);
  5980. #endif
  5981.   return new H248_TransactionReply(*this);
  5982. }
  5983.  
  5984.  
  5985. //
  5986. // ErrorDescriptor
  5987. //
  5988.  
  5989. H248_ErrorDescriptor::H248_ErrorDescriptor(unsigned tag, PASN_Object::TagClass tagClass)
  5990.   : PASN_Sequence(tag, tagClass, 1, FALSE, 0)
  5991. {
  5992. }
  5993.  
  5994.  
  5995. #ifndef PASN_NOPRINTON
  5996. void H248_ErrorDescriptor::PrintOn(ostream & strm) const
  5997. {
  5998.   int indent = strm.precision() + 2;
  5999.   strm << "{\n";
  6000.   strm << setw(indent+12) << "errorCode = " << setprecision(indent) << m_errorCode << '\n';
  6001.   if (HasOptionalField(e_errorText))
  6002.     strm << setw(indent+12) << "errorText = " << setprecision(indent) << m_errorText << '\n';
  6003.   strm << setw(indent-1) << "}";
  6004. }
  6005. #endif
  6006.  
  6007.  
  6008. PObject::Comparison H248_ErrorDescriptor::Compare(const PObject & obj) const
  6009. {
  6010. #ifndef PASN_LEANANDMEAN
  6011.   PAssert(IsDescendant(H248_ErrorDescriptor::Class()), PInvalidCast);
  6012. #endif
  6013.   const H248_ErrorDescriptor & other = (const H248_ErrorDescriptor &)obj;
  6014.  
  6015.   Comparison result;
  6016.  
  6017.   if ((result = m_errorCode.Compare(other.m_errorCode)) != EqualTo)
  6018.     return result;
  6019.   if ((result = m_errorText.Compare(other.m_errorText)) != EqualTo)
  6020.     return result;
  6021.  
  6022.   return PASN_Sequence::Compare(other);
  6023. }
  6024.  
  6025.  
  6026. PINDEX H248_ErrorDescriptor::GetDataLength() const
  6027. {
  6028.   PINDEX length = 0;
  6029.   length += m_errorCode.GetObjectLength();
  6030.   if (HasOptionalField(e_errorText))
  6031.     length += m_errorText.GetObjectLength();
  6032.   return length;
  6033. }
  6034.  
  6035.  
  6036. BOOL H248_ErrorDescriptor::Decode(PASN_Stream & strm)
  6037. {
  6038.   if (!PreambleDecode(strm))
  6039.     return FALSE;
  6040.  
  6041.   if (!m_errorCode.Decode(strm))
  6042.     return FALSE;
  6043.   if (HasOptionalField(e_errorText) && !m_errorText.Decode(strm))
  6044.     return FALSE;
  6045.  
  6046.   return UnknownExtensionsDecode(strm);
  6047. }
  6048.  
  6049.  
  6050. void H248_ErrorDescriptor::Encode(PASN_Stream & strm) const
  6051. {
  6052.   PreambleEncode(strm);
  6053.  
  6054.   m_errorCode.Encode(strm);
  6055.   if (HasOptionalField(e_errorText))
  6056.     m_errorText.Encode(strm);
  6057.  
  6058.   UnknownExtensionsEncode(strm);
  6059. }
  6060.  
  6061.  
  6062. PObject * H248_ErrorDescriptor::Clone() const
  6063. {
  6064. #ifndef PASN_LEANANDMEAN
  6065.   PAssert(IsClass(H248_ErrorDescriptor::Class()), PInvalidCast);
  6066. #endif
  6067.   return new H248_ErrorDescriptor(*this);
  6068. }
  6069.  
  6070.  
  6071. //
  6072. // ContextRequest
  6073. //
  6074.  
  6075. H248_ContextRequest::H248_ContextRequest(unsigned tag, PASN_Object::TagClass tagClass)
  6076.   : PASN_Sequence(tag, tagClass, 3, TRUE, 0)
  6077. {
  6078.   m_priority.SetConstraints(PASN_Object::FixedConstraint, 0, 15);
  6079. }
  6080.  
  6081.  
  6082. #ifndef PASN_NOPRINTON
  6083. void H248_ContextRequest::PrintOn(ostream & strm) const
  6084. {
  6085.   int indent = strm.precision() + 2;
  6086.   strm << "{\n";
  6087.   if (HasOptionalField(e_priority))
  6088.     strm << setw(indent+11) << "priority = " << setprecision(indent) << m_priority << '\n';
  6089.   if (HasOptionalField(e_emergency))
  6090.     strm << setw(indent+12) << "emergency = " << setprecision(indent) << m_emergency << '\n';
  6091.   if (HasOptionalField(e_topologyReq))
  6092.     strm << setw(indent+14) << "topologyReq = " << setprecision(indent) << m_topologyReq << '\n';
  6093.   strm << setw(indent-1) << "}";
  6094. }
  6095. #endif
  6096.  
  6097.  
  6098. PObject::Comparison H248_ContextRequest::Compare(const PObject & obj) const
  6099. {
  6100. #ifndef PASN_LEANANDMEAN
  6101.   PAssert(IsDescendant(H248_ContextRequest::Class()), PInvalidCast);
  6102. #endif
  6103.   const H248_ContextRequest & other = (const H248_ContextRequest &)obj;
  6104.  
  6105.   Comparison result;
  6106.  
  6107.   if ((result = m_priority.Compare(other.m_priority)) != EqualTo)
  6108.     return result;
  6109.   if ((result = m_emergency.Compare(other.m_emergency)) != EqualTo)
  6110.     return result;
  6111.   if ((result = m_topologyReq.Compare(other.m_topologyReq)) != EqualTo)
  6112.     return result;
  6113.  
  6114.   return PASN_Sequence::Compare(other);
  6115. }
  6116.  
  6117.  
  6118. PINDEX H248_ContextRequest::GetDataLength() const
  6119. {
  6120.   PINDEX length = 0;
  6121.   if (HasOptionalField(e_priority))
  6122.     length += m_priority.GetObjectLength();
  6123.   if (HasOptionalField(e_emergency))
  6124.     length += m_emergency.GetObjectLength();
  6125.   if (HasOptionalField(e_topologyReq))
  6126.     length += m_topologyReq.GetObjectLength();
  6127.   return length;
  6128. }
  6129.  
  6130.  
  6131. BOOL H248_ContextRequest::Decode(PASN_Stream & strm)
  6132. {
  6133.   if (!PreambleDecode(strm))
  6134.     return FALSE;
  6135.  
  6136.   if (HasOptionalField(e_priority) && !m_priority.Decode(strm))
  6137.     return FALSE;
  6138.   if (HasOptionalField(e_emergency) && !m_emergency.Decode(strm))
  6139.     return FALSE;
  6140.   if (HasOptionalField(e_topologyReq) && !m_topologyReq.Decode(strm))
  6141.     return FALSE;
  6142.  
  6143.   return UnknownExtensionsDecode(strm);
  6144. }
  6145.  
  6146.  
  6147. void H248_ContextRequest::Encode(PASN_Stream & strm) const
  6148. {
  6149.   PreambleEncode(strm);
  6150.  
  6151.   if (HasOptionalField(e_priority))
  6152.     m_priority.Encode(strm);
  6153.   if (HasOptionalField(e_emergency))
  6154.     m_emergency.Encode(strm);
  6155.   if (HasOptionalField(e_topologyReq))
  6156.     m_topologyReq.Encode(strm);
  6157.  
  6158.   UnknownExtensionsEncode(strm);
  6159. }
  6160.  
  6161.  
  6162. PObject * H248_ContextRequest::Clone() const
  6163. {
  6164. #ifndef PASN_LEANANDMEAN
  6165.   PAssert(IsClass(H248_ContextRequest::Class()), PInvalidCast);
  6166. #endif
  6167.   return new H248_ContextRequest(*this);
  6168. }
  6169.  
  6170.  
  6171. //
  6172. // CommandRequest
  6173. //
  6174.  
  6175. H248_CommandRequest::H248_CommandRequest(unsigned tag, PASN_Object::TagClass tagClass)
  6176.   : PASN_Sequence(tag, tagClass, 2, TRUE, 0)
  6177. {
  6178. }
  6179.  
  6180.  
  6181. #ifndef PASN_NOPRINTON
  6182. void H248_CommandRequest::PrintOn(ostream & strm) const
  6183. {
  6184.   int indent = strm.precision() + 2;
  6185.   strm << "{\n";
  6186.   strm << setw(indent+10) << "command = " << setprecision(indent) << m_command << '\n';
  6187.   if (HasOptionalField(e_optional))
  6188.     strm << setw(indent+11) << "optional = " << setprecision(indent) << m_optional << '\n';
  6189.   if (HasOptionalField(e_wildcardReturn))
  6190.     strm << setw(indent+17) << "wildcardReturn = " << setprecision(indent) << m_wildcardReturn << '\n';
  6191.   strm << setw(indent-1) << "}";
  6192. }
  6193. #endif
  6194.  
  6195.  
  6196. PObject::Comparison H248_CommandRequest::Compare(const PObject & obj) const
  6197. {
  6198. #ifndef PASN_LEANANDMEAN
  6199.   PAssert(IsDescendant(H248_CommandRequest::Class()), PInvalidCast);
  6200. #endif
  6201.   const H248_CommandRequest & other = (const H248_CommandRequest &)obj;
  6202.  
  6203.   Comparison result;
  6204.  
  6205.   if ((result = m_command.Compare(other.m_command)) != EqualTo)
  6206.     return result;
  6207.   if ((result = m_optional.Compare(other.m_optional)) != EqualTo)
  6208.     return result;
  6209.   if ((result = m_wildcardReturn.Compare(other.m_wildcardReturn)) != EqualTo)
  6210.     return result;
  6211.  
  6212.   return PASN_Sequence::Compare(other);
  6213. }
  6214.  
  6215.  
  6216. PINDEX H248_CommandRequest::GetDataLength() const
  6217. {
  6218.   PINDEX length = 0;
  6219.   length += m_command.GetObjectLength();
  6220.   if (HasOptionalField(e_optional))
  6221.     length += m_optional.GetObjectLength();
  6222.   if (HasOptionalField(e_wildcardReturn))
  6223.     length += m_wildcardReturn.GetObjectLength();
  6224.   return length;
  6225. }
  6226.  
  6227.  
  6228. BOOL H248_CommandRequest::Decode(PASN_Stream & strm)
  6229. {
  6230.   if (!PreambleDecode(strm))
  6231.     return FALSE;
  6232.  
  6233.   if (!m_command.Decode(strm))
  6234.     return FALSE;
  6235.   if (HasOptionalField(e_optional) && !m_optional.Decode(strm))
  6236.     return FALSE;
  6237.   if (HasOptionalField(e_wildcardReturn) && !m_wildcardReturn.Decode(strm))
  6238.     return FALSE;
  6239.  
  6240.   return UnknownExtensionsDecode(strm);
  6241. }
  6242.  
  6243.  
  6244. void H248_CommandRequest::Encode(PASN_Stream & strm) const
  6245. {
  6246.   PreambleEncode(strm);
  6247.  
  6248.   m_command.Encode(strm);
  6249.   if (HasOptionalField(e_optional))
  6250.     m_optional.Encode(strm);
  6251.   if (HasOptionalField(e_wildcardReturn))
  6252.     m_wildcardReturn.Encode(strm);
  6253.  
  6254.   UnknownExtensionsEncode(strm);
  6255. }
  6256.  
  6257.  
  6258. PObject * H248_CommandRequest::Clone() const
  6259. {
  6260. #ifndef PASN_LEANANDMEAN
  6261.   PAssert(IsClass(H248_CommandRequest::Class()), PInvalidCast);
  6262. #endif
  6263.   return new H248_CommandRequest(*this);
  6264. }
  6265.  
  6266.  
  6267. //
  6268. // AmmRequest
  6269. //
  6270.  
  6271. H248_AmmRequest::H248_AmmRequest(unsigned tag, PASN_Object::TagClass tagClass)
  6272.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  6273. {
  6274. }
  6275.  
  6276.  
  6277. #ifndef PASN_NOPRINTON
  6278. void H248_AmmRequest::PrintOn(ostream & strm) const
  6279. {
  6280.   int indent = strm.precision() + 2;
  6281.   strm << "{\n";
  6282.   strm << setw(indent+16) << "terminationID = " << setprecision(indent) << m_terminationID << '\n';
  6283.   strm << setw(indent+14) << "descriptors = " << setprecision(indent) << m_descriptors << '\n';
  6284.   strm << setw(indent-1) << "}";
  6285. }
  6286. #endif
  6287.  
  6288.  
  6289. PObject::Comparison H248_AmmRequest::Compare(const PObject & obj) const
  6290. {
  6291. #ifndef PASN_LEANANDMEAN
  6292.   PAssert(IsDescendant(H248_AmmRequest::Class()), PInvalidCast);
  6293. #endif
  6294.   const H248_AmmRequest & other = (const H248_AmmRequest &)obj;
  6295.  
  6296.   Comparison result;
  6297.  
  6298.   if ((result = m_terminationID.Compare(other.m_terminationID)) != EqualTo)
  6299.     return result;
  6300.   if ((result = m_descriptors.Compare(other.m_descriptors)) != EqualTo)
  6301.     return result;
  6302.  
  6303.   return PASN_Sequence::Compare(other);
  6304. }
  6305.  
  6306.  
  6307. PINDEX H248_AmmRequest::GetDataLength() const
  6308. {
  6309.   PINDEX length = 0;
  6310.   length += m_terminationID.GetObjectLength();
  6311.   length += m_descriptors.GetObjectLength();
  6312.   return length;
  6313. }
  6314.  
  6315.  
  6316. BOOL H248_AmmRequest::Decode(PASN_Stream & strm)
  6317. {
  6318.   if (!PreambleDecode(strm))
  6319.     return FALSE;
  6320.  
  6321.   if (!m_terminationID.Decode(strm))
  6322.     return FALSE;
  6323.   if (!m_descriptors.Decode(strm))
  6324.     return FALSE;
  6325.  
  6326.   return UnknownExtensionsDecode(strm);
  6327. }
  6328.  
  6329.  
  6330. void H248_AmmRequest::Encode(PASN_Stream & strm) const
  6331. {
  6332.   PreambleEncode(strm);
  6333.  
  6334.   m_terminationID.Encode(strm);
  6335.   m_descriptors.Encode(strm);
  6336.  
  6337.   UnknownExtensionsEncode(strm);
  6338. }
  6339.  
  6340.  
  6341. PObject * H248_AmmRequest::Clone() const
  6342. {
  6343. #ifndef PASN_LEANANDMEAN
  6344.   PAssert(IsClass(H248_AmmRequest::Class()), PInvalidCast);
  6345. #endif
  6346.   return new H248_AmmRequest(*this);
  6347. }
  6348.  
  6349.  
  6350. //
  6351. // AmmsReply
  6352. //
  6353.  
  6354. H248_AmmsReply::H248_AmmsReply(unsigned tag, PASN_Object::TagClass tagClass)
  6355.   : PASN_Sequence(tag, tagClass, 1, TRUE, 0)
  6356. {
  6357. }
  6358.  
  6359.  
  6360. #ifndef PASN_NOPRINTON
  6361. void H248_AmmsReply::PrintOn(ostream & strm) const
  6362. {
  6363.   int indent = strm.precision() + 2;
  6364.   strm << "{\n";
  6365.   strm << setw(indent+16) << "terminationID = " << setprecision(indent) << m_terminationID << '\n';
  6366.   if (HasOptionalField(e_terminationAudit))
  6367.     strm << setw(indent+19) << "terminationAudit = " << setprecision(indent) << m_terminationAudit << '\n';
  6368.   strm << setw(indent-1) << "}";
  6369. }
  6370. #endif
  6371.  
  6372.  
  6373. PObject::Comparison H248_AmmsReply::Compare(const PObject & obj) const
  6374. {
  6375. #ifndef PASN_LEANANDMEAN
  6376.   PAssert(IsDescendant(H248_AmmsReply::Class()), PInvalidCast);
  6377. #endif
  6378.   const H248_AmmsReply & other = (const H248_AmmsReply &)obj;
  6379.  
  6380.   Comparison result;
  6381.  
  6382.   if ((result = m_terminationID.Compare(other.m_terminationID)) != EqualTo)
  6383.     return result;
  6384.   if ((result = m_terminationAudit.Compare(other.m_terminationAudit)) != EqualTo)
  6385.     return result;
  6386.  
  6387.   return PASN_Sequence::Compare(other);
  6388. }
  6389.  
  6390.  
  6391. PINDEX H248_AmmsReply::GetDataLength() const
  6392. {
  6393.   PINDEX length = 0;
  6394.   length += m_terminationID.GetObjectLength();
  6395.   if (HasOptionalField(e_terminationAudit))
  6396.     length += m_terminationAudit.GetObjectLength();
  6397.   return length;
  6398. }
  6399.  
  6400.  
  6401. BOOL H248_AmmsReply::Decode(PASN_Stream & strm)
  6402. {
  6403.   if (!PreambleDecode(strm))
  6404.     return FALSE;
  6405.  
  6406.   if (!m_terminationID.Decode(strm))
  6407.     return FALSE;
  6408.   if (HasOptionalField(e_terminationAudit) && !m_terminationAudit.Decode(strm))
  6409.     return FALSE;
  6410.  
  6411.   return UnknownExtensionsDecode(strm);
  6412. }
  6413.  
  6414.  
  6415. void H248_AmmsReply::Encode(PASN_Stream & strm) const
  6416. {
  6417.   PreambleEncode(strm);
  6418.  
  6419.   m_terminationID.Encode(strm);
  6420.   if (HasOptionalField(e_terminationAudit))
  6421.     m_terminationAudit.Encode(strm);
  6422.  
  6423.   UnknownExtensionsEncode(strm);
  6424. }
  6425.  
  6426.  
  6427. PObject * H248_AmmsReply::Clone() const
  6428. {
  6429. #ifndef PASN_LEANANDMEAN
  6430.   PAssert(IsClass(H248_AmmsReply::Class()), PInvalidCast);
  6431. #endif
  6432.   return new H248_AmmsReply(*this);
  6433. }
  6434.  
  6435.  
  6436. //
  6437. // AuditDescriptor
  6438. //
  6439.  
  6440. H248_AuditDescriptor::H248_AuditDescriptor(unsigned tag, PASN_Object::TagClass tagClass)
  6441.   : PASN_Sequence(tag, tagClass, 1, TRUE, 1)
  6442. {
  6443. }
  6444.  
  6445.  
  6446. #ifndef PASN_NOPRINTON
  6447. void H248_AuditDescriptor::PrintOn(ostream & strm) const
  6448. {
  6449.   int indent = strm.precision() + 2;
  6450.   strm << "{\n";
  6451.   if (HasOptionalField(e_auditToken))
  6452.     strm << setw(indent+13) << "auditToken = " << setprecision(indent) << m_auditToken << '\n';
  6453.   if (HasOptionalField(e_auditPropertyToken))
  6454.     strm << setw(indent+21) << "auditPropertyToken = " << setprecision(indent) << m_auditPropertyToken << '\n';
  6455.   strm << setw(indent-1) << "}";
  6456. }
  6457. #endif
  6458.  
  6459.  
  6460. PObject::Comparison H248_AuditDescriptor::Compare(const PObject & obj) const
  6461. {
  6462. #ifndef PASN_LEANANDMEAN
  6463.   PAssert(IsDescendant(H248_AuditDescriptor::Class()), PInvalidCast);
  6464. #endif
  6465.   const H248_AuditDescriptor & other = (const H248_AuditDescriptor &)obj;
  6466.  
  6467.   Comparison result;
  6468.  
  6469.   if ((result = m_auditToken.Compare(other.m_auditToken)) != EqualTo)
  6470.     return result;
  6471.  
  6472.   return PASN_Sequence::Compare(other);
  6473. }
  6474.  
  6475.  
  6476. PINDEX H248_AuditDescriptor::GetDataLength() const
  6477. {
  6478.   PINDEX length = 0;
  6479.   if (HasOptionalField(e_auditToken))
  6480.     length += m_auditToken.GetObjectLength();
  6481.   return length;
  6482. }
  6483.  
  6484.  
  6485. BOOL H248_AuditDescriptor::Decode(PASN_Stream & strm)
  6486. {
  6487.   if (!PreambleDecode(strm))
  6488.     return FALSE;
  6489.  
  6490.   if (HasOptionalField(e_auditToken) && !m_auditToken.Decode(strm))
  6491.     return FALSE;
  6492.   if (!KnownExtensionDecode(strm, e_auditPropertyToken, m_auditPropertyToken))
  6493.     return FALSE;
  6494.  
  6495.   return UnknownExtensionsDecode(strm);
  6496. }
  6497.  
  6498.  
  6499. void H248_AuditDescriptor::Encode(PASN_Stream & strm) const
  6500. {
  6501.   PreambleEncode(strm);
  6502.  
  6503.   if (HasOptionalField(e_auditToken))
  6504.     m_auditToken.Encode(strm);
  6505.   KnownExtensionEncode(strm, e_auditPropertyToken, m_auditPropertyToken);
  6506.  
  6507.   UnknownExtensionsEncode(strm);
  6508. }
  6509.  
  6510.  
  6511. PObject * H248_AuditDescriptor::Clone() const
  6512. {
  6513. #ifndef PASN_LEANANDMEAN
  6514.   PAssert(IsClass(H248_AuditDescriptor::Class()), PInvalidCast);
  6515. #endif
  6516.   return new H248_AuditDescriptor(*this);
  6517. }
  6518.  
  6519.  
  6520. //
  6521. // IndAudLocalControlDescriptor
  6522. //
  6523.  
  6524. H248_IndAudLocalControlDescriptor::H248_IndAudLocalControlDescriptor(unsigned tag, PASN_Object::TagClass tagClass)
  6525.   : PASN_Sequence(tag, tagClass, 4, TRUE, 0)
  6526. {
  6527. }
  6528.  
  6529.  
  6530. #ifndef PASN_NOPRINTON
  6531. void H248_IndAudLocalControlDescriptor::PrintOn(ostream & strm) const
  6532. {
  6533.   int indent = strm.precision() + 2;
  6534.   strm << "{\n";
  6535.   if (HasOptionalField(e_streamMode))
  6536.     strm << setw(indent+13) << "streamMode = " << setprecision(indent) << m_streamMode << '\n';
  6537.   if (HasOptionalField(e_reserveValue))
  6538.     strm << setw(indent+15) << "reserveValue = " << setprecision(indent) << m_reserveValue << '\n';
  6539.   if (HasOptionalField(e_reserveGroup))
  6540.     strm << setw(indent+15) << "reserveGroup = " << setprecision(indent) << m_reserveGroup << '\n';
  6541.   if (HasOptionalField(e_propertyParms))
  6542.     strm << setw(indent+16) << "propertyParms = " << setprecision(indent) << m_propertyParms << '\n';
  6543.   strm << setw(indent-1) << "}";
  6544. }
  6545. #endif
  6546.  
  6547.  
  6548. PObject::Comparison H248_IndAudLocalControlDescriptor::Compare(const PObject & obj) const
  6549. {
  6550. #ifndef PASN_LEANANDMEAN
  6551.   PAssert(IsDescendant(H248_IndAudLocalControlDescriptor::Class()), PInvalidCast);
  6552. #endif
  6553.   const H248_IndAudLocalControlDescriptor & other = (const H248_IndAudLocalControlDescriptor &)obj;
  6554.  
  6555.   Comparison result;
  6556.  
  6557.   if ((result = m_streamMode.Compare(other.m_streamMode)) != EqualTo)
  6558.     return result;
  6559.   if ((result = m_reserveValue.Compare(other.m_reserveValue)) != EqualTo)
  6560.     return result;
  6561.   if ((result = m_reserveGroup.Compare(other.m_reserveGroup)) != EqualTo)
  6562.     return result;
  6563.   if ((result = m_propertyParms.Compare(other.m_propertyParms)) != EqualTo)
  6564.     return result;
  6565.  
  6566.   return PASN_Sequence::Compare(other);
  6567. }
  6568.  
  6569.  
  6570. PINDEX H248_IndAudLocalControlDescriptor::GetDataLength() const
  6571. {
  6572.   PINDEX length = 0;
  6573.   if (HasOptionalField(e_streamMode))
  6574.     length += m_streamMode.GetObjectLength();
  6575.   if (HasOptionalField(e_reserveValue))
  6576.     length += m_reserveValue.GetObjectLength();
  6577.   if (HasOptionalField(e_reserveGroup))
  6578.     length += m_reserveGroup.GetObjectLength();
  6579.   if (HasOptionalField(e_propertyParms))
  6580.     length += m_propertyParms.GetObjectLength();
  6581.   return length;
  6582. }
  6583.  
  6584.  
  6585. BOOL H248_IndAudLocalControlDescriptor::Decode(PASN_Stream & strm)
  6586. {
  6587.   if (!PreambleDecode(strm))
  6588.     return FALSE;
  6589.  
  6590.   if (HasOptionalField(e_streamMode) && !m_streamMode.Decode(strm))
  6591.     return FALSE;
  6592.   if (HasOptionalField(e_reserveValue) && !m_reserveValue.Decode(strm))
  6593.     return FALSE;
  6594.   if (HasOptionalField(e_reserveGroup) && !m_reserveGroup.Decode(strm))
  6595.     return FALSE;
  6596.   if (HasOptionalField(e_propertyParms) && !m_propertyParms.Decode(strm))
  6597.     return FALSE;
  6598.  
  6599.   return UnknownExtensionsDecode(strm);
  6600. }
  6601.  
  6602.  
  6603. void H248_IndAudLocalControlDescriptor::Encode(PASN_Stream & strm) const
  6604. {
  6605.   PreambleEncode(strm);
  6606.  
  6607.   if (HasOptionalField(e_streamMode))
  6608.     m_streamMode.Encode(strm);
  6609.   if (HasOptionalField(e_reserveValue))
  6610.     m_reserveValue.Encode(strm);
  6611.   if (HasOptionalField(e_reserveGroup))
  6612.     m_reserveGroup.Encode(strm);
  6613.   if (HasOptionalField(e_propertyParms))
  6614.     m_propertyParms.Encode(strm);
  6615.  
  6616.   UnknownExtensionsEncode(strm);
  6617. }
  6618.  
  6619.  
  6620. PObject * H248_IndAudLocalControlDescriptor::Clone() const
  6621. {
  6622. #ifndef PASN_LEANANDMEAN
  6623.   PAssert(IsClass(H248_IndAudLocalControlDescriptor::Class()), PInvalidCast);
  6624. #endif
  6625.   return new H248_IndAudLocalControlDescriptor(*this);
  6626. }
  6627.  
  6628.  
  6629. //
  6630. // IndAudPropertyParm
  6631. //
  6632.  
  6633. H248_IndAudPropertyParm::H248_IndAudPropertyParm(unsigned tag, PASN_Object::TagClass tagClass)
  6634.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  6635. {
  6636. }
  6637.  
  6638.  
  6639. #ifndef PASN_NOPRINTON
  6640. void H248_IndAudPropertyParm::PrintOn(ostream & strm) const
  6641. {
  6642.   int indent = strm.precision() + 2;
  6643.   strm << "{\n";
  6644.   strm << setw(indent+7) << "name = " << setprecision(indent) << m_name << '\n';
  6645.   strm << setw(indent-1) << "}";
  6646. }
  6647. #endif
  6648.  
  6649.  
  6650. PObject::Comparison H248_IndAudPropertyParm::Compare(const PObject & obj) const
  6651. {
  6652. #ifndef PASN_LEANANDMEAN
  6653.   PAssert(IsDescendant(H248_IndAudPropertyParm::Class()), PInvalidCast);
  6654. #endif
  6655.   const H248_IndAudPropertyParm & other = (const H248_IndAudPropertyParm &)obj;
  6656.  
  6657.   Comparison result;
  6658.  
  6659.   if ((result = m_name.Compare(other.m_name)) != EqualTo)
  6660.     return result;
  6661.  
  6662.   return PASN_Sequence::Compare(other);
  6663. }
  6664.  
  6665.  
  6666. PINDEX H248_IndAudPropertyParm::GetDataLength() const
  6667. {
  6668.   PINDEX length = 0;
  6669.   length += m_name.GetObjectLength();
  6670.   return length;
  6671. }
  6672.  
  6673.  
  6674. BOOL H248_IndAudPropertyParm::Decode(PASN_Stream & strm)
  6675. {
  6676.   if (!PreambleDecode(strm))
  6677.     return FALSE;
  6678.  
  6679.   if (!m_name.Decode(strm))
  6680.     return FALSE;
  6681.  
  6682.   return UnknownExtensionsDecode(strm);
  6683. }
  6684.  
  6685.  
  6686. void H248_IndAudPropertyParm::Encode(PASN_Stream & strm) const
  6687. {
  6688.   PreambleEncode(strm);
  6689.  
  6690.   m_name.Encode(strm);
  6691.  
  6692.   UnknownExtensionsEncode(strm);
  6693. }
  6694.  
  6695.  
  6696. PObject * H248_IndAudPropertyParm::Clone() const
  6697. {
  6698. #ifndef PASN_LEANANDMEAN
  6699.   PAssert(IsClass(H248_IndAudPropertyParm::Class()), PInvalidCast);
  6700. #endif
  6701.   return new H248_IndAudPropertyParm(*this);
  6702. }
  6703.  
  6704.  
  6705. //
  6706. // IndAudLocalRemoteDescriptor
  6707. //
  6708.  
  6709. H248_IndAudLocalRemoteDescriptor::H248_IndAudLocalRemoteDescriptor(unsigned tag, PASN_Object::TagClass tagClass)
  6710.   : PASN_Sequence(tag, tagClass, 1, TRUE, 0)
  6711. {
  6712.   m_propGroupID.SetConstraints(PASN_Object::FixedConstraint, 0, 65535);
  6713. }
  6714.  
  6715.  
  6716. #ifndef PASN_NOPRINTON
  6717. void H248_IndAudLocalRemoteDescriptor::PrintOn(ostream & strm) const
  6718. {
  6719.   int indent = strm.precision() + 2;
  6720.   strm << "{\n";
  6721.   if (HasOptionalField(e_propGroupID))
  6722.     strm << setw(indent+14) << "propGroupID = " << setprecision(indent) << m_propGroupID << '\n';
  6723.   strm << setw(indent+11) << "propGrps = " << setprecision(indent) << m_propGrps << '\n';
  6724.   strm << setw(indent-1) << "}";
  6725. }
  6726. #endif
  6727.  
  6728.  
  6729. PObject::Comparison H248_IndAudLocalRemoteDescriptor::Compare(const PObject & obj) const
  6730. {
  6731. #ifndef PASN_LEANANDMEAN
  6732.   PAssert(IsDescendant(H248_IndAudLocalRemoteDescriptor::Class()), PInvalidCast);
  6733. #endif
  6734.   const H248_IndAudLocalRemoteDescriptor & other = (const H248_IndAudLocalRemoteDescriptor &)obj;
  6735.  
  6736.   Comparison result;
  6737.  
  6738.   if ((result = m_propGroupID.Compare(other.m_propGroupID)) != EqualTo)
  6739.     return result;
  6740.   if ((result = m_propGrps.Compare(other.m_propGrps)) != EqualTo)
  6741.     return result;
  6742.  
  6743.   return PASN_Sequence::Compare(other);
  6744. }
  6745.  
  6746.  
  6747. PINDEX H248_IndAudLocalRemoteDescriptor::GetDataLength() const
  6748. {
  6749.   PINDEX length = 0;
  6750.   if (HasOptionalField(e_propGroupID))
  6751.     length += m_propGroupID.GetObjectLength();
  6752.   length += m_propGrps.GetObjectLength();
  6753.   return length;
  6754. }
  6755.  
  6756.  
  6757. BOOL H248_IndAudLocalRemoteDescriptor::Decode(PASN_Stream & strm)
  6758. {
  6759.   if (!PreambleDecode(strm))
  6760.     return FALSE;
  6761.  
  6762.   if (HasOptionalField(e_propGroupID) && !m_propGroupID.Decode(strm))
  6763.     return FALSE;
  6764.   if (!m_propGrps.Decode(strm))
  6765.     return FALSE;
  6766.  
  6767.   return UnknownExtensionsDecode(strm);
  6768. }
  6769.  
  6770.  
  6771. void H248_IndAudLocalRemoteDescriptor::Encode(PASN_Stream & strm) const
  6772. {
  6773.   PreambleEncode(strm);
  6774.  
  6775.   if (HasOptionalField(e_propGroupID))
  6776.     m_propGroupID.Encode(strm);
  6777.   m_propGrps.Encode(strm);
  6778.  
  6779.   UnknownExtensionsEncode(strm);
  6780. }
  6781.  
  6782.  
  6783. PObject * H248_IndAudLocalRemoteDescriptor::Clone() const
  6784. {
  6785. #ifndef PASN_LEANANDMEAN
  6786.   PAssert(IsClass(H248_IndAudLocalRemoteDescriptor::Class()), PInvalidCast);
  6787. #endif
  6788.   return new H248_IndAudLocalRemoteDescriptor(*this);
  6789. }
  6790.  
  6791.  
  6792. //
  6793. // IndAudTerminationStateDescriptor
  6794. //
  6795.  
  6796. H248_IndAudTerminationStateDescriptor::H248_IndAudTerminationStateDescriptor(unsigned tag, PASN_Object::TagClass tagClass)
  6797.   : PASN_Sequence(tag, tagClass, 2, TRUE, 0)
  6798. {
  6799. }
  6800.  
  6801.  
  6802. #ifndef PASN_NOPRINTON
  6803. void H248_IndAudTerminationStateDescriptor::PrintOn(ostream & strm) const
  6804. {
  6805.   int indent = strm.precision() + 2;
  6806.   strm << "{\n";
  6807.   strm << setw(indent+16) << "propertyParms = " << setprecision(indent) << m_propertyParms << '\n';
  6808.   if (HasOptionalField(e_eventBufferControl))
  6809.     strm << setw(indent+21) << "eventBufferControl = " << setprecision(indent) << m_eventBufferControl << '\n';
  6810.   if (HasOptionalField(e_serviceState))
  6811.     strm << setw(indent+15) << "serviceState = " << setprecision(indent) << m_serviceState << '\n';
  6812.   strm << setw(indent-1) << "}";
  6813. }
  6814. #endif
  6815.  
  6816.  
  6817. PObject::Comparison H248_IndAudTerminationStateDescriptor::Compare(const PObject & obj) const
  6818. {
  6819. #ifndef PASN_LEANANDMEAN
  6820.   PAssert(IsDescendant(H248_IndAudTerminationStateDescriptor::Class()), PInvalidCast);
  6821. #endif
  6822.   const H248_IndAudTerminationStateDescriptor & other = (const H248_IndAudTerminationStateDescriptor &)obj;
  6823.  
  6824.   Comparison result;
  6825.  
  6826.   if ((result = m_propertyParms.Compare(other.m_propertyParms)) != EqualTo)
  6827.     return result;
  6828.   if ((result = m_eventBufferControl.Compare(other.m_eventBufferControl)) != EqualTo)
  6829.     return result;
  6830.   if ((result = m_serviceState.Compare(other.m_serviceState)) != EqualTo)
  6831.     return result;
  6832.  
  6833.   return PASN_Sequence::Compare(other);
  6834. }
  6835.  
  6836.  
  6837. PINDEX H248_IndAudTerminationStateDescriptor::GetDataLength() const
  6838. {
  6839.   PINDEX length = 0;
  6840.   length += m_propertyParms.GetObjectLength();
  6841.   if (HasOptionalField(e_eventBufferControl))
  6842.     length += m_eventBufferControl.GetObjectLength();
  6843.   if (HasOptionalField(e_serviceState))
  6844.     length += m_serviceState.GetObjectLength();
  6845.   return length;
  6846. }
  6847.  
  6848.  
  6849. BOOL H248_IndAudTerminationStateDescriptor::Decode(PASN_Stream & strm)
  6850. {
  6851.   if (!PreambleDecode(strm))
  6852.     return FALSE;
  6853.  
  6854.   if (!m_propertyParms.Decode(strm))
  6855.     return FALSE;
  6856.   if (HasOptionalField(e_eventBufferControl) && !m_eventBufferControl.Decode(strm))
  6857.     return FALSE;
  6858.   if (HasOptionalField(e_serviceState) && !m_serviceState.Decode(strm))
  6859.     return FALSE;
  6860.  
  6861.   return UnknownExtensionsDecode(strm);
  6862. }
  6863.  
  6864.  
  6865. void H248_IndAudTerminationStateDescriptor::Encode(PASN_Stream & strm) const
  6866. {
  6867.   PreambleEncode(strm);
  6868.  
  6869.   m_propertyParms.Encode(strm);
  6870.   if (HasOptionalField(e_eventBufferControl))
  6871.     m_eventBufferControl.Encode(strm);
  6872.   if (HasOptionalField(e_serviceState))
  6873.     m_serviceState.Encode(strm);
  6874.  
  6875.   UnknownExtensionsEncode(strm);
  6876. }
  6877.  
  6878.  
  6879. PObject * H248_IndAudTerminationStateDescriptor::Clone() const
  6880. {
  6881. #ifndef PASN_LEANANDMEAN
  6882.   PAssert(IsClass(H248_IndAudTerminationStateDescriptor::Class()), PInvalidCast);
  6883. #endif
  6884.   return new H248_IndAudTerminationStateDescriptor(*this);
  6885. }
  6886.  
  6887.  
  6888. //
  6889. // IndAudEventsDescriptor
  6890. //
  6891.  
  6892. H248_IndAudEventsDescriptor::H248_IndAudEventsDescriptor(unsigned tag, PASN_Object::TagClass tagClass)
  6893.   : PASN_Sequence(tag, tagClass, 2, TRUE, 0)
  6894. {
  6895. }
  6896.  
  6897.  
  6898. #ifndef PASN_NOPRINTON
  6899. void H248_IndAudEventsDescriptor::PrintOn(ostream & strm) const
  6900. {
  6901.   int indent = strm.precision() + 2;
  6902.   strm << "{\n";
  6903.   if (HasOptionalField(e_requestID))
  6904.     strm << setw(indent+12) << "requestID = " << setprecision(indent) << m_requestID << '\n';
  6905.   strm << setw(indent+11) << "pkgdName = " << setprecision(indent) << m_pkgdName << '\n';
  6906.   if (HasOptionalField(e_streamID))
  6907.     strm << setw(indent+11) << "streamID = " << setprecision(indent) << m_streamID << '\n';
  6908.   strm << setw(indent-1) << "}";
  6909. }
  6910. #endif
  6911.  
  6912.  
  6913. PObject::Comparison H248_IndAudEventsDescriptor::Compare(const PObject & obj) const
  6914. {
  6915. #ifndef PASN_LEANANDMEAN
  6916.   PAssert(IsDescendant(H248_IndAudEventsDescriptor::Class()), PInvalidCast);
  6917. #endif
  6918.   const H248_IndAudEventsDescriptor & other = (const H248_IndAudEventsDescriptor &)obj;
  6919.  
  6920.   Comparison result;
  6921.  
  6922.   if ((result = m_requestID.Compare(other.m_requestID)) != EqualTo)
  6923.     return result;
  6924.   if ((result = m_pkgdName.Compare(other.m_pkgdName)) != EqualTo)
  6925.     return result;
  6926.   if ((result = m_streamID.Compare(other.m_streamID)) != EqualTo)
  6927.     return result;
  6928.  
  6929.   return PASN_Sequence::Compare(other);
  6930. }
  6931.  
  6932.  
  6933. PINDEX H248_IndAudEventsDescriptor::GetDataLength() const
  6934. {
  6935.   PINDEX length = 0;
  6936.   if (HasOptionalField(e_requestID))
  6937.     length += m_requestID.GetObjectLength();
  6938.   length += m_pkgdName.GetObjectLength();
  6939.   if (HasOptionalField(e_streamID))
  6940.     length += m_streamID.GetObjectLength();
  6941.   return length;
  6942. }
  6943.  
  6944.  
  6945. BOOL H248_IndAudEventsDescriptor::Decode(PASN_Stream & strm)
  6946. {
  6947.   if (!PreambleDecode(strm))
  6948.     return FALSE;
  6949.  
  6950.   if (HasOptionalField(e_requestID) && !m_requestID.Decode(strm))
  6951.     return FALSE;
  6952.   if (!m_pkgdName.Decode(strm))
  6953.     return FALSE;
  6954.   if (HasOptionalField(e_streamID) && !m_streamID.Decode(strm))
  6955.     return FALSE;
  6956.  
  6957.   return UnknownExtensionsDecode(strm);
  6958. }
  6959.  
  6960.  
  6961. void H248_IndAudEventsDescriptor::Encode(PASN_Stream & strm) const
  6962. {
  6963.   PreambleEncode(strm);
  6964.  
  6965.   if (HasOptionalField(e_requestID))
  6966.     m_requestID.Encode(strm);
  6967.   m_pkgdName.Encode(strm);
  6968.   if (HasOptionalField(e_streamID))
  6969.     m_streamID.Encode(strm);
  6970.  
  6971.   UnknownExtensionsEncode(strm);
  6972. }
  6973.  
  6974.  
  6975. PObject * H248_IndAudEventsDescriptor::Clone() const
  6976. {
  6977. #ifndef PASN_LEANANDMEAN
  6978.   PAssert(IsClass(H248_IndAudEventsDescriptor::Class()), PInvalidCast);
  6979. #endif
  6980.   return new H248_IndAudEventsDescriptor(*this);
  6981. }
  6982.  
  6983.  
  6984. //
  6985. // IndAudEventBufferDescriptor
  6986. //
  6987.  
  6988. H248_IndAudEventBufferDescriptor::H248_IndAudEventBufferDescriptor(unsigned tag, PASN_Object::TagClass tagClass)
  6989.   : PASN_Sequence(tag, tagClass, 1, TRUE, 0)
  6990. {
  6991. }
  6992.  
  6993.  
  6994. #ifndef PASN_NOPRINTON
  6995. void H248_IndAudEventBufferDescriptor::PrintOn(ostream & strm) const
  6996. {
  6997.   int indent = strm.precision() + 2;
  6998.   strm << "{\n";
  6999.   strm << setw(indent+12) << "eventName = " << setprecision(indent) << m_eventName << '\n';
  7000.   if (HasOptionalField(e_streamID))
  7001.     strm << setw(indent+11) << "streamID = " << setprecision(indent) << m_streamID << '\n';
  7002.   strm << setw(indent-1) << "}";
  7003. }
  7004. #endif
  7005.  
  7006.  
  7007. PObject::Comparison H248_IndAudEventBufferDescriptor::Compare(const PObject & obj) const
  7008. {
  7009. #ifndef PASN_LEANANDMEAN
  7010.   PAssert(IsDescendant(H248_IndAudEventBufferDescriptor::Class()), PInvalidCast);
  7011. #endif
  7012.   const H248_IndAudEventBufferDescriptor & other = (const H248_IndAudEventBufferDescriptor &)obj;
  7013.  
  7014.   Comparison result;
  7015.  
  7016.   if ((result = m_eventName.Compare(other.m_eventName)) != EqualTo)
  7017.     return result;
  7018.   if ((result = m_streamID.Compare(other.m_streamID)) != EqualTo)
  7019.     return result;
  7020.  
  7021.   return PASN_Sequence::Compare(other);
  7022. }
  7023.  
  7024.  
  7025. PINDEX H248_IndAudEventBufferDescriptor::GetDataLength() const
  7026. {
  7027.   PINDEX length = 0;
  7028.   length += m_eventName.GetObjectLength();
  7029.   if (HasOptionalField(e_streamID))
  7030.     length += m_streamID.GetObjectLength();
  7031.   return length;
  7032. }
  7033.  
  7034.  
  7035. BOOL H248_IndAudEventBufferDescriptor::Decode(PASN_Stream & strm)
  7036. {
  7037.   if (!PreambleDecode(strm))
  7038.     return FALSE;
  7039.  
  7040.   if (!m_eventName.Decode(strm))
  7041.     return FALSE;
  7042.   if (HasOptionalField(e_streamID) && !m_streamID.Decode(strm))
  7043.     return FALSE;
  7044.  
  7045.   return UnknownExtensionsDecode(strm);
  7046. }
  7047.  
  7048.  
  7049. void H248_IndAudEventBufferDescriptor::Encode(PASN_Stream & strm) const
  7050. {
  7051.   PreambleEncode(strm);
  7052.  
  7053.   m_eventName.Encode(strm);
  7054.   if (HasOptionalField(e_streamID))
  7055.     m_streamID.Encode(strm);
  7056.  
  7057.   UnknownExtensionsEncode(strm);
  7058. }
  7059.  
  7060.  
  7061. PObject * H248_IndAudEventBufferDescriptor::Clone() const
  7062. {
  7063. #ifndef PASN_LEANANDMEAN
  7064.   PAssert(IsClass(H248_IndAudEventBufferDescriptor::Class()), PInvalidCast);
  7065. #endif
  7066.   return new H248_IndAudEventBufferDescriptor(*this);
  7067. }
  7068.  
  7069.  
  7070. //
  7071. // IndAudSignal
  7072. //
  7073.  
  7074. H248_IndAudSignal::H248_IndAudSignal(unsigned tag, PASN_Object::TagClass tagClass)
  7075.   : PASN_Sequence(tag, tagClass, 1, TRUE, 0)
  7076. {
  7077. }
  7078.  
  7079.  
  7080. #ifndef PASN_NOPRINTON
  7081. void H248_IndAudSignal::PrintOn(ostream & strm) const
  7082. {
  7083.   int indent = strm.precision() + 2;
  7084.   strm << "{\n";
  7085.   strm << setw(indent+13) << "signalName = " << setprecision(indent) << m_signalName << '\n';
  7086.   if (HasOptionalField(e_streamID))
  7087.     strm << setw(indent+11) << "streamID = " << setprecision(indent) << m_streamID << '\n';
  7088.   strm << setw(indent-1) << "}";
  7089. }
  7090. #endif
  7091.  
  7092.  
  7093. PObject::Comparison H248_IndAudSignal::Compare(const PObject & obj) const
  7094. {
  7095. #ifndef PASN_LEANANDMEAN
  7096.   PAssert(IsDescendant(H248_IndAudSignal::Class()), PInvalidCast);
  7097. #endif
  7098.   const H248_IndAudSignal & other = (const H248_IndAudSignal &)obj;
  7099.  
  7100.   Comparison result;
  7101.  
  7102.   if ((result = m_signalName.Compare(other.m_signalName)) != EqualTo)
  7103.     return result;
  7104.   if ((result = m_streamID.Compare(other.m_streamID)) != EqualTo)
  7105.     return result;
  7106.  
  7107.   return PASN_Sequence::Compare(other);
  7108. }
  7109.  
  7110.  
  7111. PINDEX H248_IndAudSignal::GetDataLength() const
  7112. {
  7113.   PINDEX length = 0;
  7114.   length += m_signalName.GetObjectLength();
  7115.   if (HasOptionalField(e_streamID))
  7116.     length += m_streamID.GetObjectLength();
  7117.   return length;
  7118. }
  7119.  
  7120.  
  7121. BOOL H248_IndAudSignal::Decode(PASN_Stream & strm)
  7122. {
  7123.   if (!PreambleDecode(strm))
  7124.     return FALSE;
  7125.  
  7126.   if (!m_signalName.Decode(strm))
  7127.     return FALSE;
  7128.   if (HasOptionalField(e_streamID) && !m_streamID.Decode(strm))
  7129.     return FALSE;
  7130.  
  7131.   return UnknownExtensionsDecode(strm);
  7132. }
  7133.  
  7134.  
  7135. void H248_IndAudSignal::Encode(PASN_Stream & strm) const
  7136. {
  7137.   PreambleEncode(strm);
  7138.  
  7139.   m_signalName.Encode(strm);
  7140.   if (HasOptionalField(e_streamID))
  7141.     m_streamID.Encode(strm);
  7142.  
  7143.   UnknownExtensionsEncode(strm);
  7144. }
  7145.  
  7146.  
  7147. PObject * H248_IndAudSignal::Clone() const
  7148. {
  7149. #ifndef PASN_LEANANDMEAN
  7150.   PAssert(IsClass(H248_IndAudSignal::Class()), PInvalidCast);
  7151. #endif
  7152.   return new H248_IndAudSignal(*this);
  7153. }
  7154.  
  7155.  
  7156. //
  7157. // IndAudDigitMapDescriptor
  7158. //
  7159.  
  7160. H248_IndAudDigitMapDescriptor::H248_IndAudDigitMapDescriptor(unsigned tag, PASN_Object::TagClass tagClass)
  7161.   : PASN_Sequence(tag, tagClass, 1, FALSE, 0)
  7162. {
  7163. }
  7164.  
  7165.  
  7166. #ifndef PASN_NOPRINTON
  7167. void H248_IndAudDigitMapDescriptor::PrintOn(ostream & strm) const
  7168. {
  7169.   int indent = strm.precision() + 2;
  7170.   strm << "{\n";
  7171.   if (HasOptionalField(e_digitMapName))
  7172.     strm << setw(indent+15) << "digitMapName = " << setprecision(indent) << m_digitMapName << '\n';
  7173.   strm << setw(indent-1) << "}";
  7174. }
  7175. #endif
  7176.  
  7177.  
  7178. PObject::Comparison H248_IndAudDigitMapDescriptor::Compare(const PObject & obj) const
  7179. {
  7180. #ifndef PASN_LEANANDMEAN
  7181.   PAssert(IsDescendant(H248_IndAudDigitMapDescriptor::Class()), PInvalidCast);
  7182. #endif
  7183.   const H248_IndAudDigitMapDescriptor & other = (const H248_IndAudDigitMapDescriptor &)obj;
  7184.  
  7185.   Comparison result;
  7186.  
  7187.   if ((result = m_digitMapName.Compare(other.m_digitMapName)) != EqualTo)
  7188.     return result;
  7189.  
  7190.   return PASN_Sequence::Compare(other);
  7191. }
  7192.  
  7193.  
  7194. PINDEX H248_IndAudDigitMapDescriptor::GetDataLength() const
  7195. {
  7196.   PINDEX length = 0;
  7197.   if (HasOptionalField(e_digitMapName))
  7198.     length += m_digitMapName.GetObjectLength();
  7199.   return length;
  7200. }
  7201.  
  7202.  
  7203. BOOL H248_IndAudDigitMapDescriptor::Decode(PASN_Stream & strm)
  7204. {
  7205.   if (!PreambleDecode(strm))
  7206.     return FALSE;
  7207.  
  7208.   if (HasOptionalField(e_digitMapName) && !m_digitMapName.Decode(strm))
  7209.     return FALSE;
  7210.  
  7211.   return UnknownExtensionsDecode(strm);
  7212. }
  7213.  
  7214.  
  7215. void H248_IndAudDigitMapDescriptor::Encode(PASN_Stream & strm) const
  7216. {
  7217.   PreambleEncode(strm);
  7218.  
  7219.   if (HasOptionalField(e_digitMapName))
  7220.     m_digitMapName.Encode(strm);
  7221.  
  7222.   UnknownExtensionsEncode(strm);
  7223. }
  7224.  
  7225.  
  7226. PObject * H248_IndAudDigitMapDescriptor::Clone() const
  7227. {
  7228. #ifndef PASN_LEANANDMEAN
  7229.   PAssert(IsClass(H248_IndAudDigitMapDescriptor::Class()), PInvalidCast);
  7230. #endif
  7231.   return new H248_IndAudDigitMapDescriptor(*this);
  7232. }
  7233.  
  7234.  
  7235. //
  7236. // IndAudStatisticsDescriptor
  7237. //
  7238.  
  7239. H248_IndAudStatisticsDescriptor::H248_IndAudStatisticsDescriptor(unsigned tag, PASN_Object::TagClass tagClass)
  7240.   : PASN_Sequence(tag, tagClass, 0, FALSE, 0)
  7241. {
  7242. }
  7243.  
  7244.  
  7245. #ifndef PASN_NOPRINTON
  7246. void H248_IndAudStatisticsDescriptor::PrintOn(ostream & strm) const
  7247. {
  7248.   int indent = strm.precision() + 2;
  7249.   strm << "{\n";
  7250.   strm << setw(indent+11) << "statName = " << setprecision(indent) << m_statName << '\n';
  7251.   strm << setw(indent-1) << "}";
  7252. }
  7253. #endif
  7254.  
  7255.  
  7256. PObject::Comparison H248_IndAudStatisticsDescriptor::Compare(const PObject & obj) const
  7257. {
  7258. #ifndef PASN_LEANANDMEAN
  7259.   PAssert(IsDescendant(H248_IndAudStatisticsDescriptor::Class()), PInvalidCast);
  7260. #endif
  7261.   const H248_IndAudStatisticsDescriptor & other = (const H248_IndAudStatisticsDescriptor &)obj;
  7262.  
  7263.   Comparison result;
  7264.  
  7265.   if ((result = m_statName.Compare(other.m_statName)) != EqualTo)
  7266.     return result;
  7267.  
  7268.   return PASN_Sequence::Compare(other);
  7269. }
  7270.  
  7271.  
  7272. PINDEX H248_IndAudStatisticsDescriptor::GetDataLength() const
  7273. {
  7274.   PINDEX length = 0;
  7275.   length += m_statName.GetObjectLength();
  7276.   return length;
  7277. }
  7278.  
  7279.  
  7280. BOOL H248_IndAudStatisticsDescriptor::Decode(PASN_Stream & strm)
  7281. {
  7282.   if (!PreambleDecode(strm))
  7283.     return FALSE;
  7284.  
  7285.   if (!m_statName.Decode(strm))
  7286.     return FALSE;
  7287.  
  7288.   return UnknownExtensionsDecode(strm);
  7289. }
  7290.  
  7291.  
  7292. void H248_IndAudStatisticsDescriptor::Encode(PASN_Stream & strm) const
  7293. {
  7294.   PreambleEncode(strm);
  7295.  
  7296.   m_statName.Encode(strm);
  7297.  
  7298.   UnknownExtensionsEncode(strm);
  7299. }
  7300.  
  7301.  
  7302. PObject * H248_IndAudStatisticsDescriptor::Clone() const
  7303. {
  7304. #ifndef PASN_LEANANDMEAN
  7305.   PAssert(IsClass(H248_IndAudStatisticsDescriptor::Class()), PInvalidCast);
  7306. #endif
  7307.   return new H248_IndAudStatisticsDescriptor(*this);
  7308. }
  7309.  
  7310.  
  7311. //
  7312. // IndAudPackagesDescriptor
  7313. //
  7314.  
  7315. H248_IndAudPackagesDescriptor::H248_IndAudPackagesDescriptor(unsigned tag, PASN_Object::TagClass tagClass)
  7316.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  7317. {
  7318.   m_packageVersion.SetConstraints(PASN_Object::FixedConstraint, 0, 99);
  7319. }
  7320.  
  7321.  
  7322. #ifndef PASN_NOPRINTON
  7323. void H248_IndAudPackagesDescriptor::PrintOn(ostream & strm) const
  7324. {
  7325.   int indent = strm.precision() + 2;
  7326.   strm << "{\n";
  7327.   strm << setw(indent+14) << "packageName = " << setprecision(indent) << m_packageName << '\n';
  7328.   strm << setw(indent+17) << "packageVersion = " << setprecision(indent) << m_packageVersion << '\n';
  7329.   strm << setw(indent-1) << "}";
  7330. }
  7331. #endif
  7332.  
  7333.  
  7334. PObject::Comparison H248_IndAudPackagesDescriptor::Compare(const PObject & obj) const
  7335. {
  7336. #ifndef PASN_LEANANDMEAN
  7337.   PAssert(IsDescendant(H248_IndAudPackagesDescriptor::Class()), PInvalidCast);
  7338. #endif
  7339.   const H248_IndAudPackagesDescriptor & other = (const H248_IndAudPackagesDescriptor &)obj;
  7340.  
  7341.   Comparison result;
  7342.  
  7343.   if ((result = m_packageName.Compare(other.m_packageName)) != EqualTo)
  7344.     return result;
  7345.   if ((result = m_packageVersion.Compare(other.m_packageVersion)) != EqualTo)
  7346.     return result;
  7347.  
  7348.   return PASN_Sequence::Compare(other);
  7349. }
  7350.  
  7351.  
  7352. PINDEX H248_IndAudPackagesDescriptor::GetDataLength() const
  7353. {
  7354.   PINDEX length = 0;
  7355.   length += m_packageName.GetObjectLength();
  7356.   length += m_packageVersion.GetObjectLength();
  7357.   return length;
  7358. }
  7359.  
  7360.  
  7361. BOOL H248_IndAudPackagesDescriptor::Decode(PASN_Stream & strm)
  7362. {
  7363.   if (!PreambleDecode(strm))
  7364.     return FALSE;
  7365.  
  7366.   if (!m_packageName.Decode(strm))
  7367.     return FALSE;
  7368.   if (!m_packageVersion.Decode(strm))
  7369.     return FALSE;
  7370.  
  7371.   return UnknownExtensionsDecode(strm);
  7372. }
  7373.  
  7374.  
  7375. void H248_IndAudPackagesDescriptor::Encode(PASN_Stream & strm) const
  7376. {
  7377.   PreambleEncode(strm);
  7378.  
  7379.   m_packageName.Encode(strm);
  7380.   m_packageVersion.Encode(strm);
  7381.  
  7382.   UnknownExtensionsEncode(strm);
  7383. }
  7384.  
  7385.  
  7386. PObject * H248_IndAudPackagesDescriptor::Clone() const
  7387. {
  7388. #ifndef PASN_LEANANDMEAN
  7389.   PAssert(IsClass(H248_IndAudPackagesDescriptor::Class()), PInvalidCast);
  7390. #endif
  7391.   return new H248_IndAudPackagesDescriptor(*this);
  7392. }
  7393.  
  7394.  
  7395. //
  7396. // NotifyReply
  7397. //
  7398.  
  7399. H248_NotifyReply::H248_NotifyReply(unsigned tag, PASN_Object::TagClass tagClass)
  7400.   : PASN_Sequence(tag, tagClass, 1, TRUE, 0)
  7401. {
  7402. }
  7403.  
  7404.  
  7405. #ifndef PASN_NOPRINTON
  7406. void H248_NotifyReply::PrintOn(ostream & strm) const
  7407. {
  7408.   int indent = strm.precision() + 2;
  7409.   strm << "{\n";
  7410.   strm << setw(indent+16) << "terminationID = " << setprecision(indent) << m_terminationID << '\n';
  7411.   if (HasOptionalField(e_errorDescriptor))
  7412.     strm << setw(indent+18) << "errorDescriptor = " << setprecision(indent) << m_errorDescriptor << '\n';
  7413.   strm << setw(indent-1) << "}";
  7414. }
  7415. #endif
  7416.  
  7417.  
  7418. PObject::Comparison H248_NotifyReply::Compare(const PObject & obj) const
  7419. {
  7420. #ifndef PASN_LEANANDMEAN
  7421.   PAssert(IsDescendant(H248_NotifyReply::Class()), PInvalidCast);
  7422. #endif
  7423.   const H248_NotifyReply & other = (const H248_NotifyReply &)obj;
  7424.  
  7425.   Comparison result;
  7426.  
  7427.   if ((result = m_terminationID.Compare(other.m_terminationID)) != EqualTo)
  7428.     return result;
  7429.   if ((result = m_errorDescriptor.Compare(other.m_errorDescriptor)) != EqualTo)
  7430.     return result;
  7431.  
  7432.   return PASN_Sequence::Compare(other);
  7433. }
  7434.  
  7435.  
  7436. PINDEX H248_NotifyReply::GetDataLength() const
  7437. {
  7438.   PINDEX length = 0;
  7439.   length += m_terminationID.GetObjectLength();
  7440.   if (HasOptionalField(e_errorDescriptor))
  7441.     length += m_errorDescriptor.GetObjectLength();
  7442.   return length;
  7443. }
  7444.  
  7445.  
  7446. BOOL H248_NotifyReply::Decode(PASN_Stream & strm)
  7447. {
  7448.   if (!PreambleDecode(strm))
  7449.     return FALSE;
  7450.  
  7451.   if (!m_terminationID.Decode(strm))
  7452.     return FALSE;
  7453.   if (HasOptionalField(e_errorDescriptor) && !m_errorDescriptor.Decode(strm))
  7454.     return FALSE;
  7455.  
  7456.   return UnknownExtensionsDecode(strm);
  7457. }
  7458.  
  7459.  
  7460. void H248_NotifyReply::Encode(PASN_Stream & strm) const
  7461. {
  7462.   PreambleEncode(strm);
  7463.  
  7464.   m_terminationID.Encode(strm);
  7465.   if (HasOptionalField(e_errorDescriptor))
  7466.     m_errorDescriptor.Encode(strm);
  7467.  
  7468.   UnknownExtensionsEncode(strm);
  7469. }
  7470.  
  7471.  
  7472. PObject * H248_NotifyReply::Clone() const
  7473. {
  7474. #ifndef PASN_LEANANDMEAN
  7475.   PAssert(IsClass(H248_NotifyReply::Class()), PInvalidCast);
  7476. #endif
  7477.   return new H248_NotifyReply(*this);
  7478. }
  7479.  
  7480.  
  7481. //
  7482. // ObservedEventsDescriptor
  7483. //
  7484.  
  7485. H248_ObservedEventsDescriptor::H248_ObservedEventsDescriptor(unsigned tag, PASN_Object::TagClass tagClass)
  7486.   : PASN_Sequence(tag, tagClass, 0, FALSE, 0)
  7487. {
  7488. }
  7489.  
  7490.  
  7491. #ifndef PASN_NOPRINTON
  7492. void H248_ObservedEventsDescriptor::PrintOn(ostream & strm) const
  7493. {
  7494.   int indent = strm.precision() + 2;
  7495.   strm << "{\n";
  7496.   strm << setw(indent+12) << "requestId = " << setprecision(indent) << m_requestId << '\n';
  7497.   strm << setw(indent+19) << "observedEventLst = " << setprecision(indent) << m_observedEventLst << '\n';
  7498.   strm << setw(indent-1) << "}";
  7499. }
  7500. #endif
  7501.  
  7502.  
  7503. PObject::Comparison H248_ObservedEventsDescriptor::Compare(const PObject & obj) const
  7504. {
  7505. #ifndef PASN_LEANANDMEAN
  7506.   PAssert(IsDescendant(H248_ObservedEventsDescriptor::Class()), PInvalidCast);
  7507. #endif
  7508.   const H248_ObservedEventsDescriptor & other = (const H248_ObservedEventsDescriptor &)obj;
  7509.  
  7510.   Comparison result;
  7511.  
  7512.   if ((result = m_requestId.Compare(other.m_requestId)) != EqualTo)
  7513.     return result;
  7514.   if ((result = m_observedEventLst.Compare(other.m_observedEventLst)) != EqualTo)
  7515.     return result;
  7516.  
  7517.   return PASN_Sequence::Compare(other);
  7518. }
  7519.  
  7520.  
  7521. PINDEX H248_ObservedEventsDescriptor::GetDataLength() const
  7522. {
  7523.   PINDEX length = 0;
  7524.   length += m_requestId.GetObjectLength();
  7525.   length += m_observedEventLst.GetObjectLength();
  7526.   return length;
  7527. }
  7528.  
  7529.  
  7530. BOOL H248_ObservedEventsDescriptor::Decode(PASN_Stream & strm)
  7531. {
  7532.   if (!PreambleDecode(strm))
  7533.     return FALSE;
  7534.  
  7535.   if (!m_requestId.Decode(strm))
  7536.     return FALSE;
  7537.   if (!m_observedEventLst.Decode(strm))
  7538.     return FALSE;
  7539.  
  7540.   return UnknownExtensionsDecode(strm);
  7541. }
  7542.  
  7543.  
  7544. void H248_ObservedEventsDescriptor::Encode(PASN_Stream & strm) const
  7545. {
  7546.   PreambleEncode(strm);
  7547.  
  7548.   m_requestId.Encode(strm);
  7549.   m_observedEventLst.Encode(strm);
  7550.  
  7551.   UnknownExtensionsEncode(strm);
  7552. }
  7553.  
  7554.  
  7555. PObject * H248_ObservedEventsDescriptor::Clone() const
  7556. {
  7557. #ifndef PASN_LEANANDMEAN
  7558.   PAssert(IsClass(H248_ObservedEventsDescriptor::Class()), PInvalidCast);
  7559. #endif
  7560.   return new H248_ObservedEventsDescriptor(*this);
  7561. }
  7562.  
  7563.  
  7564. //
  7565. // EventName
  7566. //
  7567.  
  7568. H248_EventName::H248_EventName(unsigned tag, PASN_Object::TagClass tagClass)
  7569.   : H248_PkgdName(tag, tagClass)
  7570. {
  7571. }
  7572.  
  7573.  
  7574. H248_EventName::H248_EventName(const char * v)
  7575. {
  7576.   SetValue(v);
  7577. }
  7578.  
  7579.  
  7580. H248_EventName::H248_EventName(const PString & v)
  7581. {
  7582.   SetValue(v);
  7583. }
  7584.  
  7585.  
  7586. H248_EventName::H248_EventName(const PBYTEArray & v)
  7587. {
  7588.   SetValue(v);
  7589. }
  7590.  
  7591.  
  7592. H248_EventName & H248_EventName::operator=(const char * v)
  7593. {
  7594.   SetValue(v);
  7595.   return *this;
  7596. }
  7597.  
  7598.  
  7599. H248_EventName & H248_EventName::operator=(const PString & v)
  7600. {
  7601.   SetValue(v);
  7602.   return *this;
  7603. }
  7604.  
  7605.  
  7606. H248_EventName & H248_EventName::operator=(const PBYTEArray & v)
  7607. {
  7608.   SetValue(v);
  7609.   return *this;
  7610. }
  7611.  
  7612.  
  7613. PObject * H248_EventName::Clone() const
  7614. {
  7615. #ifndef PASN_LEANANDMEAN
  7616.   PAssert(IsClass(H248_EventName::Class()), PInvalidCast);
  7617. #endif
  7618.   return new H248_EventName(*this);
  7619. }
  7620.  
  7621.  
  7622. //
  7623. // EventParameter
  7624. //
  7625.  
  7626. H248_EventParameter::H248_EventParameter(unsigned tag, PASN_Object::TagClass tagClass)
  7627.   : PASN_Sequence(tag, tagClass, 1, TRUE, 0)
  7628. {
  7629. }
  7630.  
  7631.  
  7632. #ifndef PASN_NOPRINTON
  7633. void H248_EventParameter::PrintOn(ostream & strm) const
  7634. {
  7635.   int indent = strm.precision() + 2;
  7636.   strm << "{\n";
  7637.   strm << setw(indent+21) << "eventParameterName = " << setprecision(indent) << m_eventParameterName << '\n';
  7638.   strm << setw(indent+8) << "value = " << setprecision(indent) << m_value << '\n';
  7639.   if (HasOptionalField(e_extraInfo))
  7640.     strm << setw(indent+12) << "extraInfo = " << setprecision(indent) << m_extraInfo << '\n';
  7641.   strm << setw(indent-1) << "}";
  7642. }
  7643. #endif
  7644.  
  7645.  
  7646. PObject::Comparison H248_EventParameter::Compare(const PObject & obj) const
  7647. {
  7648. #ifndef PASN_LEANANDMEAN
  7649.   PAssert(IsDescendant(H248_EventParameter::Class()), PInvalidCast);
  7650. #endif
  7651.   const H248_EventParameter & other = (const H248_EventParameter &)obj;
  7652.  
  7653.   Comparison result;
  7654.  
  7655.   if ((result = m_eventParameterName.Compare(other.m_eventParameterName)) != EqualTo)
  7656.     return result;
  7657.   if ((result = m_value.Compare(other.m_value)) != EqualTo)
  7658.     return result;
  7659.   if ((result = m_extraInfo.Compare(other.m_extraInfo)) != EqualTo)
  7660.     return result;
  7661.  
  7662.   return PASN_Sequence::Compare(other);
  7663. }
  7664.  
  7665.  
  7666. PINDEX H248_EventParameter::GetDataLength() const
  7667. {
  7668.   PINDEX length = 0;
  7669.   length += m_eventParameterName.GetObjectLength();
  7670.   length += m_value.GetObjectLength();
  7671.   if (HasOptionalField(e_extraInfo))
  7672.     length += m_extraInfo.GetObjectLength();
  7673.   return length;
  7674. }
  7675.  
  7676.  
  7677. BOOL H248_EventParameter::Decode(PASN_Stream & strm)
  7678. {
  7679.   if (!PreambleDecode(strm))
  7680.     return FALSE;
  7681.  
  7682.   if (!m_eventParameterName.Decode(strm))
  7683.     return FALSE;
  7684.   if (!m_value.Decode(strm))
  7685.     return FALSE;
  7686.   if (HasOptionalField(e_extraInfo) && !m_extraInfo.Decode(strm))
  7687.     return FALSE;
  7688.  
  7689.   return UnknownExtensionsDecode(strm);
  7690. }
  7691.  
  7692.  
  7693. void H248_EventParameter::Encode(PASN_Stream & strm) const
  7694. {
  7695.   PreambleEncode(strm);
  7696.  
  7697.   m_eventParameterName.Encode(strm);
  7698.   m_value.Encode(strm);
  7699.   if (HasOptionalField(e_extraInfo))
  7700.     m_extraInfo.Encode(strm);
  7701.  
  7702.   UnknownExtensionsEncode(strm);
  7703. }
  7704.  
  7705.  
  7706. PObject * H248_EventParameter::Clone() const
  7707. {
  7708. #ifndef PASN_LEANANDMEAN
  7709.   PAssert(IsClass(H248_EventParameter::Class()), PInvalidCast);
  7710. #endif
  7711.   return new H248_EventParameter(*this);
  7712. }
  7713.  
  7714.  
  7715. //
  7716. // ServiceChangeReply
  7717. //
  7718.  
  7719. H248_ServiceChangeReply::H248_ServiceChangeReply(unsigned tag, PASN_Object::TagClass tagClass)
  7720.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  7721. {
  7722. }
  7723.  
  7724.  
  7725. #ifndef PASN_NOPRINTON
  7726. void H248_ServiceChangeReply::PrintOn(ostream & strm) const
  7727. {
  7728.   int indent = strm.precision() + 2;
  7729.   strm << "{\n";
  7730.   strm << setw(indent+16) << "terminationID = " << setprecision(indent) << m_terminationID << '\n';
  7731.   strm << setw(indent+22) << "serviceChangeResult = " << setprecision(indent) << m_serviceChangeResult << '\n';
  7732.   strm << setw(indent-1) << "}";
  7733. }
  7734. #endif
  7735.  
  7736.  
  7737. PObject::Comparison H248_ServiceChangeReply::Compare(const PObject & obj) const
  7738. {
  7739. #ifndef PASN_LEANANDMEAN
  7740.   PAssert(IsDescendant(H248_ServiceChangeReply::Class()), PInvalidCast);
  7741. #endif
  7742.   const H248_ServiceChangeReply & other = (const H248_ServiceChangeReply &)obj;
  7743.  
  7744.   Comparison result;
  7745.  
  7746.   if ((result = m_terminationID.Compare(other.m_terminationID)) != EqualTo)
  7747.     return result;
  7748.   if ((result = m_serviceChangeResult.Compare(other.m_serviceChangeResult)) != EqualTo)
  7749.     return result;
  7750.  
  7751.   return PASN_Sequence::Compare(other);
  7752. }
  7753.  
  7754.  
  7755. PINDEX H248_ServiceChangeReply::GetDataLength() const
  7756. {
  7757.   PINDEX length = 0;
  7758.   length += m_terminationID.GetObjectLength();
  7759.   length += m_serviceChangeResult.GetObjectLength();
  7760.   return length;
  7761. }
  7762.  
  7763.  
  7764. BOOL H248_ServiceChangeReply::Decode(PASN_Stream & strm)
  7765. {
  7766.   if (!PreambleDecode(strm))
  7767.     return FALSE;
  7768.  
  7769.   if (!m_terminationID.Decode(strm))
  7770.     return FALSE;
  7771.   if (!m_serviceChangeResult.Decode(strm))
  7772.     return FALSE;
  7773.  
  7774.   return UnknownExtensionsDecode(strm);
  7775. }
  7776.  
  7777.  
  7778. void H248_ServiceChangeReply::Encode(PASN_Stream & strm) const
  7779. {
  7780.   PreambleEncode(strm);
  7781.  
  7782.   m_terminationID.Encode(strm);
  7783.   m_serviceChangeResult.Encode(strm);
  7784.  
  7785.   UnknownExtensionsEncode(strm);
  7786. }
  7787.  
  7788.  
  7789. PObject * H248_ServiceChangeReply::Clone() const
  7790. {
  7791. #ifndef PASN_LEANANDMEAN
  7792.   PAssert(IsClass(H248_ServiceChangeReply::Class()), PInvalidCast);
  7793. #endif
  7794.   return new H248_ServiceChangeReply(*this);
  7795. }
  7796.  
  7797.  
  7798. //
  7799. // TerminationID
  7800. //
  7801.  
  7802. H248_TerminationID::H248_TerminationID(unsigned tag, PASN_Object::TagClass tagClass)
  7803.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  7804. {
  7805.   m_id.SetConstraints(PASN_Object::FixedConstraint, 1, 8);
  7806. }
  7807.  
  7808.  
  7809. #ifndef PASN_NOPRINTON
  7810. void H248_TerminationID::PrintOn(ostream & strm) const
  7811. {
  7812.   int indent = strm.precision() + 2;
  7813.   strm << "{\n";
  7814.   strm << setw(indent+11) << "wildcard = " << setprecision(indent) << m_wildcard << '\n';
  7815.   strm << setw(indent+5) << "id = " << setprecision(indent) << m_id << '\n';
  7816.   strm << setw(indent-1) << "}";
  7817. }
  7818. #endif
  7819.  
  7820.  
  7821. PObject::Comparison H248_TerminationID::Compare(const PObject & obj) const
  7822. {
  7823. #ifndef PASN_LEANANDMEAN
  7824.   PAssert(IsDescendant(H248_TerminationID::Class()), PInvalidCast);
  7825. #endif
  7826.   const H248_TerminationID & other = (const H248_TerminationID &)obj;
  7827.  
  7828.   Comparison result;
  7829.  
  7830.   if ((result = m_wildcard.Compare(other.m_wildcard)) != EqualTo)
  7831.     return result;
  7832.   if ((result = m_id.Compare(other.m_id)) != EqualTo)
  7833.     return result;
  7834.  
  7835.   return PASN_Sequence::Compare(other);
  7836. }
  7837.  
  7838.  
  7839. PINDEX H248_TerminationID::GetDataLength() const
  7840. {
  7841.   PINDEX length = 0;
  7842.   length += m_wildcard.GetObjectLength();
  7843.   length += m_id.GetObjectLength();
  7844.   return length;
  7845. }
  7846.  
  7847.  
  7848. BOOL H248_TerminationID::Decode(PASN_Stream & strm)
  7849. {
  7850.   if (!PreambleDecode(strm))
  7851.     return FALSE;
  7852.  
  7853.   if (!m_wildcard.Decode(strm))
  7854.     return FALSE;
  7855.   if (!m_id.Decode(strm))
  7856.     return FALSE;
  7857.  
  7858.   return UnknownExtensionsDecode(strm);
  7859. }
  7860.  
  7861.  
  7862. void H248_TerminationID::Encode(PASN_Stream & strm) const
  7863. {
  7864.   PreambleEncode(strm);
  7865.  
  7866.   m_wildcard.Encode(strm);
  7867.   m_id.Encode(strm);
  7868.  
  7869.   UnknownExtensionsEncode(strm);
  7870. }
  7871.  
  7872.  
  7873. PObject * H248_TerminationID::Clone() const
  7874. {
  7875. #ifndef PASN_LEANANDMEAN
  7876.   PAssert(IsClass(H248_TerminationID::Class()), PInvalidCast);
  7877. #endif
  7878.   return new H248_TerminationID(*this);
  7879. }
  7880.  
  7881.  
  7882. //
  7883. // LocalControlDescriptor
  7884. //
  7885.  
  7886. H248_LocalControlDescriptor::H248_LocalControlDescriptor(unsigned tag, PASN_Object::TagClass tagClass)
  7887.   : PASN_Sequence(tag, tagClass, 3, TRUE, 0)
  7888. {
  7889. }
  7890.  
  7891.  
  7892. #ifndef PASN_NOPRINTON
  7893. void H248_LocalControlDescriptor::PrintOn(ostream & strm) const
  7894. {
  7895.   int indent = strm.precision() + 2;
  7896.   strm << "{\n";
  7897.   if (HasOptionalField(e_streamMode))
  7898.     strm << setw(indent+13) << "streamMode = " << setprecision(indent) << m_streamMode << '\n';
  7899.   if (HasOptionalField(e_reserveValue))
  7900.     strm << setw(indent+15) << "reserveValue = " << setprecision(indent) << m_reserveValue << '\n';
  7901.   if (HasOptionalField(e_reserveGroup))
  7902.     strm << setw(indent+15) << "reserveGroup = " << setprecision(indent) << m_reserveGroup << '\n';
  7903.   strm << setw(indent+16) << "propertyParms = " << setprecision(indent) << m_propertyParms << '\n';
  7904.   strm << setw(indent-1) << "}";
  7905. }
  7906. #endif
  7907.  
  7908.  
  7909. PObject::Comparison H248_LocalControlDescriptor::Compare(const PObject & obj) const
  7910. {
  7911. #ifndef PASN_LEANANDMEAN
  7912.   PAssert(IsDescendant(H248_LocalControlDescriptor::Class()), PInvalidCast);
  7913. #endif
  7914.   const H248_LocalControlDescriptor & other = (const H248_LocalControlDescriptor &)obj;
  7915.  
  7916.   Comparison result;
  7917.  
  7918.   if ((result = m_streamMode.Compare(other.m_streamMode)) != EqualTo)
  7919.     return result;
  7920.   if ((result = m_reserveValue.Compare(other.m_reserveValue)) != EqualTo)
  7921.     return result;
  7922.   if ((result = m_reserveGroup.Compare(other.m_reserveGroup)) != EqualTo)
  7923.     return result;
  7924.   if ((result = m_propertyParms.Compare(other.m_propertyParms)) != EqualTo)
  7925.     return result;
  7926.  
  7927.   return PASN_Sequence::Compare(other);
  7928. }
  7929.  
  7930.  
  7931. PINDEX H248_LocalControlDescriptor::GetDataLength() const
  7932. {
  7933.   PINDEX length = 0;
  7934.   if (HasOptionalField(e_streamMode))
  7935.     length += m_streamMode.GetObjectLength();
  7936.   if (HasOptionalField(e_reserveValue))
  7937.     length += m_reserveValue.GetObjectLength();
  7938.   if (HasOptionalField(e_reserveGroup))
  7939.     length += m_reserveGroup.GetObjectLength();
  7940.   length += m_propertyParms.GetObjectLength();
  7941.   return length;
  7942. }
  7943.  
  7944.  
  7945. BOOL H248_LocalControlDescriptor::Decode(PASN_Stream & strm)
  7946. {
  7947.   if (!PreambleDecode(strm))
  7948.     return FALSE;
  7949.  
  7950.   if (HasOptionalField(e_streamMode) && !m_streamMode.Decode(strm))
  7951.     return FALSE;
  7952.   if (HasOptionalField(e_reserveValue) && !m_reserveValue.Decode(strm))
  7953.     return FALSE;
  7954.   if (HasOptionalField(e_reserveGroup) && !m_reserveGroup.Decode(strm))
  7955.     return FALSE;
  7956.   if (!m_propertyParms.Decode(strm))
  7957.     return FALSE;
  7958.  
  7959.   return UnknownExtensionsDecode(strm);
  7960. }
  7961.  
  7962.  
  7963. void H248_LocalControlDescriptor::Encode(PASN_Stream & strm) const
  7964. {
  7965.   PreambleEncode(strm);
  7966.  
  7967.   if (HasOptionalField(e_streamMode))
  7968.     m_streamMode.Encode(strm);
  7969.   if (HasOptionalField(e_reserveValue))
  7970.     m_reserveValue.Encode(strm);
  7971.   if (HasOptionalField(e_reserveGroup))
  7972.     m_reserveGroup.Encode(strm);
  7973.   m_propertyParms.Encode(strm);
  7974.  
  7975.   UnknownExtensionsEncode(strm);
  7976. }
  7977.  
  7978.  
  7979. PObject * H248_LocalControlDescriptor::Clone() const
  7980. {
  7981. #ifndef PASN_LEANANDMEAN
  7982.   PAssert(IsClass(H248_LocalControlDescriptor::Class()), PInvalidCast);
  7983. #endif
  7984.   return new H248_LocalControlDescriptor(*this);
  7985. }
  7986.  
  7987.  
  7988. //
  7989. // PropertyParm
  7990. //
  7991.  
  7992. H248_PropertyParm::H248_PropertyParm(unsigned tag, PASN_Object::TagClass tagClass)
  7993.   : PASN_Sequence(tag, tagClass, 1, TRUE, 0)
  7994. {
  7995. }
  7996.  
  7997.  
  7998. #ifndef PASN_NOPRINTON
  7999. void H248_PropertyParm::PrintOn(ostream & strm) const
  8000. {
  8001.   int indent = strm.precision() + 2;
  8002.   strm << "{\n";
  8003.   strm << setw(indent+7) << "name = " << setprecision(indent) << m_name << '\n';
  8004.   strm << setw(indent+8) << "value = " << setprecision(indent) << m_value << '\n';
  8005.   if (HasOptionalField(e_extraInfo))
  8006.     strm << setw(indent+12) << "extraInfo = " << setprecision(indent) << m_extraInfo << '\n';
  8007.   strm << setw(indent-1) << "}";
  8008. }
  8009. #endif
  8010.  
  8011.  
  8012. PObject::Comparison H248_PropertyParm::Compare(const PObject & obj) const
  8013. {
  8014. #ifndef PASN_LEANANDMEAN
  8015.   PAssert(IsDescendant(H248_PropertyParm::Class()), PInvalidCast);
  8016. #endif
  8017.   const H248_PropertyParm & other = (const H248_PropertyParm &)obj;
  8018.  
  8019.   Comparison result;
  8020.  
  8021.   if ((result = m_name.Compare(other.m_name)) != EqualTo)
  8022.     return result;
  8023.   if ((result = m_value.Compare(other.m_value)) != EqualTo)
  8024.     return result;
  8025.   if ((result = m_extraInfo.Compare(other.m_extraInfo)) != EqualTo)
  8026.     return result;
  8027.  
  8028.   return PASN_Sequence::Compare(other);
  8029. }
  8030.  
  8031.  
  8032. PINDEX H248_PropertyParm::GetDataLength() const
  8033. {
  8034.   PINDEX length = 0;
  8035.   length += m_name.GetObjectLength();
  8036.   length += m_value.GetObjectLength();
  8037.   if (HasOptionalField(e_extraInfo))
  8038.     length += m_extraInfo.GetObjectLength();
  8039.   return length;
  8040. }
  8041.  
  8042.  
  8043. BOOL H248_PropertyParm::Decode(PASN_Stream & strm)
  8044. {
  8045.   if (!PreambleDecode(strm))
  8046.     return FALSE;
  8047.  
  8048.   if (!m_name.Decode(strm))
  8049.     return FALSE;
  8050.   if (!m_value.Decode(strm))
  8051.     return FALSE;
  8052.   if (HasOptionalField(e_extraInfo) && !m_extraInfo.Decode(strm))
  8053.     return FALSE;
  8054.  
  8055.   return UnknownExtensionsDecode(strm);
  8056. }
  8057.  
  8058.  
  8059. void H248_PropertyParm::Encode(PASN_Stream & strm) const
  8060. {
  8061.   PreambleEncode(strm);
  8062.  
  8063.   m_name.Encode(strm);
  8064.   m_value.Encode(strm);
  8065.   if (HasOptionalField(e_extraInfo))
  8066.     m_extraInfo.Encode(strm);
  8067.  
  8068.   UnknownExtensionsEncode(strm);
  8069. }
  8070.  
  8071.  
  8072. PObject * H248_PropertyParm::Clone() const
  8073. {
  8074. #ifndef PASN_LEANANDMEAN
  8075.   PAssert(IsClass(H248_PropertyParm::Class()), PInvalidCast);
  8076. #endif
  8077.   return new H248_PropertyParm(*this);
  8078. }
  8079.  
  8080.  
  8081. //
  8082. // LocalRemoteDescriptor
  8083. //
  8084.  
  8085. H248_LocalRemoteDescriptor::H248_LocalRemoteDescriptor(unsigned tag, PASN_Object::TagClass tagClass)
  8086.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  8087. {
  8088. }
  8089.  
  8090.  
  8091. #ifndef PASN_NOPRINTON
  8092. void H248_LocalRemoteDescriptor::PrintOn(ostream & strm) const
  8093. {
  8094.   int indent = strm.precision() + 2;
  8095.   strm << "{\n";
  8096.   strm << setw(indent+11) << "propGrps = " << setprecision(indent) << m_propGrps << '\n';
  8097.   strm << setw(indent-1) << "}";
  8098. }
  8099. #endif
  8100.  
  8101.  
  8102. PObject::Comparison H248_LocalRemoteDescriptor::Compare(const PObject & obj) const
  8103. {
  8104. #ifndef PASN_LEANANDMEAN
  8105.   PAssert(IsDescendant(H248_LocalRemoteDescriptor::Class()), PInvalidCast);
  8106. #endif
  8107.   const H248_LocalRemoteDescriptor & other = (const H248_LocalRemoteDescriptor &)obj;
  8108.  
  8109.   Comparison result;
  8110.  
  8111.   if ((result = m_propGrps.Compare(other.m_propGrps)) != EqualTo)
  8112.     return result;
  8113.  
  8114.   return PASN_Sequence::Compare(other);
  8115. }
  8116.  
  8117.  
  8118. PINDEX H248_LocalRemoteDescriptor::GetDataLength() const
  8119. {
  8120.   PINDEX length = 0;
  8121.   length += m_propGrps.GetObjectLength();
  8122.   return length;
  8123. }
  8124.  
  8125.  
  8126. BOOL H248_LocalRemoteDescriptor::Decode(PASN_Stream & strm)
  8127. {
  8128.   if (!PreambleDecode(strm))
  8129.     return FALSE;
  8130.  
  8131.   if (!m_propGrps.Decode(strm))
  8132.     return FALSE;
  8133.  
  8134.   return UnknownExtensionsDecode(strm);
  8135. }
  8136.  
  8137.  
  8138. void H248_LocalRemoteDescriptor::Encode(PASN_Stream & strm) const
  8139. {
  8140.   PreambleEncode(strm);
  8141.  
  8142.   m_propGrps.Encode(strm);
  8143.  
  8144.   UnknownExtensionsEncode(strm);
  8145. }
  8146.  
  8147.  
  8148. PObject * H248_LocalRemoteDescriptor::Clone() const
  8149. {
  8150. #ifndef PASN_LEANANDMEAN
  8151.   PAssert(IsClass(H248_LocalRemoteDescriptor::Class()), PInvalidCast);
  8152. #endif
  8153.   return new H248_LocalRemoteDescriptor(*this);
  8154. }
  8155.  
  8156.  
  8157. //
  8158. // TerminationStateDescriptor
  8159. //
  8160.  
  8161. H248_TerminationStateDescriptor::H248_TerminationStateDescriptor(unsigned tag, PASN_Object::TagClass tagClass)
  8162.   : PASN_Sequence(tag, tagClass, 2, TRUE, 0)
  8163. {
  8164. }
  8165.  
  8166.  
  8167. #ifndef PASN_NOPRINTON
  8168. void H248_TerminationStateDescriptor::PrintOn(ostream & strm) const
  8169. {
  8170.   int indent = strm.precision() + 2;
  8171.   strm << "{\n";
  8172.   strm << setw(indent+16) << "propertyParms = " << setprecision(indent) << m_propertyParms << '\n';
  8173.   if (HasOptionalField(e_eventBufferControl))
  8174.     strm << setw(indent+21) << "eventBufferControl = " << setprecision(indent) << m_eventBufferControl << '\n';
  8175.   if (HasOptionalField(e_serviceState))
  8176.     strm << setw(indent+15) << "serviceState = " << setprecision(indent) << m_serviceState << '\n';
  8177.   strm << setw(indent-1) << "}";
  8178. }
  8179. #endif
  8180.  
  8181.  
  8182. PObject::Comparison H248_TerminationStateDescriptor::Compare(const PObject & obj) const
  8183. {
  8184. #ifndef PASN_LEANANDMEAN
  8185.   PAssert(IsDescendant(H248_TerminationStateDescriptor::Class()), PInvalidCast);
  8186. #endif
  8187.   const H248_TerminationStateDescriptor & other = (const H248_TerminationStateDescriptor &)obj;
  8188.  
  8189.   Comparison result;
  8190.  
  8191.   if ((result = m_propertyParms.Compare(other.m_propertyParms)) != EqualTo)
  8192.     return result;
  8193.   if ((result = m_eventBufferControl.Compare(other.m_eventBufferControl)) != EqualTo)
  8194.     return result;
  8195.   if ((result = m_serviceState.Compare(other.m_serviceState)) != EqualTo)
  8196.     return result;
  8197.  
  8198.   return PASN_Sequence::Compare(other);
  8199. }
  8200.  
  8201.  
  8202. PINDEX H248_TerminationStateDescriptor::GetDataLength() const
  8203. {
  8204.   PINDEX length = 0;
  8205.   length += m_propertyParms.GetObjectLength();
  8206.   if (HasOptionalField(e_eventBufferControl))
  8207.     length += m_eventBufferControl.GetObjectLength();
  8208.   if (HasOptionalField(e_serviceState))
  8209.     length += m_serviceState.GetObjectLength();
  8210.   return length;
  8211. }
  8212.  
  8213.  
  8214. BOOL H248_TerminationStateDescriptor::Decode(PASN_Stream & strm)
  8215. {
  8216.   if (!PreambleDecode(strm))
  8217.     return FALSE;
  8218.  
  8219.   if (!m_propertyParms.Decode(strm))
  8220.     return FALSE;
  8221.   if (HasOptionalField(e_eventBufferControl) && !m_eventBufferControl.Decode(strm))
  8222.     return FALSE;
  8223.   if (HasOptionalField(e_serviceState) && !m_serviceState.Decode(strm))
  8224.     return FALSE;
  8225.  
  8226.   return UnknownExtensionsDecode(strm);
  8227. }
  8228.  
  8229.  
  8230. void H248_TerminationStateDescriptor::Encode(PASN_Stream & strm) const
  8231. {
  8232.   PreambleEncode(strm);
  8233.  
  8234.   m_propertyParms.Encode(strm);
  8235.   if (HasOptionalField(e_eventBufferControl))
  8236.     m_eventBufferControl.Encode(strm);
  8237.   if (HasOptionalField(e_serviceState))
  8238.     m_serviceState.Encode(strm);
  8239.  
  8240.   UnknownExtensionsEncode(strm);
  8241. }
  8242.  
  8243.  
  8244. PObject * H248_TerminationStateDescriptor::Clone() const
  8245. {
  8246. #ifndef PASN_LEANANDMEAN
  8247.   PAssert(IsClass(H248_TerminationStateDescriptor::Class()), PInvalidCast);
  8248. #endif
  8249.   return new H248_TerminationStateDescriptor(*this);
  8250. }
  8251.  
  8252.  
  8253. //
  8254. // EventsDescriptor
  8255. //
  8256.  
  8257. H248_EventsDescriptor::H248_EventsDescriptor(unsigned tag, PASN_Object::TagClass tagClass)
  8258.   : PASN_Sequence(tag, tagClass, 1, TRUE, 0)
  8259. {
  8260. }
  8261.  
  8262.  
  8263. #ifndef PASN_NOPRINTON
  8264. void H248_EventsDescriptor::PrintOn(ostream & strm) const
  8265. {
  8266.   int indent = strm.precision() + 2;
  8267.   strm << "{\n";
  8268.   if (HasOptionalField(e_requestID))
  8269.     strm << setw(indent+12) << "requestID = " << setprecision(indent) << m_requestID << '\n';
  8270.   strm << setw(indent+12) << "eventList = " << setprecision(indent) << m_eventList << '\n';
  8271.   strm << setw(indent-1) << "}";
  8272. }
  8273. #endif
  8274.  
  8275.  
  8276. PObject::Comparison H248_EventsDescriptor::Compare(const PObject & obj) const
  8277. {
  8278. #ifndef PASN_LEANANDMEAN
  8279.   PAssert(IsDescendant(H248_EventsDescriptor::Class()), PInvalidCast);
  8280. #endif
  8281.   const H248_EventsDescriptor & other = (const H248_EventsDescriptor &)obj;
  8282.  
  8283.   Comparison result;
  8284.  
  8285.   if ((result = m_requestID.Compare(other.m_requestID)) != EqualTo)
  8286.     return result;
  8287.   if ((result = m_eventList.Compare(other.m_eventList)) != EqualTo)
  8288.     return result;
  8289.  
  8290.   return PASN_Sequence::Compare(other);
  8291. }
  8292.  
  8293.  
  8294. PINDEX H248_EventsDescriptor::GetDataLength() const
  8295. {
  8296.   PINDEX length = 0;
  8297.   if (HasOptionalField(e_requestID))
  8298.     length += m_requestID.GetObjectLength();
  8299.   length += m_eventList.GetObjectLength();
  8300.   return length;
  8301. }
  8302.  
  8303.  
  8304. BOOL H248_EventsDescriptor::Decode(PASN_Stream & strm)
  8305. {
  8306.   if (!PreambleDecode(strm))
  8307.     return FALSE;
  8308.  
  8309.   if (HasOptionalField(e_requestID) && !m_requestID.Decode(strm))
  8310.     return FALSE;
  8311.   if (!m_eventList.Decode(strm))
  8312.     return FALSE;
  8313.  
  8314.   return UnknownExtensionsDecode(strm);
  8315. }
  8316.  
  8317.  
  8318. void H248_EventsDescriptor::Encode(PASN_Stream & strm) const
  8319. {
  8320.   PreambleEncode(strm);
  8321.  
  8322.   if (HasOptionalField(e_requestID))
  8323.     m_requestID.Encode(strm);
  8324.   m_eventList.Encode(strm);
  8325.  
  8326.   UnknownExtensionsEncode(strm);
  8327. }
  8328.  
  8329.  
  8330. PObject * H248_EventsDescriptor::Clone() const
  8331. {
  8332. #ifndef PASN_LEANANDMEAN
  8333.   PAssert(IsClass(H248_EventsDescriptor::Class()), PInvalidCast);
  8334. #endif
  8335.   return new H248_EventsDescriptor(*this);
  8336. }
  8337.  
  8338.  
  8339. //
  8340. // SecondEventsDescriptor
  8341. //
  8342.  
  8343. H248_SecondEventsDescriptor::H248_SecondEventsDescriptor(unsigned tag, PASN_Object::TagClass tagClass)
  8344.   : PASN_Sequence(tag, tagClass, 1, TRUE, 0)
  8345. {
  8346. }
  8347.  
  8348.  
  8349. #ifndef PASN_NOPRINTON
  8350. void H248_SecondEventsDescriptor::PrintOn(ostream & strm) const
  8351. {
  8352.   int indent = strm.precision() + 2;
  8353.   strm << "{\n";
  8354.   if (HasOptionalField(e_requestID))
  8355.     strm << setw(indent+12) << "requestID = " << setprecision(indent) << m_requestID << '\n';
  8356.   strm << setw(indent+12) << "eventList = " << setprecision(indent) << m_eventList << '\n';
  8357.   strm << setw(indent-1) << "}";
  8358. }
  8359. #endif
  8360.  
  8361.  
  8362. PObject::Comparison H248_SecondEventsDescriptor::Compare(const PObject & obj) const
  8363. {
  8364. #ifndef PASN_LEANANDMEAN
  8365.   PAssert(IsDescendant(H248_SecondEventsDescriptor::Class()), PInvalidCast);
  8366. #endif
  8367.   const H248_SecondEventsDescriptor & other = (const H248_SecondEventsDescriptor &)obj;
  8368.  
  8369.   Comparison result;
  8370.  
  8371.   if ((result = m_requestID.Compare(other.m_requestID)) != EqualTo)
  8372.     return result;
  8373.   if ((result = m_eventList.Compare(other.m_eventList)) != EqualTo)
  8374.     return result;
  8375.  
  8376.   return PASN_Sequence::Compare(other);
  8377. }
  8378.  
  8379.  
  8380. PINDEX H248_SecondEventsDescriptor::GetDataLength() const
  8381. {
  8382.   PINDEX length = 0;
  8383.   if (HasOptionalField(e_requestID))
  8384.     length += m_requestID.GetObjectLength();
  8385.   length += m_eventList.GetObjectLength();
  8386.   return length;
  8387. }
  8388.  
  8389.  
  8390. BOOL H248_SecondEventsDescriptor::Decode(PASN_Stream & strm)
  8391. {
  8392.   if (!PreambleDecode(strm))
  8393.     return FALSE;
  8394.  
  8395.   if (HasOptionalField(e_requestID) && !m_requestID.Decode(strm))
  8396.     return FALSE;
  8397.   if (!m_eventList.Decode(strm))
  8398.     return FALSE;
  8399.  
  8400.   return UnknownExtensionsDecode(strm);
  8401. }
  8402.  
  8403.  
  8404. void H248_SecondEventsDescriptor::Encode(PASN_Stream & strm) const
  8405. {
  8406.   PreambleEncode(strm);
  8407.  
  8408.   if (HasOptionalField(e_requestID))
  8409.     m_requestID.Encode(strm);
  8410.   m_eventList.Encode(strm);
  8411.  
  8412.   UnknownExtensionsEncode(strm);
  8413. }
  8414.  
  8415.  
  8416. PObject * H248_SecondEventsDescriptor::Clone() const
  8417. {
  8418. #ifndef PASN_LEANANDMEAN
  8419.   PAssert(IsClass(H248_SecondEventsDescriptor::Class()), PInvalidCast);
  8420. #endif
  8421.   return new H248_SecondEventsDescriptor(*this);
  8422. }
  8423.  
  8424.  
  8425. //
  8426. // SecondRequestedActions
  8427. //
  8428.  
  8429. H248_SecondRequestedActions::H248_SecondRequestedActions(unsigned tag, PASN_Object::TagClass tagClass)
  8430.   : PASN_Sequence(tag, tagClass, 3, TRUE, 0)
  8431. {
  8432. }
  8433.  
  8434.  
  8435. #ifndef PASN_NOPRINTON
  8436. void H248_SecondRequestedActions::PrintOn(ostream & strm) const
  8437. {
  8438.   int indent = strm.precision() + 2;
  8439.   strm << "{\n";
  8440.   if (HasOptionalField(e_keepActive))
  8441.     strm << setw(indent+13) << "keepActive = " << setprecision(indent) << m_keepActive << '\n';
  8442.   if (HasOptionalField(e_eventDM))
  8443.     strm << setw(indent+10) << "eventDM = " << setprecision(indent) << m_eventDM << '\n';
  8444.   if (HasOptionalField(e_signalsDescriptor))
  8445.     strm << setw(indent+20) << "signalsDescriptor = " << setprecision(indent) << m_signalsDescriptor << '\n';
  8446.   strm << setw(indent-1) << "}";
  8447. }
  8448. #endif
  8449.  
  8450.  
  8451. PObject::Comparison H248_SecondRequestedActions::Compare(const PObject & obj) const
  8452. {
  8453. #ifndef PASN_LEANANDMEAN
  8454.   PAssert(IsDescendant(H248_SecondRequestedActions::Class()), PInvalidCast);
  8455. #endif
  8456.   const H248_SecondRequestedActions & other = (const H248_SecondRequestedActions &)obj;
  8457.  
  8458.   Comparison result;
  8459.  
  8460.   if ((result = m_keepActive.Compare(other.m_keepActive)) != EqualTo)
  8461.     return result;
  8462.   if ((result = m_eventDM.Compare(other.m_eventDM)) != EqualTo)
  8463.     return result;
  8464.   if ((result = m_signalsDescriptor.Compare(other.m_signalsDescriptor)) != EqualTo)
  8465.     return result;
  8466.  
  8467.   return PASN_Sequence::Compare(other);
  8468. }
  8469.  
  8470.  
  8471. PINDEX H248_SecondRequestedActions::GetDataLength() const
  8472. {
  8473.   PINDEX length = 0;
  8474.   if (HasOptionalField(e_keepActive))
  8475.     length += m_keepActive.GetObjectLength();
  8476.   if (HasOptionalField(e_eventDM))
  8477.     length += m_eventDM.GetObjectLength();
  8478.   if (HasOptionalField(e_signalsDescriptor))
  8479.     length += m_signalsDescriptor.GetObjectLength();
  8480.   return length;
  8481. }
  8482.  
  8483.  
  8484. BOOL H248_SecondRequestedActions::Decode(PASN_Stream & strm)
  8485. {
  8486.   if (!PreambleDecode(strm))
  8487.     return FALSE;
  8488.  
  8489.   if (HasOptionalField(e_keepActive) && !m_keepActive.Decode(strm))
  8490.     return FALSE;
  8491.   if (HasOptionalField(e_eventDM) && !m_eventDM.Decode(strm))
  8492.     return FALSE;
  8493.   if (HasOptionalField(e_signalsDescriptor) && !m_signalsDescriptor.Decode(strm))
  8494.     return FALSE;
  8495.  
  8496.   return UnknownExtensionsDecode(strm);
  8497. }
  8498.  
  8499.  
  8500. void H248_SecondRequestedActions::Encode(PASN_Stream & strm) const
  8501. {
  8502.   PreambleEncode(strm);
  8503.  
  8504.   if (HasOptionalField(e_keepActive))
  8505.     m_keepActive.Encode(strm);
  8506.   if (HasOptionalField(e_eventDM))
  8507.     m_eventDM.Encode(strm);
  8508.   if (HasOptionalField(e_signalsDescriptor))
  8509.     m_signalsDescriptor.Encode(strm);
  8510.  
  8511.   UnknownExtensionsEncode(strm);
  8512. }
  8513.  
  8514.  
  8515. PObject * H248_SecondRequestedActions::Clone() const
  8516. {
  8517. #ifndef PASN_LEANANDMEAN
  8518.   PAssert(IsClass(H248_SecondRequestedActions::Class()), PInvalidCast);
  8519. #endif
  8520.   return new H248_SecondRequestedActions(*this);
  8521. }
  8522.  
  8523.  
  8524. //
  8525. // EventSpec
  8526. //
  8527.  
  8528. H248_EventSpec::H248_EventSpec(unsigned tag, PASN_Object::TagClass tagClass)
  8529.   : PASN_Sequence(tag, tagClass, 1, TRUE, 0)
  8530. {
  8531. }
  8532.  
  8533.  
  8534. #ifndef PASN_NOPRINTON
  8535. void H248_EventSpec::PrintOn(ostream & strm) const
  8536. {
  8537.   int indent = strm.precision() + 2;
  8538.   strm << "{\n";
  8539.   strm << setw(indent+12) << "eventName = " << setprecision(indent) << m_eventName << '\n';
  8540.   if (HasOptionalField(e_streamID))
  8541.     strm << setw(indent+11) << "streamID = " << setprecision(indent) << m_streamID << '\n';
  8542.   strm << setw(indent+15) << "eventParList = " << setprecision(indent) << m_eventParList << '\n';
  8543.   strm << setw(indent-1) << "}";
  8544. }
  8545. #endif
  8546.  
  8547.  
  8548. PObject::Comparison H248_EventSpec::Compare(const PObject & obj) const
  8549. {
  8550. #ifndef PASN_LEANANDMEAN
  8551.   PAssert(IsDescendant(H248_EventSpec::Class()), PInvalidCast);
  8552. #endif
  8553.   const H248_EventSpec & other = (const H248_EventSpec &)obj;
  8554.  
  8555.   Comparison result;
  8556.  
  8557.   if ((result = m_eventName.Compare(other.m_eventName)) != EqualTo)
  8558.     return result;
  8559.   if ((result = m_streamID.Compare(other.m_streamID)) != EqualTo)
  8560.     return result;
  8561.   if ((result = m_eventParList.Compare(other.m_eventParList)) != EqualTo)
  8562.     return result;
  8563.  
  8564.   return PASN_Sequence::Compare(other);
  8565. }
  8566.  
  8567.  
  8568. PINDEX H248_EventSpec::GetDataLength() const
  8569. {
  8570.   PINDEX length = 0;
  8571.   length += m_eventName.GetObjectLength();
  8572.   if (HasOptionalField(e_streamID))
  8573.     length += m_streamID.GetObjectLength();
  8574.   length += m_eventParList.GetObjectLength();
  8575.   return length;
  8576. }
  8577.  
  8578.  
  8579. BOOL H248_EventSpec::Decode(PASN_Stream & strm)
  8580. {
  8581.   if (!PreambleDecode(strm))
  8582.     return FALSE;
  8583.  
  8584.   if (!m_eventName.Decode(strm))
  8585.     return FALSE;
  8586.   if (HasOptionalField(e_streamID) && !m_streamID.Decode(strm))
  8587.     return FALSE;
  8588.   if (!m_eventParList.Decode(strm))
  8589.     return FALSE;
  8590.  
  8591.   return UnknownExtensionsDecode(strm);
  8592. }
  8593.  
  8594.  
  8595. void H248_EventSpec::Encode(PASN_Stream & strm) const
  8596. {
  8597.   PreambleEncode(strm);
  8598.  
  8599.   m_eventName.Encode(strm);
  8600.   if (HasOptionalField(e_streamID))
  8601.     m_streamID.Encode(strm);
  8602.   m_eventParList.Encode(strm);
  8603.  
  8604.   UnknownExtensionsEncode(strm);
  8605. }
  8606.  
  8607.  
  8608. PObject * H248_EventSpec::Clone() const
  8609. {
  8610. #ifndef PASN_LEANANDMEAN
  8611.   PAssert(IsClass(H248_EventSpec::Class()), PInvalidCast);
  8612. #endif
  8613.   return new H248_EventSpec(*this);
  8614. }
  8615.  
  8616.  
  8617. //
  8618. // SeqSigList
  8619. //
  8620.  
  8621. H248_SeqSigList::H248_SeqSigList(unsigned tag, PASN_Object::TagClass tagClass)
  8622.   : PASN_Sequence(tag, tagClass, 0, FALSE, 0)
  8623. {
  8624.   m_id.SetConstraints(PASN_Object::FixedConstraint, 0, 65535);
  8625. }
  8626.  
  8627.  
  8628. #ifndef PASN_NOPRINTON
  8629. void H248_SeqSigList::PrintOn(ostream & strm) const
  8630. {
  8631.   int indent = strm.precision() + 2;
  8632.   strm << "{\n";
  8633.   strm << setw(indent+5) << "id = " << setprecision(indent) << m_id << '\n';
  8634.   strm << setw(indent+13) << "signalList = " << setprecision(indent) << m_signalList << '\n';
  8635.   strm << setw(indent-1) << "}";
  8636. }
  8637. #endif
  8638.  
  8639.  
  8640. PObject::Comparison H248_SeqSigList::Compare(const PObject & obj) const
  8641. {
  8642. #ifndef PASN_LEANANDMEAN
  8643.   PAssert(IsDescendant(H248_SeqSigList::Class()), PInvalidCast);
  8644. #endif
  8645.   const H248_SeqSigList & other = (const H248_SeqSigList &)obj;
  8646.  
  8647.   Comparison result;
  8648.  
  8649.   if ((result = m_id.Compare(other.m_id)) != EqualTo)
  8650.     return result;
  8651.   if ((result = m_signalList.Compare(other.m_signalList)) != EqualTo)
  8652.     return result;
  8653.  
  8654.   return PASN_Sequence::Compare(other);
  8655. }
  8656.  
  8657.  
  8658. PINDEX H248_SeqSigList::GetDataLength() const
  8659. {
  8660.   PINDEX length = 0;
  8661.   length += m_id.GetObjectLength();
  8662.   length += m_signalList.GetObjectLength();
  8663.   return length;
  8664. }
  8665.  
  8666.  
  8667. BOOL H248_SeqSigList::Decode(PASN_Stream & strm)
  8668. {
  8669.   if (!PreambleDecode(strm))
  8670.     return FALSE;
  8671.  
  8672.   if (!m_id.Decode(strm))
  8673.     return FALSE;
  8674.   if (!m_signalList.Decode(strm))
  8675.     return FALSE;
  8676.  
  8677.   return UnknownExtensionsDecode(strm);
  8678. }
  8679.  
  8680.  
  8681. void H248_SeqSigList::Encode(PASN_Stream & strm) const
  8682. {
  8683.   PreambleEncode(strm);
  8684.  
  8685.   m_id.Encode(strm);
  8686.   m_signalList.Encode(strm);
  8687.  
  8688.   UnknownExtensionsEncode(strm);
  8689. }
  8690.  
  8691.  
  8692. PObject * H248_SeqSigList::Clone() const
  8693. {
  8694. #ifndef PASN_LEANANDMEAN
  8695.   PAssert(IsClass(H248_SeqSigList::Class()), PInvalidCast);
  8696. #endif
  8697.   return new H248_SeqSigList(*this);
  8698. }
  8699.  
  8700.  
  8701. //
  8702. // Signal
  8703. //
  8704.  
  8705. H248_Signal::H248_Signal(unsigned tag, PASN_Object::TagClass tagClass)
  8706.   : PASN_Sequence(tag, tagClass, 5, TRUE, 0)
  8707. {
  8708.   m_duration.SetConstraints(PASN_Object::FixedConstraint, 0, 65535);
  8709. }
  8710.  
  8711.  
  8712. #ifndef PASN_NOPRINTON
  8713. void H248_Signal::PrintOn(ostream & strm) const
  8714. {
  8715.   int indent = strm.precision() + 2;
  8716.   strm << "{\n";
  8717.   strm << setw(indent+13) << "signalName = " << setprecision(indent) << m_signalName << '\n';
  8718.   if (HasOptionalField(e_streamID))
  8719.     strm << setw(indent+11) << "streamID = " << setprecision(indent) << m_streamID << '\n';
  8720.   if (HasOptionalField(e_sigType))
  8721.     strm << setw(indent+10) << "sigType = " << setprecision(indent) << m_sigType << '\n';
  8722.   if (HasOptionalField(e_duration))
  8723.     strm << setw(indent+11) << "duration = " << setprecision(indent) << m_duration << '\n';
  8724.   if (HasOptionalField(e_notifyCompletion))
  8725.     strm << setw(indent+19) << "notifyCompletion = " << setprecision(indent) << m_notifyCompletion << '\n';
  8726.   if (HasOptionalField(e_keepActive))
  8727.     strm << setw(indent+13) << "keepActive = " << setprecision(indent) << m_keepActive << '\n';
  8728.   strm << setw(indent+13) << "sigParList = " << setprecision(indent) << m_sigParList << '\n';
  8729.   strm << setw(indent-1) << "}";
  8730. }
  8731. #endif
  8732.  
  8733.  
  8734. PObject::Comparison H248_Signal::Compare(const PObject & obj) const
  8735. {
  8736. #ifndef PASN_LEANANDMEAN
  8737.   PAssert(IsDescendant(H248_Signal::Class()), PInvalidCast);
  8738. #endif
  8739.   const H248_Signal & other = (const H248_Signal &)obj;
  8740.  
  8741.   Comparison result;
  8742.  
  8743.   if ((result = m_signalName.Compare(other.m_signalName)) != EqualTo)
  8744.     return result;
  8745.   if ((result = m_streamID.Compare(other.m_streamID)) != EqualTo)
  8746.     return result;
  8747.   if ((result = m_sigType.Compare(other.m_sigType)) != EqualTo)
  8748.     return result;
  8749.   if ((result = m_duration.Compare(other.m_duration)) != EqualTo)
  8750.     return result;
  8751.   if ((result = m_notifyCompletion.Compare(other.m_notifyCompletion)) != EqualTo)
  8752.     return result;
  8753.   if ((result = m_keepActive.Compare(other.m_keepActive)) != EqualTo)
  8754.     return result;
  8755.   if ((result = m_sigParList.Compare(other.m_sigParList)) != EqualTo)
  8756.     return result;
  8757.  
  8758.   return PASN_Sequence::Compare(other);
  8759. }
  8760.  
  8761.  
  8762. PINDEX H248_Signal::GetDataLength() const
  8763. {
  8764.   PINDEX length = 0;
  8765.   length += m_signalName.GetObjectLength();
  8766.   if (HasOptionalField(e_streamID))
  8767.     length += m_streamID.GetObjectLength();
  8768.   if (HasOptionalField(e_sigType))
  8769.     length += m_sigType.GetObjectLength();
  8770.   if (HasOptionalField(e_duration))
  8771.     length += m_duration.GetObjectLength();
  8772.   if (HasOptionalField(e_notifyCompletion))
  8773.     length += m_notifyCompletion.GetObjectLength();
  8774.   if (HasOptionalField(e_keepActive))
  8775.     length += m_keepActive.GetObjectLength();
  8776.   length += m_sigParList.GetObjectLength();
  8777.   return length;
  8778. }
  8779.  
  8780.  
  8781. BOOL H248_Signal::Decode(PASN_Stream & strm)
  8782. {
  8783.   if (!PreambleDecode(strm))
  8784.     return FALSE;
  8785.  
  8786.   if (!m_signalName.Decode(strm))
  8787.     return FALSE;
  8788.   if (HasOptionalField(e_streamID) && !m_streamID.Decode(strm))
  8789.     return FALSE;
  8790.   if (HasOptionalField(e_sigType) && !m_sigType.Decode(strm))
  8791.     return FALSE;
  8792.   if (HasOptionalField(e_duration) && !m_duration.Decode(strm))
  8793.     return FALSE;
  8794.   if (HasOptionalField(e_notifyCompletion) && !m_notifyCompletion.Decode(strm))
  8795.     return FALSE;
  8796.   if (HasOptionalField(e_keepActive) && !m_keepActive.Decode(strm))
  8797.     return FALSE;
  8798.   if (!m_sigParList.Decode(strm))
  8799.     return FALSE;
  8800.  
  8801.   return UnknownExtensionsDecode(strm);
  8802. }
  8803.  
  8804.  
  8805. void H248_Signal::Encode(PASN_Stream & strm) const
  8806. {
  8807.   PreambleEncode(strm);
  8808.  
  8809.   m_signalName.Encode(strm);
  8810.   if (HasOptionalField(e_streamID))
  8811.     m_streamID.Encode(strm);
  8812.   if (HasOptionalField(e_sigType))
  8813.     m_sigType.Encode(strm);
  8814.   if (HasOptionalField(e_duration))
  8815.     m_duration.Encode(strm);
  8816.   if (HasOptionalField(e_notifyCompletion))
  8817.     m_notifyCompletion.Encode(strm);
  8818.   if (HasOptionalField(e_keepActive))
  8819.     m_keepActive.Encode(strm);
  8820.   m_sigParList.Encode(strm);
  8821.  
  8822.   UnknownExtensionsEncode(strm);
  8823. }
  8824.  
  8825.  
  8826. PObject * H248_Signal::Clone() const
  8827. {
  8828. #ifndef PASN_LEANANDMEAN
  8829.   PAssert(IsClass(H248_Signal::Class()), PInvalidCast);
  8830. #endif
  8831.   return new H248_Signal(*this);
  8832. }
  8833.  
  8834.  
  8835. //
  8836. // SigParameter
  8837. //
  8838.  
  8839. H248_SigParameter::H248_SigParameter(unsigned tag, PASN_Object::TagClass tagClass)
  8840.   : PASN_Sequence(tag, tagClass, 1, TRUE, 0)
  8841. {
  8842. }
  8843.  
  8844.  
  8845. #ifndef PASN_NOPRINTON
  8846. void H248_SigParameter::PrintOn(ostream & strm) const
  8847. {
  8848.   int indent = strm.precision() + 2;
  8849.   strm << "{\n";
  8850.   strm << setw(indent+19) << "sigParameterName = " << setprecision(indent) << m_sigParameterName << '\n';
  8851.   strm << setw(indent+8) << "value = " << setprecision(indent) << m_value << '\n';
  8852.   if (HasOptionalField(e_extraInfo))
  8853.     strm << setw(indent+12) << "extraInfo = " << setprecision(indent) << m_extraInfo << '\n';
  8854.   strm << setw(indent-1) << "}";
  8855. }
  8856. #endif
  8857.  
  8858.  
  8859. PObject::Comparison H248_SigParameter::Compare(const PObject & obj) const
  8860. {
  8861. #ifndef PASN_LEANANDMEAN
  8862.   PAssert(IsDescendant(H248_SigParameter::Class()), PInvalidCast);
  8863. #endif
  8864.   const H248_SigParameter & other = (const H248_SigParameter &)obj;
  8865.  
  8866.   Comparison result;
  8867.  
  8868.   if ((result = m_sigParameterName.Compare(other.m_sigParameterName)) != EqualTo)
  8869.     return result;
  8870.   if ((result = m_value.Compare(other.m_value)) != EqualTo)
  8871.     return result;
  8872.   if ((result = m_extraInfo.Compare(other.m_extraInfo)) != EqualTo)
  8873.     return result;
  8874.  
  8875.   return PASN_Sequence::Compare(other);
  8876. }
  8877.  
  8878.  
  8879. PINDEX H248_SigParameter::GetDataLength() const
  8880. {
  8881.   PINDEX length = 0;
  8882.   length += m_sigParameterName.GetObjectLength();
  8883.   length += m_value.GetObjectLength();
  8884.   if (HasOptionalField(e_extraInfo))
  8885.     length += m_extraInfo.GetObjectLength();
  8886.   return length;
  8887. }
  8888.  
  8889.  
  8890. BOOL H248_SigParameter::Decode(PASN_Stream & strm)
  8891. {
  8892.   if (!PreambleDecode(strm))
  8893.     return FALSE;
  8894.  
  8895.   if (!m_sigParameterName.Decode(strm))
  8896.     return FALSE;
  8897.   if (!m_value.Decode(strm))
  8898.     return FALSE;
  8899.   if (HasOptionalField(e_extraInfo) && !m_extraInfo.Decode(strm))
  8900.     return FALSE;
  8901.  
  8902.   return UnknownExtensionsDecode(strm);
  8903. }
  8904.  
  8905.  
  8906. void H248_SigParameter::Encode(PASN_Stream & strm) const
  8907. {
  8908.   PreambleEncode(strm);
  8909.  
  8910.   m_sigParameterName.Encode(strm);
  8911.   m_value.Encode(strm);
  8912.   if (HasOptionalField(e_extraInfo))
  8913.     m_extraInfo.Encode(strm);
  8914.  
  8915.   UnknownExtensionsEncode(strm);
  8916. }
  8917.  
  8918.  
  8919. PObject * H248_SigParameter::Clone() const
  8920. {
  8921. #ifndef PASN_LEANANDMEAN
  8922.   PAssert(IsClass(H248_SigParameter::Class()), PInvalidCast);
  8923. #endif
  8924.   return new H248_SigParameter(*this);
  8925. }
  8926.  
  8927.  
  8928. //
  8929. // DigitMapDescriptor
  8930. //
  8931.  
  8932. H248_DigitMapDescriptor::H248_DigitMapDescriptor(unsigned tag, PASN_Object::TagClass tagClass)
  8933.   : PASN_Sequence(tag, tagClass, 2, FALSE, 0)
  8934. {
  8935. }
  8936.  
  8937.  
  8938. #ifndef PASN_NOPRINTON
  8939. void H248_DigitMapDescriptor::PrintOn(ostream & strm) const
  8940. {
  8941.   int indent = strm.precision() + 2;
  8942.   strm << "{\n";
  8943.   if (HasOptionalField(e_digitMapName))
  8944.     strm << setw(indent+15) << "digitMapName = " << setprecision(indent) << m_digitMapName << '\n';
  8945.   if (HasOptionalField(e_digitMapValue))
  8946.     strm << setw(indent+16) << "digitMapValue = " << setprecision(indent) << m_digitMapValue << '\n';
  8947.   strm << setw(indent-1) << "}";
  8948. }
  8949. #endif
  8950.  
  8951.  
  8952. PObject::Comparison H248_DigitMapDescriptor::Compare(const PObject & obj) const
  8953. {
  8954. #ifndef PASN_LEANANDMEAN
  8955.   PAssert(IsDescendant(H248_DigitMapDescriptor::Class()), PInvalidCast);
  8956. #endif
  8957.   const H248_DigitMapDescriptor & other = (const H248_DigitMapDescriptor &)obj;
  8958.  
  8959.   Comparison result;
  8960.  
  8961.   if ((result = m_digitMapName.Compare(other.m_digitMapName)) != EqualTo)
  8962.     return result;
  8963.   if ((result = m_digitMapValue.Compare(other.m_digitMapValue)) != EqualTo)
  8964.     return result;
  8965.  
  8966.   return PASN_Sequence::Compare(other);
  8967. }
  8968.  
  8969.  
  8970. PINDEX H248_DigitMapDescriptor::GetDataLength() const
  8971. {
  8972.   PINDEX length = 0;
  8973.   if (HasOptionalField(e_digitMapName))
  8974.     length += m_digitMapName.GetObjectLength();
  8975.   if (HasOptionalField(e_digitMapValue))
  8976.     length += m_digitMapValue.GetObjectLength();
  8977.   return length;
  8978. }
  8979.  
  8980.  
  8981. BOOL H248_DigitMapDescriptor::Decode(PASN_Stream & strm)
  8982. {
  8983.   if (!PreambleDecode(strm))
  8984.     return FALSE;
  8985.  
  8986.   if (HasOptionalField(e_digitMapName) && !m_digitMapName.Decode(strm))
  8987.     return FALSE;
  8988.   if (HasOptionalField(e_digitMapValue) && !m_digitMapValue.Decode(strm))
  8989.     return FALSE;
  8990.  
  8991.   return UnknownExtensionsDecode(strm);
  8992. }
  8993.  
  8994.  
  8995. void H248_DigitMapDescriptor::Encode(PASN_Stream & strm) const
  8996. {
  8997.   PreambleEncode(strm);
  8998.  
  8999.   if (HasOptionalField(e_digitMapName))
  9000.     m_digitMapName.Encode(strm);
  9001.   if (HasOptionalField(e_digitMapValue))
  9002.     m_digitMapValue.Encode(strm);
  9003.  
  9004.   UnknownExtensionsEncode(strm);
  9005. }
  9006.  
  9007.  
  9008. PObject * H248_DigitMapDescriptor::Clone() const
  9009. {
  9010. #ifndef PASN_LEANANDMEAN
  9011.   PAssert(IsClass(H248_DigitMapDescriptor::Class()), PInvalidCast);
  9012. #endif
  9013.   return new H248_DigitMapDescriptor(*this);
  9014. }
  9015.  
  9016.  
  9017. //
  9018. // ServiceChangeResParm
  9019. //
  9020.  
  9021. H248_ServiceChangeResParm::H248_ServiceChangeResParm(unsigned tag, PASN_Object::TagClass tagClass)
  9022.   : PASN_Sequence(tag, tagClass, 5, TRUE, 0)
  9023. {
  9024.   m_serviceChangeVersion.SetConstraints(PASN_Object::FixedConstraint, 0, 99);
  9025. }
  9026.  
  9027.  
  9028. #ifndef PASN_NOPRINTON
  9029. void H248_ServiceChangeResParm::PrintOn(ostream & strm) const
  9030. {
  9031.   int indent = strm.precision() + 2;
  9032.   strm << "{\n";
  9033.   if (HasOptionalField(e_serviceChangeMgcId))
  9034.     strm << setw(indent+21) << "serviceChangeMgcId = " << setprecision(indent) << m_serviceChangeMgcId << '\n';
  9035.   if (HasOptionalField(e_serviceChangeAddress))
  9036.     strm << setw(indent+23) << "serviceChangeAddress = " << setprecision(indent) << m_serviceChangeAddress << '\n';
  9037.   if (HasOptionalField(e_serviceChangeVersion))
  9038.     strm << setw(indent+23) << "serviceChangeVersion = " << setprecision(indent) << m_serviceChangeVersion << '\n';
  9039.   if (HasOptionalField(e_serviceChangeProfile))
  9040.     strm << setw(indent+23) << "serviceChangeProfile = " << setprecision(indent) << m_serviceChangeProfile << '\n';
  9041.   if (HasOptionalField(e_timestamp))
  9042.     strm << setw(indent+12) << "timestamp = " << setprecision(indent) << m_timestamp << '\n';
  9043.   strm << setw(indent-1) << "}";
  9044. }
  9045. #endif
  9046.  
  9047.  
  9048. PObject::Comparison H248_ServiceChangeResParm::Compare(const PObject & obj) const
  9049. {
  9050. #ifndef PASN_LEANANDMEAN
  9051.   PAssert(IsDescendant(H248_ServiceChangeResParm::Class()), PInvalidCast);
  9052. #endif
  9053.   const H248_ServiceChangeResParm & other = (const H248_ServiceChangeResParm &)obj;
  9054.  
  9055.   Comparison result;
  9056.  
  9057.   if ((result = m_serviceChangeMgcId.Compare(other.m_serviceChangeMgcId)) != EqualTo)
  9058.     return result;
  9059.   if ((result = m_serviceChangeAddress.Compare(other.m_serviceChangeAddress)) != EqualTo)
  9060.     return result;
  9061.   if ((result = m_serviceChangeVersion.Compare(other.m_serviceChangeVersion)) != EqualTo)
  9062.     return result;
  9063.   if ((result = m_serviceChangeProfile.Compare(other.m_serviceChangeProfile)) != EqualTo)
  9064.     return result;
  9065.   if ((result = m_timestamp.Compare(other.m_timestamp)) != EqualTo)
  9066.     return result;
  9067.  
  9068.   return PASN_Sequence::Compare(other);
  9069. }
  9070.  
  9071.  
  9072. PINDEX H248_ServiceChangeResParm::GetDataLength() const
  9073. {
  9074.   PINDEX length = 0;
  9075.   if (HasOptionalField(e_serviceChangeMgcId))
  9076.     length += m_serviceChangeMgcId.GetObjectLength();
  9077.   if (HasOptionalField(e_serviceChangeAddress))
  9078.     length += m_serviceChangeAddress.GetObjectLength();
  9079.   if (HasOptionalField(e_serviceChangeVersion))
  9080.     length += m_serviceChangeVersion.GetObjectLength();
  9081.   if (HasOptionalField(e_serviceChangeProfile))
  9082.     length += m_serviceChangeProfile.GetObjectLength();
  9083.   if (HasOptionalField(e_timestamp))
  9084.     length += m_timestamp.GetObjectLength();
  9085.   return length;
  9086. }
  9087.  
  9088.  
  9089. BOOL H248_ServiceChangeResParm::Decode(PASN_Stream & strm)
  9090. {
  9091.   if (!PreambleDecode(strm))
  9092.     return FALSE;
  9093.  
  9094.   if (HasOptionalField(e_serviceChangeMgcId) && !m_serviceChangeMgcId.Decode(strm))
  9095.     return FALSE;
  9096.   if (HasOptionalField(e_serviceChangeAddress) && !m_serviceChangeAddress.Decode(strm))
  9097.     return FALSE;
  9098.   if (HasOptionalField(e_serviceChangeVersion) && !m_serviceChangeVersion.Decode(strm))
  9099.     return FALSE;
  9100.   if (HasOptionalField(e_serviceChangeProfile) && !m_serviceChangeProfile.Decode(strm))
  9101.     return FALSE;
  9102.   if (HasOptionalField(e_timestamp) && !m_timestamp.Decode(strm))
  9103.     return FALSE;
  9104.  
  9105.   return UnknownExtensionsDecode(strm);
  9106. }
  9107.  
  9108.  
  9109. void H248_ServiceChangeResParm::Encode(PASN_Stream & strm) const
  9110. {
  9111.   PreambleEncode(strm);
  9112.  
  9113.   if (HasOptionalField(e_serviceChangeMgcId))
  9114.     m_serviceChangeMgcId.Encode(strm);
  9115.   if (HasOptionalField(e_serviceChangeAddress))
  9116.     m_serviceChangeAddress.Encode(strm);
  9117.   if (HasOptionalField(e_serviceChangeVersion))
  9118.     m_serviceChangeVersion.Encode(strm);
  9119.   if (HasOptionalField(e_serviceChangeProfile))
  9120.     m_serviceChangeProfile.Encode(strm);
  9121.   if (HasOptionalField(e_timestamp))
  9122.     m_timestamp.Encode(strm);
  9123.  
  9124.   UnknownExtensionsEncode(strm);
  9125. }
  9126.  
  9127.  
  9128. PObject * H248_ServiceChangeResParm::Clone() const
  9129. {
  9130. #ifndef PASN_LEANANDMEAN
  9131.   PAssert(IsClass(H248_ServiceChangeResParm::Class()), PInvalidCast);
  9132. #endif
  9133.   return new H248_ServiceChangeResParm(*this);
  9134. }
  9135.  
  9136.  
  9137. //
  9138. // StatisticsParameter
  9139. //
  9140.  
  9141. H248_StatisticsParameter::H248_StatisticsParameter(unsigned tag, PASN_Object::TagClass tagClass)
  9142.   : PASN_Sequence(tag, tagClass, 1, FALSE, 0)
  9143. {
  9144. }
  9145.  
  9146.  
  9147. #ifndef PASN_NOPRINTON
  9148. void H248_StatisticsParameter::PrintOn(ostream & strm) const
  9149. {
  9150.   int indent = strm.precision() + 2;
  9151.   strm << "{\n";
  9152.   strm << setw(indent+11) << "statName = " << setprecision(indent) << m_statName << '\n';
  9153.   if (HasOptionalField(e_statValue))
  9154.     strm << setw(indent+12) << "statValue = " << setprecision(indent) << m_statValue << '\n';
  9155.   strm << setw(indent-1) << "}";
  9156. }
  9157. #endif
  9158.  
  9159.  
  9160. PObject::Comparison H248_StatisticsParameter::Compare(const PObject & obj) const
  9161. {
  9162. #ifndef PASN_LEANANDMEAN
  9163.   PAssert(IsDescendant(H248_StatisticsParameter::Class()), PInvalidCast);
  9164. #endif
  9165.   const H248_StatisticsParameter & other = (const H248_StatisticsParameter &)obj;
  9166.  
  9167.   Comparison result;
  9168.  
  9169.   if ((result = m_statName.Compare(other.m_statName)) != EqualTo)
  9170.     return result;
  9171.   if ((result = m_statValue.Compare(other.m_statValue)) != EqualTo)
  9172.     return result;
  9173.  
  9174.   return PASN_Sequence::Compare(other);
  9175. }
  9176.  
  9177.  
  9178. PINDEX H248_StatisticsParameter::GetDataLength() const
  9179. {
  9180.   PINDEX length = 0;
  9181.   length += m_statName.GetObjectLength();
  9182.   if (HasOptionalField(e_statValue))
  9183.     length += m_statValue.GetObjectLength();
  9184.   return length;
  9185. }
  9186.  
  9187.  
  9188. BOOL H248_StatisticsParameter::Decode(PASN_Stream & strm)
  9189. {
  9190.   if (!PreambleDecode(strm))
  9191.     return FALSE;
  9192.  
  9193.   if (!m_statName.Decode(strm))
  9194.     return FALSE;
  9195.   if (HasOptionalField(e_statValue) && !m_statValue.Decode(strm))
  9196.     return FALSE;
  9197.  
  9198.   return UnknownExtensionsDecode(strm);
  9199. }
  9200.  
  9201.  
  9202. void H248_StatisticsParameter::Encode(PASN_Stream & strm) const
  9203. {
  9204.   PreambleEncode(strm);
  9205.  
  9206.   m_statName.Encode(strm);
  9207.   if (HasOptionalField(e_statValue))
  9208.     m_statValue.Encode(strm);
  9209.  
  9210.   UnknownExtensionsEncode(strm);
  9211. }
  9212.  
  9213.  
  9214. PObject * H248_StatisticsParameter::Clone() const
  9215. {
  9216. #ifndef PASN_LEANANDMEAN
  9217.   PAssert(IsClass(H248_StatisticsParameter::Class()), PInvalidCast);
  9218. #endif
  9219.   return new H248_StatisticsParameter(*this);
  9220. }
  9221.  
  9222.  
  9223. //
  9224. // NonStandardData
  9225. //
  9226.  
  9227. H248_NonStandardData::H248_NonStandardData(unsigned tag, PASN_Object::TagClass tagClass)
  9228.   : PASN_Sequence(tag, tagClass, 0, FALSE, 0)
  9229. {
  9230. }
  9231.  
  9232.  
  9233. #ifndef PASN_NOPRINTON
  9234. void H248_NonStandardData::PrintOn(ostream & strm) const
  9235. {
  9236.   int indent = strm.precision() + 2;
  9237.   strm << "{\n";
  9238.   strm << setw(indent+24) << "nonStandardIdentifier = " << setprecision(indent) << m_nonStandardIdentifier << '\n';
  9239.   strm << setw(indent+7) << "data = " << setprecision(indent) << m_data << '\n';
  9240.   strm << setw(indent-1) << "}";
  9241. }
  9242. #endif
  9243.  
  9244.  
  9245. PObject::Comparison H248_NonStandardData::Compare(const PObject & obj) const
  9246. {
  9247. #ifndef PASN_LEANANDMEAN
  9248.   PAssert(IsDescendant(H248_NonStandardData::Class()), PInvalidCast);
  9249. #endif
  9250.   const H248_NonStandardData & other = (const H248_NonStandardData &)obj;
  9251.  
  9252.   Comparison result;
  9253.  
  9254.   if ((result = m_nonStandardIdentifier.Compare(other.m_nonStandardIdentifier)) != EqualTo)
  9255.     return result;
  9256.   if ((result = m_data.Compare(other.m_data)) != EqualTo)
  9257.     return result;
  9258.  
  9259.   return PASN_Sequence::Compare(other);
  9260. }
  9261.  
  9262.  
  9263. PINDEX H248_NonStandardData::GetDataLength() const
  9264. {
  9265.   PINDEX length = 0;
  9266.   length += m_nonStandardIdentifier.GetObjectLength();
  9267.   length += m_data.GetObjectLength();
  9268.   return length;
  9269. }
  9270.  
  9271.  
  9272. BOOL H248_NonStandardData::Decode(PASN_Stream & strm)
  9273. {
  9274.   if (!PreambleDecode(strm))
  9275.     return FALSE;
  9276.  
  9277.   if (!m_nonStandardIdentifier.Decode(strm))
  9278.     return FALSE;
  9279.   if (!m_data.Decode(strm))
  9280.     return FALSE;
  9281.  
  9282.   return UnknownExtensionsDecode(strm);
  9283. }
  9284.  
  9285.  
  9286. void H248_NonStandardData::Encode(PASN_Stream & strm) const
  9287. {
  9288.   PreambleEncode(strm);
  9289.  
  9290.   m_nonStandardIdentifier.Encode(strm);
  9291.   m_data.Encode(strm);
  9292.  
  9293.   UnknownExtensionsEncode(strm);
  9294. }
  9295.  
  9296.  
  9297. PObject * H248_NonStandardData::Clone() const
  9298. {
  9299. #ifndef PASN_LEANANDMEAN
  9300.   PAssert(IsClass(H248_NonStandardData::Class()), PInvalidCast);
  9301. #endif
  9302.   return new H248_NonStandardData(*this);
  9303. }
  9304.  
  9305.  
  9306. //
  9307. // MegacoMessage
  9308. //
  9309.  
  9310. H248_MegacoMessage::H248_MegacoMessage(unsigned tag, PASN_Object::TagClass tagClass)
  9311.   : PASN_Sequence(tag, tagClass, 1, FALSE, 0)
  9312. {
  9313. }
  9314.  
  9315.  
  9316. #ifndef PASN_NOPRINTON
  9317. void H248_MegacoMessage::PrintOn(ostream & strm) const
  9318. {
  9319.   int indent = strm.precision() + 2;
  9320.   strm << "{\n";
  9321.   if (HasOptionalField(e_authHeader))
  9322.     strm << setw(indent+13) << "authHeader = " << setprecision(indent) << m_authHeader << '\n';
  9323.   strm << setw(indent+7) << "mess = " << setprecision(indent) << m_mess << '\n';
  9324.   strm << setw(indent-1) << "}";
  9325. }
  9326. #endif
  9327.  
  9328.  
  9329. PObject::Comparison H248_MegacoMessage::Compare(const PObject & obj) const
  9330. {
  9331. #ifndef PASN_LEANANDMEAN
  9332.   PAssert(IsDescendant(H248_MegacoMessage::Class()), PInvalidCast);
  9333. #endif
  9334.   const H248_MegacoMessage & other = (const H248_MegacoMessage &)obj;
  9335.  
  9336.   Comparison result;
  9337.  
  9338.   if ((result = m_authHeader.Compare(other.m_authHeader)) != EqualTo)
  9339.     return result;
  9340.   if ((result = m_mess.Compare(other.m_mess)) != EqualTo)
  9341.     return result;
  9342.  
  9343.   return PASN_Sequence::Compare(other);
  9344. }
  9345.  
  9346.  
  9347. PINDEX H248_MegacoMessage::GetDataLength() const
  9348. {
  9349.   PINDEX length = 0;
  9350.   if (HasOptionalField(e_authHeader))
  9351.     length += m_authHeader.GetObjectLength();
  9352.   length += m_mess.GetObjectLength();
  9353.   return length;
  9354. }
  9355.  
  9356.  
  9357. BOOL H248_MegacoMessage::Decode(PASN_Stream & strm)
  9358. {
  9359.   if (!PreambleDecode(strm))
  9360.     return FALSE;
  9361.  
  9362.   if (HasOptionalField(e_authHeader) && !m_authHeader.Decode(strm))
  9363.     return FALSE;
  9364.   if (!m_mess.Decode(strm))
  9365.     return FALSE;
  9366.  
  9367.   return UnknownExtensionsDecode(strm);
  9368. }
  9369.  
  9370.  
  9371. void H248_MegacoMessage::Encode(PASN_Stream & strm) const
  9372. {
  9373.   PreambleEncode(strm);
  9374.  
  9375.   if (HasOptionalField(e_authHeader))
  9376.     m_authHeader.Encode(strm);
  9377.   m_mess.Encode(strm);
  9378.  
  9379.   UnknownExtensionsEncode(strm);
  9380. }
  9381.  
  9382.  
  9383. PObject * H248_MegacoMessage::Clone() const
  9384. {
  9385. #ifndef PASN_LEANANDMEAN
  9386.   PAssert(IsClass(H248_MegacoMessage::Class()), PInvalidCast);
  9387. #endif
  9388.   return new H248_MegacoMessage(*this);
  9389. }
  9390.  
  9391.  
  9392. //
  9393. // ActionRequest
  9394. //
  9395.  
  9396. H248_ActionRequest::H248_ActionRequest(unsigned tag, PASN_Object::TagClass tagClass)
  9397.   : PASN_Sequence(tag, tagClass, 2, FALSE, 0)
  9398. {
  9399. }
  9400.  
  9401.  
  9402. #ifndef PASN_NOPRINTON
  9403. void H248_ActionRequest::PrintOn(ostream & strm) const
  9404. {
  9405.   int indent = strm.precision() + 2;
  9406.   strm << "{\n";
  9407.   strm << setw(indent+12) << "contextId = " << setprecision(indent) << m_contextId << '\n';
  9408.   if (HasOptionalField(e_contextRequest))
  9409.     strm << setw(indent+17) << "contextRequest = " << setprecision(indent) << m_contextRequest << '\n';
  9410.   if (HasOptionalField(e_contextAttrAuditReq))
  9411.     strm << setw(indent+22) << "contextAttrAuditReq = " << setprecision(indent) << m_contextAttrAuditReq << '\n';
  9412.   strm << setw(indent+18) << "commandRequests = " << setprecision(indent) << m_commandRequests << '\n';
  9413.   strm << setw(indent-1) << "}";
  9414. }
  9415. #endif
  9416.  
  9417.  
  9418. PObject::Comparison H248_ActionRequest::Compare(const PObject & obj) const
  9419. {
  9420. #ifndef PASN_LEANANDMEAN
  9421.   PAssert(IsDescendant(H248_ActionRequest::Class()), PInvalidCast);
  9422. #endif
  9423.   const H248_ActionRequest & other = (const H248_ActionRequest &)obj;
  9424.  
  9425.   Comparison result;
  9426.  
  9427.   if ((result = m_contextId.Compare(other.m_contextId)) != EqualTo)
  9428.     return result;
  9429.   if ((result = m_contextRequest.Compare(other.m_contextRequest)) != EqualTo)
  9430.     return result;
  9431.   if ((result = m_contextAttrAuditReq.Compare(other.m_contextAttrAuditReq)) != EqualTo)
  9432.     return result;
  9433.   if ((result = m_commandRequests.Compare(other.m_commandRequests)) != EqualTo)
  9434.     return result;
  9435.  
  9436.   return PASN_Sequence::Compare(other);
  9437. }
  9438.  
  9439.  
  9440. PINDEX H248_ActionRequest::GetDataLength() const
  9441. {
  9442.   PINDEX length = 0;
  9443.   length += m_contextId.GetObjectLength();
  9444.   if (HasOptionalField(e_contextRequest))
  9445.     length += m_contextRequest.GetObjectLength();
  9446.   if (HasOptionalField(e_contextAttrAuditReq))
  9447.     length += m_contextAttrAuditReq.GetObjectLength();
  9448.   length += m_commandRequests.GetObjectLength();
  9449.   return length;
  9450. }
  9451.  
  9452.  
  9453. BOOL H248_ActionRequest::Decode(PASN_Stream & strm)
  9454. {
  9455.   if (!PreambleDecode(strm))
  9456.     return FALSE;
  9457.  
  9458.   if (!m_contextId.Decode(strm))
  9459.     return FALSE;
  9460.   if (HasOptionalField(e_contextRequest) && !m_contextRequest.Decode(strm))
  9461.     return FALSE;
  9462.   if (HasOptionalField(e_contextAttrAuditReq) && !m_contextAttrAuditReq.Decode(strm))
  9463.     return FALSE;
  9464.   if (!m_commandRequests.Decode(strm))
  9465.     return FALSE;
  9466.  
  9467.   return UnknownExtensionsDecode(strm);
  9468. }
  9469.  
  9470.  
  9471. void H248_ActionRequest::Encode(PASN_Stream & strm) const
  9472. {
  9473.   PreambleEncode(strm);
  9474.  
  9475.   m_contextId.Encode(strm);
  9476.   if (HasOptionalField(e_contextRequest))
  9477.     m_contextRequest.Encode(strm);
  9478.   if (HasOptionalField(e_contextAttrAuditReq))
  9479.     m_contextAttrAuditReq.Encode(strm);
  9480.   m_commandRequests.Encode(strm);
  9481.  
  9482.   UnknownExtensionsEncode(strm);
  9483. }
  9484.  
  9485.  
  9486. PObject * H248_ActionRequest::Clone() const
  9487. {
  9488. #ifndef PASN_LEANANDMEAN
  9489.   PAssert(IsClass(H248_ActionRequest::Class()), PInvalidCast);
  9490. #endif
  9491.   return new H248_ActionRequest(*this);
  9492. }
  9493.  
  9494.  
  9495. //
  9496. // ActionReply
  9497. //
  9498.  
  9499. H248_ActionReply::H248_ActionReply(unsigned tag, PASN_Object::TagClass tagClass)
  9500.   : PASN_Sequence(tag, tagClass, 2, FALSE, 0)
  9501. {
  9502. }
  9503.  
  9504.  
  9505. #ifndef PASN_NOPRINTON
  9506. void H248_ActionReply::PrintOn(ostream & strm) const
  9507. {
  9508.   int indent = strm.precision() + 2;
  9509.   strm << "{\n";
  9510.   strm << setw(indent+12) << "contextId = " << setprecision(indent) << m_contextId << '\n';
  9511.   if (HasOptionalField(e_errorDescriptor))
  9512.     strm << setw(indent+18) << "errorDescriptor = " << setprecision(indent) << m_errorDescriptor << '\n';
  9513.   if (HasOptionalField(e_contextReply))
  9514.     strm << setw(indent+15) << "contextReply = " << setprecision(indent) << m_contextReply << '\n';
  9515.   strm << setw(indent+15) << "commandReply = " << setprecision(indent) << m_commandReply << '\n';
  9516.   strm << setw(indent-1) << "}";
  9517. }
  9518. #endif
  9519.  
  9520.  
  9521. PObject::Comparison H248_ActionReply::Compare(const PObject & obj) const
  9522. {
  9523. #ifndef PASN_LEANANDMEAN
  9524.   PAssert(IsDescendant(H248_ActionReply::Class()), PInvalidCast);
  9525. #endif
  9526.   const H248_ActionReply & other = (const H248_ActionReply &)obj;
  9527.  
  9528.   Comparison result;
  9529.  
  9530.   if ((result = m_contextId.Compare(other.m_contextId)) != EqualTo)
  9531.     return result;
  9532.   if ((result = m_errorDescriptor.Compare(other.m_errorDescriptor)) != EqualTo)
  9533.     return result;
  9534.   if ((result = m_contextReply.Compare(other.m_contextReply)) != EqualTo)
  9535.     return result;
  9536.   if ((result = m_commandReply.Compare(other.m_commandReply)) != EqualTo)
  9537.     return result;
  9538.  
  9539.   return PASN_Sequence::Compare(other);
  9540. }
  9541.  
  9542.  
  9543. PINDEX H248_ActionReply::GetDataLength() const
  9544. {
  9545.   PINDEX length = 0;
  9546.   length += m_contextId.GetObjectLength();
  9547.   if (HasOptionalField(e_errorDescriptor))
  9548.     length += m_errorDescriptor.GetObjectLength();
  9549.   if (HasOptionalField(e_contextReply))
  9550.     length += m_contextReply.GetObjectLength();
  9551.   length += m_commandReply.GetObjectLength();
  9552.   return length;
  9553. }
  9554.  
  9555.  
  9556. BOOL H248_ActionReply::Decode(PASN_Stream & strm)
  9557. {
  9558.   if (!PreambleDecode(strm))
  9559.     return FALSE;
  9560.  
  9561.   if (!m_contextId.Decode(strm))
  9562.     return FALSE;
  9563.   if (HasOptionalField(e_errorDescriptor) && !m_errorDescriptor.Decode(strm))
  9564.     return FALSE;
  9565.   if (HasOptionalField(e_contextReply) && !m_contextReply.Decode(strm))
  9566.     return FALSE;
  9567.   if (!m_commandReply.Decode(strm))
  9568.     return FALSE;
  9569.  
  9570.   return UnknownExtensionsDecode(strm);
  9571. }
  9572.  
  9573.  
  9574. void H248_ActionReply::Encode(PASN_Stream & strm) const
  9575. {
  9576.   PreambleEncode(strm);
  9577.  
  9578.   m_contextId.Encode(strm);
  9579.   if (HasOptionalField(e_errorDescriptor))
  9580.     m_errorDescriptor.Encode(strm);
  9581.   if (HasOptionalField(e_contextReply))
  9582.     m_contextReply.Encode(strm);
  9583.   m_commandReply.Encode(strm);
  9584.  
  9585.   UnknownExtensionsEncode(strm);
  9586. }
  9587.  
  9588.  
  9589. PObject * H248_ActionReply::Clone() const
  9590. {
  9591. #ifndef PASN_LEANANDMEAN
  9592.   PAssert(IsClass(H248_ActionReply::Class()), PInvalidCast);
  9593. #endif
  9594.   return new H248_ActionReply(*this);
  9595. }
  9596.  
  9597.  
  9598. //
  9599. // TopologyRequest
  9600. //
  9601.  
  9602. H248_TopologyRequest::H248_TopologyRequest(unsigned tag, PASN_Object::TagClass tagClass)
  9603.   : PASN_Sequence(tag, tagClass, 0, TRUE, 1)
  9604. {
  9605. }
  9606.  
  9607.  
  9608. #ifndef PASN_NOPRINTON
  9609. void H248_TopologyRequest::PrintOn(ostream & strm) const
  9610. {
  9611.   int indent = strm.precision() + 2;
  9612.   strm << "{\n";
  9613.   strm << setw(indent+18) << "terminationFrom = " << setprecision(indent) << m_terminationFrom << '\n';
  9614.   strm << setw(indent+16) << "terminationTo = " << setprecision(indent) << m_terminationTo << '\n';
  9615.   strm << setw(indent+20) << "topologyDirection = " << setprecision(indent) << m_topologyDirection << '\n';
  9616.   if (HasOptionalField(e_streamID))
  9617.     strm << setw(indent+11) << "streamID = " << setprecision(indent) << m_streamID << '\n';
  9618.   strm << setw(indent-1) << "}";
  9619. }
  9620. #endif
  9621.  
  9622.  
  9623. PObject::Comparison H248_TopologyRequest::Compare(const PObject & obj) const
  9624. {
  9625. #ifndef PASN_LEANANDMEAN
  9626.   PAssert(IsDescendant(H248_TopologyRequest::Class()), PInvalidCast);
  9627. #endif
  9628.   const H248_TopologyRequest & other = (const H248_TopologyRequest &)obj;
  9629.  
  9630.   Comparison result;
  9631.  
  9632.   if ((result = m_terminationFrom.Compare(other.m_terminationFrom)) != EqualTo)
  9633.     return result;
  9634.   if ((result = m_terminationTo.Compare(other.m_terminationTo)) != EqualTo)
  9635.     return result;
  9636.   if ((result = m_topologyDirection.Compare(other.m_topologyDirection)) != EqualTo)
  9637.     return result;
  9638.  
  9639.   return PASN_Sequence::Compare(other);
  9640. }
  9641.  
  9642.  
  9643. PINDEX H248_TopologyRequest::GetDataLength() const
  9644. {
  9645.   PINDEX length = 0;
  9646.   length += m_terminationFrom.GetObjectLength();
  9647.   length += m_terminationTo.GetObjectLength();
  9648.   length += m_topologyDirection.GetObjectLength();
  9649.   return length;
  9650. }
  9651.  
  9652.  
  9653. BOOL H248_TopologyRequest::Decode(PASN_Stream & strm)
  9654. {
  9655.   if (!PreambleDecode(strm))
  9656.     return FALSE;
  9657.  
  9658.   if (!m_terminationFrom.Decode(strm))
  9659.     return FALSE;
  9660.   if (!m_terminationTo.Decode(strm))
  9661.     return FALSE;
  9662.   if (!m_topologyDirection.Decode(strm))
  9663.     return FALSE;
  9664.   if (!KnownExtensionDecode(strm, e_streamID, m_streamID))
  9665.     return FALSE;
  9666.  
  9667.   return UnknownExtensionsDecode(strm);
  9668. }
  9669.  
  9670.  
  9671. void H248_TopologyRequest::Encode(PASN_Stream & strm) const
  9672. {
  9673.   PreambleEncode(strm);
  9674.  
  9675.   m_terminationFrom.Encode(strm);
  9676.   m_terminationTo.Encode(strm);
  9677.   m_topologyDirection.Encode(strm);
  9678.   KnownExtensionEncode(strm, e_streamID, m_streamID);
  9679.  
  9680.   UnknownExtensionsEncode(strm);
  9681. }
  9682.  
  9683.  
  9684. PObject * H248_TopologyRequest::Clone() const
  9685. {
  9686. #ifndef PASN_LEANANDMEAN
  9687.   PAssert(IsClass(H248_TopologyRequest::Class()), PInvalidCast);
  9688. #endif
  9689.   return new H248_TopologyRequest(*this);
  9690. }
  9691.  
  9692.  
  9693. //
  9694. // SubtractRequest
  9695. //
  9696.  
  9697. H248_SubtractRequest::H248_SubtractRequest(unsigned tag, PASN_Object::TagClass tagClass)
  9698.   : PASN_Sequence(tag, tagClass, 1, TRUE, 0)
  9699. {
  9700. }
  9701.  
  9702.  
  9703. #ifndef PASN_NOPRINTON
  9704. void H248_SubtractRequest::PrintOn(ostream & strm) const
  9705. {
  9706.   int indent = strm.precision() + 2;
  9707.   strm << "{\n";
  9708.   strm << setw(indent+16) << "terminationID = " << setprecision(indent) << m_terminationID << '\n';
  9709.   if (HasOptionalField(e_auditDescriptor))
  9710.     strm << setw(indent+18) << "auditDescriptor = " << setprecision(indent) << m_auditDescriptor << '\n';
  9711.   strm << setw(indent-1) << "}";
  9712. }
  9713. #endif
  9714.  
  9715.  
  9716. PObject::Comparison H248_SubtractRequest::Compare(const PObject & obj) const
  9717. {
  9718. #ifndef PASN_LEANANDMEAN
  9719.   PAssert(IsDescendant(H248_SubtractRequest::Class()), PInvalidCast);
  9720. #endif
  9721.   const H248_SubtractRequest & other = (const H248_SubtractRequest &)obj;
  9722.  
  9723.   Comparison result;
  9724.  
  9725.   if ((result = m_terminationID.Compare(other.m_terminationID)) != EqualTo)
  9726.     return result;
  9727.   if ((result = m_auditDescriptor.Compare(other.m_auditDescriptor)) != EqualTo)
  9728.     return result;
  9729.  
  9730.   return PASN_Sequence::Compare(other);
  9731. }
  9732.  
  9733.  
  9734. PINDEX H248_SubtractRequest::GetDataLength() const
  9735. {
  9736.   PINDEX length = 0;
  9737.   length += m_terminationID.GetObjectLength();
  9738.   if (HasOptionalField(e_auditDescriptor))
  9739.     length += m_auditDescriptor.GetObjectLength();
  9740.   return length;
  9741. }
  9742.  
  9743.  
  9744. BOOL H248_SubtractRequest::Decode(PASN_Stream & strm)
  9745. {
  9746.   if (!PreambleDecode(strm))
  9747.     return FALSE;
  9748.  
  9749.   if (!m_terminationID.Decode(strm))
  9750.     return FALSE;
  9751.   if (HasOptionalField(e_auditDescriptor) && !m_auditDescriptor.Decode(strm))
  9752.     return FALSE;
  9753.  
  9754.   return UnknownExtensionsDecode(strm);
  9755. }
  9756.  
  9757.  
  9758. void H248_SubtractRequest::Encode(PASN_Stream & strm) const
  9759. {
  9760.   PreambleEncode(strm);
  9761.  
  9762.   m_terminationID.Encode(strm);
  9763.   if (HasOptionalField(e_auditDescriptor))
  9764.     m_auditDescriptor.Encode(strm);
  9765.  
  9766.   UnknownExtensionsEncode(strm);
  9767. }
  9768.  
  9769.  
  9770. PObject * H248_SubtractRequest::Clone() const
  9771. {
  9772. #ifndef PASN_LEANANDMEAN
  9773.   PAssert(IsClass(H248_SubtractRequest::Class()), PInvalidCast);
  9774. #endif
  9775.   return new H248_SubtractRequest(*this);
  9776. }
  9777.  
  9778.  
  9779. //
  9780. // AuditRequest
  9781. //
  9782.  
  9783. H248_AuditRequest::H248_AuditRequest(unsigned tag, PASN_Object::TagClass tagClass)
  9784.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  9785. {
  9786. }
  9787.  
  9788.  
  9789. #ifndef PASN_NOPRINTON
  9790. void H248_AuditRequest::PrintOn(ostream & strm) const
  9791. {
  9792.   int indent = strm.precision() + 2;
  9793.   strm << "{\n";
  9794.   strm << setw(indent+16) << "terminationID = " << setprecision(indent) << m_terminationID << '\n';
  9795.   strm << setw(indent+18) << "auditDescriptor = " << setprecision(indent) << m_auditDescriptor << '\n';
  9796.   strm << setw(indent-1) << "}";
  9797. }
  9798. #endif
  9799.  
  9800.  
  9801. PObject::Comparison H248_AuditRequest::Compare(const PObject & obj) const
  9802. {
  9803. #ifndef PASN_LEANANDMEAN
  9804.   PAssert(IsDescendant(H248_AuditRequest::Class()), PInvalidCast);
  9805. #endif
  9806.   const H248_AuditRequest & other = (const H248_AuditRequest &)obj;
  9807.  
  9808.   Comparison result;
  9809.  
  9810.   if ((result = m_terminationID.Compare(other.m_terminationID)) != EqualTo)
  9811.     return result;
  9812.   if ((result = m_auditDescriptor.Compare(other.m_auditDescriptor)) != EqualTo)
  9813.     return result;
  9814.  
  9815.   return PASN_Sequence::Compare(other);
  9816. }
  9817.  
  9818.  
  9819. PINDEX H248_AuditRequest::GetDataLength() const
  9820. {
  9821.   PINDEX length = 0;
  9822.   length += m_terminationID.GetObjectLength();
  9823.   length += m_auditDescriptor.GetObjectLength();
  9824.   return length;
  9825. }
  9826.  
  9827.  
  9828. BOOL H248_AuditRequest::Decode(PASN_Stream & strm)
  9829. {
  9830.   if (!PreambleDecode(strm))
  9831.     return FALSE;
  9832.  
  9833.   if (!m_terminationID.Decode(strm))
  9834.     return FALSE;
  9835.   if (!m_auditDescriptor.Decode(strm))
  9836.     return FALSE;
  9837.  
  9838.   return UnknownExtensionsDecode(strm);
  9839. }
  9840.  
  9841.  
  9842. void H248_AuditRequest::Encode(PASN_Stream & strm) const
  9843. {
  9844.   PreambleEncode(strm);
  9845.  
  9846.   m_terminationID.Encode(strm);
  9847.   m_auditDescriptor.Encode(strm);
  9848.  
  9849.   UnknownExtensionsEncode(strm);
  9850. }
  9851.  
  9852.  
  9853. PObject * H248_AuditRequest::Clone() const
  9854. {
  9855. #ifndef PASN_LEANANDMEAN
  9856.   PAssert(IsClass(H248_AuditRequest::Class()), PInvalidCast);
  9857. #endif
  9858.   return new H248_AuditRequest(*this);
  9859. }
  9860.  
  9861.  
  9862. //
  9863. // AuditResult
  9864. //
  9865.  
  9866. H248_AuditResult::H248_AuditResult(unsigned tag, PASN_Object::TagClass tagClass)
  9867.   : PASN_Sequence(tag, tagClass, 0, FALSE, 0)
  9868. {
  9869. }
  9870.  
  9871.  
  9872. #ifndef PASN_NOPRINTON
  9873. void H248_AuditResult::PrintOn(ostream & strm) const
  9874. {
  9875.   int indent = strm.precision() + 2;
  9876.   strm << "{\n";
  9877.   strm << setw(indent+16) << "terminationID = " << setprecision(indent) << m_terminationID << '\n';
  9878.   strm << setw(indent+25) << "terminationAuditResult = " << setprecision(indent) << m_terminationAuditResult << '\n';
  9879.   strm << setw(indent-1) << "}";
  9880. }
  9881. #endif
  9882.  
  9883.  
  9884. PObject::Comparison H248_AuditResult::Compare(const PObject & obj) const
  9885. {
  9886. #ifndef PASN_LEANANDMEAN
  9887.   PAssert(IsDescendant(H248_AuditResult::Class()), PInvalidCast);
  9888. #endif
  9889.   const H248_AuditResult & other = (const H248_AuditResult &)obj;
  9890.  
  9891.   Comparison result;
  9892.  
  9893.   if ((result = m_terminationID.Compare(other.m_terminationID)) != EqualTo)
  9894.     return result;
  9895.   if ((result = m_terminationAuditResult.Compare(other.m_terminationAuditResult)) != EqualTo)
  9896.     return result;
  9897.  
  9898.   return PASN_Sequence::Compare(other);
  9899. }
  9900.  
  9901.  
  9902. PINDEX H248_AuditResult::GetDataLength() const
  9903. {
  9904.   PINDEX length = 0;
  9905.   length += m_terminationID.GetObjectLength();
  9906.   length += m_terminationAuditResult.GetObjectLength();
  9907.   return length;
  9908. }
  9909.  
  9910.  
  9911. BOOL H248_AuditResult::Decode(PASN_Stream & strm)
  9912. {
  9913.   if (!PreambleDecode(strm))
  9914.     return FALSE;
  9915.  
  9916.   if (!m_terminationID.Decode(strm))
  9917.     return FALSE;
  9918.   if (!m_terminationAuditResult.Decode(strm))
  9919.     return FALSE;
  9920.  
  9921.   return UnknownExtensionsDecode(strm);
  9922. }
  9923.  
  9924.  
  9925. void H248_AuditResult::Encode(PASN_Stream & strm) const
  9926. {
  9927.   PreambleEncode(strm);
  9928.  
  9929.   m_terminationID.Encode(strm);
  9930.   m_terminationAuditResult.Encode(strm);
  9931.  
  9932.   UnknownExtensionsEncode(strm);
  9933. }
  9934.  
  9935.  
  9936. PObject * H248_AuditResult::Clone() const
  9937. {
  9938. #ifndef PASN_LEANANDMEAN
  9939.   PAssert(IsClass(H248_AuditResult::Class()), PInvalidCast);
  9940. #endif
  9941.   return new H248_AuditResult(*this);
  9942. }
  9943.  
  9944.  
  9945. //
  9946. // IndAudMediaDescriptor
  9947. //
  9948.  
  9949. H248_IndAudMediaDescriptor::H248_IndAudMediaDescriptor(unsigned tag, PASN_Object::TagClass tagClass)
  9950.   : PASN_Sequence(tag, tagClass, 2, TRUE, 0)
  9951. {
  9952. }
  9953.  
  9954.  
  9955. #ifndef PASN_NOPRINTON
  9956. void H248_IndAudMediaDescriptor::PrintOn(ostream & strm) const
  9957. {
  9958.   int indent = strm.precision() + 2;
  9959.   strm << "{\n";
  9960.   if (HasOptionalField(e_termStateDescr))
  9961.     strm << setw(indent+17) << "termStateDescr = " << setprecision(indent) << m_termStateDescr << '\n';
  9962.   if (HasOptionalField(e_streams))
  9963.     strm << setw(indent+10) << "streams = " << setprecision(indent) << m_streams << '\n';
  9964.   strm << setw(indent-1) << "}";
  9965. }
  9966. #endif
  9967.  
  9968.  
  9969. PObject::Comparison H248_IndAudMediaDescriptor::Compare(const PObject & obj) const
  9970. {
  9971. #ifndef PASN_LEANANDMEAN
  9972.   PAssert(IsDescendant(H248_IndAudMediaDescriptor::Class()), PInvalidCast);
  9973. #endif
  9974.   const H248_IndAudMediaDescriptor & other = (const H248_IndAudMediaDescriptor &)obj;
  9975.  
  9976.   Comparison result;
  9977.  
  9978.   if ((result = m_termStateDescr.Compare(other.m_termStateDescr)) != EqualTo)
  9979.     return result;
  9980.   if ((result = m_streams.Compare(other.m_streams)) != EqualTo)
  9981.     return result;
  9982.  
  9983.   return PASN_Sequence::Compare(other);
  9984. }
  9985.  
  9986.  
  9987. PINDEX H248_IndAudMediaDescriptor::GetDataLength() const
  9988. {
  9989.   PINDEX length = 0;
  9990.   if (HasOptionalField(e_termStateDescr))
  9991.     length += m_termStateDescr.GetObjectLength();
  9992.   if (HasOptionalField(e_streams))
  9993.     length += m_streams.GetObjectLength();
  9994.   return length;
  9995. }
  9996.  
  9997.  
  9998. BOOL H248_IndAudMediaDescriptor::Decode(PASN_Stream & strm)
  9999. {
  10000.   if (!PreambleDecode(strm))
  10001.     return FALSE;
  10002.  
  10003.   if (HasOptionalField(e_termStateDescr) && !m_termStateDescr.Decode(strm))
  10004.     return FALSE;
  10005.   if (HasOptionalField(e_streams) && !m_streams.Decode(strm))
  10006.     return FALSE;
  10007.  
  10008.   return UnknownExtensionsDecode(strm);
  10009. }
  10010.  
  10011.  
  10012. void H248_IndAudMediaDescriptor::Encode(PASN_Stream & strm) const
  10013. {
  10014.   PreambleEncode(strm);
  10015.  
  10016.   if (HasOptionalField(e_termStateDescr))
  10017.     m_termStateDescr.Encode(strm);
  10018.   if (HasOptionalField(e_streams))
  10019.     m_streams.Encode(strm);
  10020.  
  10021.   UnknownExtensionsEncode(strm);
  10022. }
  10023.  
  10024.  
  10025. PObject * H248_IndAudMediaDescriptor::Clone() const
  10026. {
  10027. #ifndef PASN_LEANANDMEAN
  10028.   PAssert(IsClass(H248_IndAudMediaDescriptor::Class()), PInvalidCast);
  10029. #endif
  10030.   return new H248_IndAudMediaDescriptor(*this);
  10031. }
  10032.  
  10033.  
  10034. //
  10035. // IndAudStreamParms
  10036. //
  10037.  
  10038. H248_IndAudStreamParms::H248_IndAudStreamParms(unsigned tag, PASN_Object::TagClass tagClass)
  10039.   : PASN_Sequence(tag, tagClass, 3, TRUE, 0)
  10040. {
  10041. }
  10042.  
  10043.  
  10044. #ifndef PASN_NOPRINTON
  10045. void H248_IndAudStreamParms::PrintOn(ostream & strm) const
  10046. {
  10047.   int indent = strm.precision() + 2;
  10048.   strm << "{\n";
  10049.   if (HasOptionalField(e_localControlDescriptor))
  10050.     strm << setw(indent+25) << "localControlDescriptor = " << setprecision(indent) << m_localControlDescriptor << '\n';
  10051.   if (HasOptionalField(e_localDescriptor))
  10052.     strm << setw(indent+18) << "localDescriptor = " << setprecision(indent) << m_localDescriptor << '\n';
  10053.   if (HasOptionalField(e_remoteDescriptor))
  10054.     strm << setw(indent+19) << "remoteDescriptor = " << setprecision(indent) << m_remoteDescriptor << '\n';
  10055.   strm << setw(indent-1) << "}";
  10056. }
  10057. #endif
  10058.  
  10059.  
  10060. PObject::Comparison H248_IndAudStreamParms::Compare(const PObject & obj) const
  10061. {
  10062. #ifndef PASN_LEANANDMEAN
  10063.   PAssert(IsDescendant(H248_IndAudStreamParms::Class()), PInvalidCast);
  10064. #endif
  10065.   const H248_IndAudStreamParms & other = (const H248_IndAudStreamParms &)obj;
  10066.  
  10067.   Comparison result;
  10068.  
  10069.   if ((result = m_localControlDescriptor.Compare(other.m_localControlDescriptor)) != EqualTo)
  10070.     return result;
  10071.   if ((result = m_localDescriptor.Compare(other.m_localDescriptor)) != EqualTo)
  10072.     return result;
  10073.   if ((result = m_remoteDescriptor.Compare(other.m_remoteDescriptor)) != EqualTo)
  10074.     return result;
  10075.  
  10076.   return PASN_Sequence::Compare(other);
  10077. }
  10078.  
  10079.  
  10080. PINDEX H248_IndAudStreamParms::GetDataLength() const
  10081. {
  10082.   PINDEX length = 0;
  10083.   if (HasOptionalField(e_localControlDescriptor))
  10084.     length += m_localControlDescriptor.GetObjectLength();
  10085.   if (HasOptionalField(e_localDescriptor))
  10086.     length += m_localDescriptor.GetObjectLength();
  10087.   if (HasOptionalField(e_remoteDescriptor))
  10088.     length += m_remoteDescriptor.GetObjectLength();
  10089.   return length;
  10090. }
  10091.  
  10092.  
  10093. BOOL H248_IndAudStreamParms::Decode(PASN_Stream & strm)
  10094. {
  10095.   if (!PreambleDecode(strm))
  10096.     return FALSE;
  10097.  
  10098.   if (HasOptionalField(e_localControlDescriptor) && !m_localControlDescriptor.Decode(strm))
  10099.     return FALSE;
  10100.   if (HasOptionalField(e_localDescriptor) && !m_localDescriptor.Decode(strm))
  10101.     return FALSE;
  10102.   if (HasOptionalField(e_remoteDescriptor) && !m_remoteDescriptor.Decode(strm))
  10103.     return FALSE;
  10104.  
  10105.   return UnknownExtensionsDecode(strm);
  10106. }
  10107.  
  10108.  
  10109. void H248_IndAudStreamParms::Encode(PASN_Stream & strm) const
  10110. {
  10111.   PreambleEncode(strm);
  10112.  
  10113.   if (HasOptionalField(e_localControlDescriptor))
  10114.     m_localControlDescriptor.Encode(strm);
  10115.   if (HasOptionalField(e_localDescriptor))
  10116.     m_localDescriptor.Encode(strm);
  10117.   if (HasOptionalField(e_remoteDescriptor))
  10118.     m_remoteDescriptor.Encode(strm);
  10119.  
  10120.   UnknownExtensionsEncode(strm);
  10121. }
  10122.  
  10123.  
  10124. PObject * H248_IndAudStreamParms::Clone() const
  10125. {
  10126. #ifndef PASN_LEANANDMEAN
  10127.   PAssert(IsClass(H248_IndAudStreamParms::Class()), PInvalidCast);
  10128. #endif
  10129.   return new H248_IndAudStreamParms(*this);
  10130. }
  10131.  
  10132.  
  10133. //
  10134. // IndAudSeqSigList
  10135. //
  10136.  
  10137. H248_IndAudSeqSigList::H248_IndAudSeqSigList(unsigned tag, PASN_Object::TagClass tagClass)
  10138.   : PASN_Sequence(tag, tagClass, 1, FALSE, 0)
  10139. {
  10140.   m_id.SetConstraints(PASN_Object::FixedConstraint, 0, 65535);
  10141. }
  10142.  
  10143.  
  10144. #ifndef PASN_NOPRINTON
  10145. void H248_IndAudSeqSigList::PrintOn(ostream & strm) const
  10146. {
  10147.   int indent = strm.precision() + 2;
  10148.   strm << "{\n";
  10149.   strm << setw(indent+5) << "id = " << setprecision(indent) << m_id << '\n';
  10150.   if (HasOptionalField(e_signalList))
  10151.     strm << setw(indent+13) << "signalList = " << setprecision(indent) << m_signalList << '\n';
  10152.   strm << setw(indent-1) << "}";
  10153. }
  10154. #endif
  10155.  
  10156.  
  10157. PObject::Comparison H248_IndAudSeqSigList::Compare(const PObject & obj) const
  10158. {
  10159. #ifndef PASN_LEANANDMEAN
  10160.   PAssert(IsDescendant(H248_IndAudSeqSigList::Class()), PInvalidCast);
  10161. #endif
  10162.   const H248_IndAudSeqSigList & other = (const H248_IndAudSeqSigList &)obj;
  10163.  
  10164.   Comparison result;
  10165.  
  10166.   if ((result = m_id.Compare(other.m_id)) != EqualTo)
  10167.     return result;
  10168.   if ((result = m_signalList.Compare(other.m_signalList)) != EqualTo)
  10169.     return result;
  10170.  
  10171.   return PASN_Sequence::Compare(other);
  10172. }
  10173.  
  10174.  
  10175. PINDEX H248_IndAudSeqSigList::GetDataLength() const
  10176. {
  10177.   PINDEX length = 0;
  10178.   length += m_id.GetObjectLength();
  10179.   if (HasOptionalField(e_signalList))
  10180.     length += m_signalList.GetObjectLength();
  10181.   return length;
  10182. }
  10183.  
  10184.  
  10185. BOOL H248_IndAudSeqSigList::Decode(PASN_Stream & strm)
  10186. {
  10187.   if (!PreambleDecode(strm))
  10188.     return FALSE;
  10189.  
  10190.   if (!m_id.Decode(strm))
  10191.     return FALSE;
  10192.   if (HasOptionalField(e_signalList) && !m_signalList.Decode(strm))
  10193.     return FALSE;
  10194.  
  10195.   return UnknownExtensionsDecode(strm);
  10196. }
  10197.  
  10198.  
  10199. void H248_IndAudSeqSigList::Encode(PASN_Stream & strm) const
  10200. {
  10201.   PreambleEncode(strm);
  10202.  
  10203.   m_id.Encode(strm);
  10204.   if (HasOptionalField(e_signalList))
  10205.     m_signalList.Encode(strm);
  10206.  
  10207.   UnknownExtensionsEncode(strm);
  10208. }
  10209.  
  10210.  
  10211. PObject * H248_IndAudSeqSigList::Clone() const
  10212. {
  10213. #ifndef PASN_LEANANDMEAN
  10214.   PAssert(IsClass(H248_IndAudSeqSigList::Class()), PInvalidCast);
  10215. #endif
  10216.   return new H248_IndAudSeqSigList(*this);
  10217. }
  10218.  
  10219.  
  10220. //
  10221. // NotifyRequest
  10222. //
  10223.  
  10224. H248_NotifyRequest::H248_NotifyRequest(unsigned tag, PASN_Object::TagClass tagClass)
  10225.   : PASN_Sequence(tag, tagClass, 1, TRUE, 0)
  10226. {
  10227. }
  10228.  
  10229.  
  10230. #ifndef PASN_NOPRINTON
  10231. void H248_NotifyRequest::PrintOn(ostream & strm) const
  10232. {
  10233.   int indent = strm.precision() + 2;
  10234.   strm << "{\n";
  10235.   strm << setw(indent+16) << "terminationID = " << setprecision(indent) << m_terminationID << '\n';
  10236.   strm << setw(indent+27) << "observedEventsDescriptor = " << setprecision(indent) << m_observedEventsDescriptor << '\n';
  10237.   if (HasOptionalField(e_errorDescriptor))
  10238.     strm << setw(indent+18) << "errorDescriptor = " << setprecision(indent) << m_errorDescriptor << '\n';
  10239.   strm << setw(indent-1) << "}";
  10240. }
  10241. #endif
  10242.  
  10243.  
  10244. PObject::Comparison H248_NotifyRequest::Compare(const PObject & obj) const
  10245. {
  10246. #ifndef PASN_LEANANDMEAN
  10247.   PAssert(IsDescendant(H248_NotifyRequest::Class()), PInvalidCast);
  10248. #endif
  10249.   const H248_NotifyRequest & other = (const H248_NotifyRequest &)obj;
  10250.  
  10251.   Comparison result;
  10252.  
  10253.   if ((result = m_terminationID.Compare(other.m_terminationID)) != EqualTo)
  10254.     return result;
  10255.   if ((result = m_observedEventsDescriptor.Compare(other.m_observedEventsDescriptor)) != EqualTo)
  10256.     return result;
  10257.   if ((result = m_errorDescriptor.Compare(other.m_errorDescriptor)) != EqualTo)
  10258.     return result;
  10259.  
  10260.   return PASN_Sequence::Compare(other);
  10261. }
  10262.  
  10263.  
  10264. PINDEX H248_NotifyRequest::GetDataLength() const
  10265. {
  10266.   PINDEX length = 0;
  10267.   length += m_terminationID.GetObjectLength();
  10268.   length += m_observedEventsDescriptor.GetObjectLength();
  10269.   if (HasOptionalField(e_errorDescriptor))
  10270.     length += m_errorDescriptor.GetObjectLength();
  10271.   return length;
  10272. }
  10273.  
  10274.  
  10275. BOOL H248_NotifyRequest::Decode(PASN_Stream & strm)
  10276. {
  10277.   if (!PreambleDecode(strm))
  10278.     return FALSE;
  10279.  
  10280.   if (!m_terminationID.Decode(strm))
  10281.     return FALSE;
  10282.   if (!m_observedEventsDescriptor.Decode(strm))
  10283.     return FALSE;
  10284.   if (HasOptionalField(e_errorDescriptor) && !m_errorDescriptor.Decode(strm))
  10285.     return FALSE;
  10286.  
  10287.   return UnknownExtensionsDecode(strm);
  10288. }
  10289.  
  10290.  
  10291. void H248_NotifyRequest::Encode(PASN_Stream & strm) const
  10292. {
  10293.   PreambleEncode(strm);
  10294.  
  10295.   m_terminationID.Encode(strm);
  10296.   m_observedEventsDescriptor.Encode(strm);
  10297.   if (HasOptionalField(e_errorDescriptor))
  10298.     m_errorDescriptor.Encode(strm);
  10299.  
  10300.   UnknownExtensionsEncode(strm);
  10301. }
  10302.  
  10303.  
  10304. PObject * H248_NotifyRequest::Clone() const
  10305. {
  10306. #ifndef PASN_LEANANDMEAN
  10307.   PAssert(IsClass(H248_NotifyRequest::Class()), PInvalidCast);
  10308. #endif
  10309.   return new H248_NotifyRequest(*this);
  10310. }
  10311.  
  10312.  
  10313. //
  10314. // ObservedEvent
  10315. //
  10316.  
  10317. H248_ObservedEvent::H248_ObservedEvent(unsigned tag, PASN_Object::TagClass tagClass)
  10318.   : PASN_Sequence(tag, tagClass, 2, TRUE, 0)
  10319. {
  10320. }
  10321.  
  10322.  
  10323. #ifndef PASN_NOPRINTON
  10324. void H248_ObservedEvent::PrintOn(ostream & strm) const
  10325. {
  10326.   int indent = strm.precision() + 2;
  10327.   strm << "{\n";
  10328.   strm << setw(indent+12) << "eventName = " << setprecision(indent) << m_eventName << '\n';
  10329.   if (HasOptionalField(e_streamID))
  10330.     strm << setw(indent+11) << "streamID = " << setprecision(indent) << m_streamID << '\n';
  10331.   strm << setw(indent+15) << "eventParList = " << setprecision(indent) << m_eventParList << '\n';
  10332.   if (HasOptionalField(e_timeNotation))
  10333.     strm << setw(indent+15) << "timeNotation = " << setprecision(indent) << m_timeNotation << '\n';
  10334.   strm << setw(indent-1) << "}";
  10335. }
  10336. #endif
  10337.  
  10338.  
  10339. PObject::Comparison H248_ObservedEvent::Compare(const PObject & obj) const
  10340. {
  10341. #ifndef PASN_LEANANDMEAN
  10342.   PAssert(IsDescendant(H248_ObservedEvent::Class()), PInvalidCast);
  10343. #endif
  10344.   const H248_ObservedEvent & other = (const H248_ObservedEvent &)obj;
  10345.  
  10346.   Comparison result;
  10347.  
  10348.   if ((result = m_eventName.Compare(other.m_eventName)) != EqualTo)
  10349.     return result;
  10350.   if ((result = m_streamID.Compare(other.m_streamID)) != EqualTo)
  10351.     return result;
  10352.   if ((result = m_eventParList.Compare(other.m_eventParList)) != EqualTo)
  10353.     return result;
  10354.   if ((result = m_timeNotation.Compare(other.m_timeNotation)) != EqualTo)
  10355.     return result;
  10356.  
  10357.   return PASN_Sequence::Compare(other);
  10358. }
  10359.  
  10360.  
  10361. PINDEX H248_ObservedEvent::GetDataLength() const
  10362. {
  10363.   PINDEX length = 0;
  10364.   length += m_eventName.GetObjectLength();
  10365.   if (HasOptionalField(e_streamID))
  10366.     length += m_streamID.GetObjectLength();
  10367.   length += m_eventParList.GetObjectLength();
  10368.   if (HasOptionalField(e_timeNotation))
  10369.     length += m_timeNotation.GetObjectLength();
  10370.   return length;
  10371. }
  10372.  
  10373.  
  10374. BOOL H248_ObservedEvent::Decode(PASN_Stream & strm)
  10375. {
  10376.   if (!PreambleDecode(strm))
  10377.     return FALSE;
  10378.  
  10379.   if (!m_eventName.Decode(strm))
  10380.     return FALSE;
  10381.   if (HasOptionalField(e_streamID) && !m_streamID.Decode(strm))
  10382.     return FALSE;
  10383.   if (!m_eventParList.Decode(strm))
  10384.     return FALSE;
  10385.   if (HasOptionalField(e_timeNotation) && !m_timeNotation.Decode(strm))
  10386.     return FALSE;
  10387.  
  10388.   return UnknownExtensionsDecode(strm);
  10389. }
  10390.  
  10391.  
  10392. void H248_ObservedEvent::Encode(PASN_Stream & strm) const
  10393. {
  10394.   PreambleEncode(strm);
  10395.  
  10396.   m_eventName.Encode(strm);
  10397.   if (HasOptionalField(e_streamID))
  10398.     m_streamID.Encode(strm);
  10399.   m_eventParList.Encode(strm);
  10400.   if (HasOptionalField(e_timeNotation))
  10401.     m_timeNotation.Encode(strm);
  10402.  
  10403.   UnknownExtensionsEncode(strm);
  10404. }
  10405.  
  10406.  
  10407. PObject * H248_ObservedEvent::Clone() const
  10408. {
  10409. #ifndef PASN_LEANANDMEAN
  10410.   PAssert(IsClass(H248_ObservedEvent::Class()), PInvalidCast);
  10411. #endif
  10412.   return new H248_ObservedEvent(*this);
  10413. }
  10414.  
  10415.  
  10416. //
  10417. // MediaDescriptor
  10418. //
  10419.  
  10420. H248_MediaDescriptor::H248_MediaDescriptor(unsigned tag, PASN_Object::TagClass tagClass)
  10421.   : PASN_Sequence(tag, tagClass, 2, TRUE, 0)
  10422. {
  10423. }
  10424.  
  10425.  
  10426. #ifndef PASN_NOPRINTON
  10427. void H248_MediaDescriptor::PrintOn(ostream & strm) const
  10428. {
  10429.   int indent = strm.precision() + 2;
  10430.   strm << "{\n";
  10431.   if (HasOptionalField(e_termStateDescr))
  10432.     strm << setw(indent+17) << "termStateDescr = " << setprecision(indent) << m_termStateDescr << '\n';
  10433.   if (HasOptionalField(e_streams))
  10434.     strm << setw(indent+10) << "streams = " << setprecision(indent) << m_streams << '\n';
  10435.   strm << setw(indent-1) << "}";
  10436. }
  10437. #endif
  10438.  
  10439.  
  10440. PObject::Comparison H248_MediaDescriptor::Compare(const PObject & obj) const
  10441. {
  10442. #ifndef PASN_LEANANDMEAN
  10443.   PAssert(IsDescendant(H248_MediaDescriptor::Class()), PInvalidCast);
  10444. #endif
  10445.   const H248_MediaDescriptor & other = (const H248_MediaDescriptor &)obj;
  10446.  
  10447.   Comparison result;
  10448.  
  10449.   if ((result = m_termStateDescr.Compare(other.m_termStateDescr)) != EqualTo)
  10450.     return result;
  10451.   if ((result = m_streams.Compare(other.m_streams)) != EqualTo)
  10452.     return result;
  10453.  
  10454.   return PASN_Sequence::Compare(other);
  10455. }
  10456.  
  10457.  
  10458. PINDEX H248_MediaDescriptor::GetDataLength() const
  10459. {
  10460.   PINDEX length = 0;
  10461.   if (HasOptionalField(e_termStateDescr))
  10462.     length += m_termStateDescr.GetObjectLength();
  10463.   if (HasOptionalField(e_streams))
  10464.     length += m_streams.GetObjectLength();
  10465.   return length;
  10466. }
  10467.  
  10468.  
  10469. BOOL H248_MediaDescriptor::Decode(PASN_Stream & strm)
  10470. {
  10471.   if (!PreambleDecode(strm))
  10472.     return FALSE;
  10473.  
  10474.   if (HasOptionalField(e_termStateDescr) && !m_termStateDescr.Decode(strm))
  10475.     return FALSE;
  10476.   if (HasOptionalField(e_streams) && !m_streams.Decode(strm))
  10477.     return FALSE;
  10478.  
  10479.   return UnknownExtensionsDecode(strm);
  10480. }
  10481.  
  10482.  
  10483. void H248_MediaDescriptor::Encode(PASN_Stream & strm) const
  10484. {
  10485.   PreambleEncode(strm);
  10486.  
  10487.   if (HasOptionalField(e_termStateDescr))
  10488.     m_termStateDescr.Encode(strm);
  10489.   if (HasOptionalField(e_streams))
  10490.     m_streams.Encode(strm);
  10491.  
  10492.   UnknownExtensionsEncode(strm);
  10493. }
  10494.  
  10495.  
  10496. PObject * H248_MediaDescriptor::Clone() const
  10497. {
  10498. #ifndef PASN_LEANANDMEAN
  10499.   PAssert(IsClass(H248_MediaDescriptor::Class()), PInvalidCast);
  10500. #endif
  10501.   return new H248_MediaDescriptor(*this);
  10502. }
  10503.  
  10504.  
  10505. //
  10506. // StreamParms
  10507. //
  10508.  
  10509. H248_StreamParms::H248_StreamParms(unsigned tag, PASN_Object::TagClass tagClass)
  10510.   : PASN_Sequence(tag, tagClass, 3, TRUE, 0)
  10511. {
  10512. }
  10513.  
  10514.  
  10515. #ifndef PASN_NOPRINTON
  10516. void H248_StreamParms::PrintOn(ostream & strm) const
  10517. {
  10518.   int indent = strm.precision() + 2;
  10519.   strm << "{\n";
  10520.   if (HasOptionalField(e_localControlDescriptor))
  10521.     strm << setw(indent+25) << "localControlDescriptor = " << setprecision(indent) << m_localControlDescriptor << '\n';
  10522.   if (HasOptionalField(e_localDescriptor))
  10523.     strm << setw(indent+18) << "localDescriptor = " << setprecision(indent) << m_localDescriptor << '\n';
  10524.   if (HasOptionalField(e_remoteDescriptor))
  10525.     strm << setw(indent+19) << "remoteDescriptor = " << setprecision(indent) << m_remoteDescriptor << '\n';
  10526.   strm << setw(indent-1) << "}";
  10527. }
  10528. #endif
  10529.  
  10530.  
  10531. PObject::Comparison H248_StreamParms::Compare(const PObject & obj) const
  10532. {
  10533. #ifndef PASN_LEANANDMEAN
  10534.   PAssert(IsDescendant(H248_StreamParms::Class()), PInvalidCast);
  10535. #endif
  10536.   const H248_StreamParms & other = (const H248_StreamParms &)obj;
  10537.  
  10538.   Comparison result;
  10539.  
  10540.   if ((result = m_localControlDescriptor.Compare(other.m_localControlDescriptor)) != EqualTo)
  10541.     return result;
  10542.   if ((result = m_localDescriptor.Compare(other.m_localDescriptor)) != EqualTo)
  10543.     return result;
  10544.   if ((result = m_remoteDescriptor.Compare(other.m_remoteDescriptor)) != EqualTo)
  10545.     return result;
  10546.  
  10547.   return PASN_Sequence::Compare(other);
  10548. }
  10549.  
  10550.  
  10551. PINDEX H248_StreamParms::GetDataLength() const
  10552. {
  10553.   PINDEX length = 0;
  10554.   if (HasOptionalField(e_localControlDescriptor))
  10555.     length += m_localControlDescriptor.GetObjectLength();
  10556.   if (HasOptionalField(e_localDescriptor))
  10557.     length += m_localDescriptor.GetObjectLength();
  10558.   if (HasOptionalField(e_remoteDescriptor))
  10559.     length += m_remoteDescriptor.GetObjectLength();
  10560.   return length;
  10561. }
  10562.  
  10563.  
  10564. BOOL H248_StreamParms::Decode(PASN_Stream & strm)
  10565. {
  10566.   if (!PreambleDecode(strm))
  10567.     return FALSE;
  10568.  
  10569.   if (HasOptionalField(e_localControlDescriptor) && !m_localControlDescriptor.Decode(strm))
  10570.     return FALSE;
  10571.   if (HasOptionalField(e_localDescriptor) && !m_localDescriptor.Decode(strm))
  10572.     return FALSE;
  10573.   if (HasOptionalField(e_remoteDescriptor) && !m_remoteDescriptor.Decode(strm))
  10574.     return FALSE;
  10575.  
  10576.   return UnknownExtensionsDecode(strm);
  10577. }
  10578.  
  10579.  
  10580. void H248_StreamParms::Encode(PASN_Stream & strm) const
  10581. {
  10582.   PreambleEncode(strm);
  10583.  
  10584.   if (HasOptionalField(e_localControlDescriptor))
  10585.     m_localControlDescriptor.Encode(strm);
  10586.   if (HasOptionalField(e_localDescriptor))
  10587.     m_localDescriptor.Encode(strm);
  10588.   if (HasOptionalField(e_remoteDescriptor))
  10589.     m_remoteDescriptor.Encode(strm);
  10590.  
  10591.   UnknownExtensionsEncode(strm);
  10592. }
  10593.  
  10594.  
  10595. PObject * H248_StreamParms::Clone() const
  10596. {
  10597. #ifndef PASN_LEANANDMEAN
  10598.   PAssert(IsClass(H248_StreamParms::Class()), PInvalidCast);
  10599. #endif
  10600.   return new H248_StreamParms(*this);
  10601. }
  10602.  
  10603.  
  10604. //
  10605. // MuxDescriptor
  10606. //
  10607.  
  10608. H248_MuxDescriptor::H248_MuxDescriptor(unsigned tag, PASN_Object::TagClass tagClass)
  10609.   : PASN_Sequence(tag, tagClass, 1, TRUE, 0)
  10610. {
  10611. }
  10612.  
  10613.  
  10614. #ifndef PASN_NOPRINTON
  10615. void H248_MuxDescriptor::PrintOn(ostream & strm) const
  10616. {
  10617.   int indent = strm.precision() + 2;
  10618.   strm << "{\n";
  10619.   strm << setw(indent+10) << "muxType = " << setprecision(indent) << m_muxType << '\n';
  10620.   strm << setw(indent+11) << "termList = " << setprecision(indent) << m_termList << '\n';
  10621.   if (HasOptionalField(e_nonStandardData))
  10622.     strm << setw(indent+18) << "nonStandardData = " << setprecision(indent) << m_nonStandardData << '\n';
  10623.   strm << setw(indent-1) << "}";
  10624. }
  10625. #endif
  10626.  
  10627.  
  10628. PObject::Comparison H248_MuxDescriptor::Compare(const PObject & obj) const
  10629. {
  10630. #ifndef PASN_LEANANDMEAN
  10631.   PAssert(IsDescendant(H248_MuxDescriptor::Class()), PInvalidCast);
  10632. #endif
  10633.   const H248_MuxDescriptor & other = (const H248_MuxDescriptor &)obj;
  10634.  
  10635.   Comparison result;
  10636.  
  10637.   if ((result = m_muxType.Compare(other.m_muxType)) != EqualTo)
  10638.     return result;
  10639.   if ((result = m_termList.Compare(other.m_termList)) != EqualTo)
  10640.     return result;
  10641.   if ((result = m_nonStandardData.Compare(other.m_nonStandardData)) != EqualTo)
  10642.     return result;
  10643.  
  10644.   return PASN_Sequence::Compare(other);
  10645. }
  10646.  
  10647.  
  10648. PINDEX H248_MuxDescriptor::GetDataLength() const
  10649. {
  10650.   PINDEX length = 0;
  10651.   length += m_muxType.GetObjectLength();
  10652.   length += m_termList.GetObjectLength();
  10653.   if (HasOptionalField(e_nonStandardData))
  10654.     length += m_nonStandardData.GetObjectLength();
  10655.   return length;
  10656. }
  10657.  
  10658.  
  10659. BOOL H248_MuxDescriptor::Decode(PASN_Stream & strm)
  10660. {
  10661.   if (!PreambleDecode(strm))
  10662.     return FALSE;
  10663.  
  10664.   if (!m_muxType.Decode(strm))
  10665.     return FALSE;
  10666.   if (!m_termList.Decode(strm))
  10667.     return FALSE;
  10668.   if (HasOptionalField(e_nonStandardData) && !m_nonStandardData.Decode(strm))
  10669.     return FALSE;
  10670.  
  10671.   return UnknownExtensionsDecode(strm);
  10672. }
  10673.  
  10674.  
  10675. void H248_MuxDescriptor::Encode(PASN_Stream & strm) const
  10676. {
  10677.   PreambleEncode(strm);
  10678.  
  10679.   m_muxType.Encode(strm);
  10680.   m_termList.Encode(strm);
  10681.   if (HasOptionalField(e_nonStandardData))
  10682.     m_nonStandardData.Encode(strm);
  10683.  
  10684.   UnknownExtensionsEncode(strm);
  10685. }
  10686.  
  10687.  
  10688. PObject * H248_MuxDescriptor::Clone() const
  10689. {
  10690. #ifndef PASN_LEANANDMEAN
  10691.   PAssert(IsClass(H248_MuxDescriptor::Class()), PInvalidCast);
  10692. #endif
  10693.   return new H248_MuxDescriptor(*this);
  10694. }
  10695.  
  10696.  
  10697. //
  10698. // RequestedActions
  10699. //
  10700.  
  10701. H248_RequestedActions::H248_RequestedActions(unsigned tag, PASN_Object::TagClass tagClass)
  10702.   : PASN_Sequence(tag, tagClass, 4, TRUE, 0)
  10703. {
  10704. }
  10705.  
  10706.  
  10707. #ifndef PASN_NOPRINTON
  10708. void H248_RequestedActions::PrintOn(ostream & strm) const
  10709. {
  10710.   int indent = strm.precision() + 2;
  10711.   strm << "{\n";
  10712.   if (HasOptionalField(e_keepActive))
  10713.     strm << setw(indent+13) << "keepActive = " << setprecision(indent) << m_keepActive << '\n';
  10714.   if (HasOptionalField(e_eventDM))
  10715.     strm << setw(indent+10) << "eventDM = " << setprecision(indent) << m_eventDM << '\n';
  10716.   if (HasOptionalField(e_secondEvent))
  10717.     strm << setw(indent+14) << "secondEvent = " << setprecision(indent) << m_secondEvent << '\n';
  10718.   if (HasOptionalField(e_signalsDescriptor))
  10719.     strm << setw(indent+20) << "signalsDescriptor = " << setprecision(indent) << m_signalsDescriptor << '\n';
  10720.   strm << setw(indent-1) << "}";
  10721. }
  10722. #endif
  10723.  
  10724.  
  10725. PObject::Comparison H248_RequestedActions::Compare(const PObject & obj) const
  10726. {
  10727. #ifndef PASN_LEANANDMEAN
  10728.   PAssert(IsDescendant(H248_RequestedActions::Class()), PInvalidCast);
  10729. #endif
  10730.   const H248_RequestedActions & other = (const H248_RequestedActions &)obj;
  10731.  
  10732.   Comparison result;
  10733.  
  10734.   if ((result = m_keepActive.Compare(other.m_keepActive)) != EqualTo)
  10735.     return result;
  10736.   if ((result = m_eventDM.Compare(other.m_eventDM)) != EqualTo)
  10737.     return result;
  10738.   if ((result = m_secondEvent.Compare(other.m_secondEvent)) != EqualTo)
  10739.     return result;
  10740.   if ((result = m_signalsDescriptor.Compare(other.m_signalsDescriptor)) != EqualTo)
  10741.     return result;
  10742.  
  10743.   return PASN_Sequence::Compare(other);
  10744. }
  10745.  
  10746.  
  10747. PINDEX H248_RequestedActions::GetDataLength() const
  10748. {
  10749.   PINDEX length = 0;
  10750.   if (HasOptionalField(e_keepActive))
  10751.     length += m_keepActive.GetObjectLength();
  10752.   if (HasOptionalField(e_eventDM))
  10753.     length += m_eventDM.GetObjectLength();
  10754.   if (HasOptionalField(e_secondEvent))
  10755.     length += m_secondEvent.GetObjectLength();
  10756.   if (HasOptionalField(e_signalsDescriptor))
  10757.     length += m_signalsDescriptor.GetObjectLength();
  10758.   return length;
  10759. }
  10760.  
  10761.  
  10762. BOOL H248_RequestedActions::Decode(PASN_Stream & strm)
  10763. {
  10764.   if (!PreambleDecode(strm))
  10765.     return FALSE;
  10766.  
  10767.   if (HasOptionalField(e_keepActive) && !m_keepActive.Decode(strm))
  10768.     return FALSE;
  10769.   if (HasOptionalField(e_eventDM) && !m_eventDM.Decode(strm))
  10770.     return FALSE;
  10771.   if (HasOptionalField(e_secondEvent) && !m_secondEvent.Decode(strm))
  10772.     return FALSE;
  10773.   if (HasOptionalField(e_signalsDescriptor) && !m_signalsDescriptor.Decode(strm))
  10774.     return FALSE;
  10775.  
  10776.   return UnknownExtensionsDecode(strm);
  10777. }
  10778.  
  10779.  
  10780. void H248_RequestedActions::Encode(PASN_Stream & strm) const
  10781. {
  10782.   PreambleEncode(strm);
  10783.  
  10784.   if (HasOptionalField(e_keepActive))
  10785.     m_keepActive.Encode(strm);
  10786.   if (HasOptionalField(e_eventDM))
  10787.     m_eventDM.Encode(strm);
  10788.   if (HasOptionalField(e_secondEvent))
  10789.     m_secondEvent.Encode(strm);
  10790.   if (HasOptionalField(e_signalsDescriptor))
  10791.     m_signalsDescriptor.Encode(strm);
  10792.  
  10793.   UnknownExtensionsEncode(strm);
  10794. }
  10795.  
  10796.  
  10797. PObject * H248_RequestedActions::Clone() const
  10798. {
  10799. #ifndef PASN_LEANANDMEAN
  10800.   PAssert(IsClass(H248_RequestedActions::Class()), PInvalidCast);
  10801. #endif
  10802.   return new H248_RequestedActions(*this);
  10803. }
  10804.  
  10805.  
  10806. //
  10807. // SecondRequestedEvent
  10808. //
  10809.  
  10810. H248_SecondRequestedEvent::H248_SecondRequestedEvent(unsigned tag, PASN_Object::TagClass tagClass)
  10811.   : PASN_Sequence(tag, tagClass, 2, TRUE, 0)
  10812. {
  10813. }
  10814.  
  10815.  
  10816. #ifndef PASN_NOPRINTON
  10817. void H248_SecondRequestedEvent::PrintOn(ostream & strm) const
  10818. {
  10819.   int indent = strm.precision() + 2;
  10820.   strm << "{\n";
  10821.   strm << setw(indent+11) << "pkgdName = " << setprecision(indent) << m_pkgdName << '\n';
  10822.   if (HasOptionalField(e_streamID))
  10823.     strm << setw(indent+11) << "streamID = " << setprecision(indent) << m_streamID << '\n';
  10824.   if (HasOptionalField(e_eventAction))
  10825.     strm << setw(indent+14) << "eventAction = " << setprecision(indent) << m_eventAction << '\n';
  10826.   strm << setw(indent+12) << "evParList = " << setprecision(indent) << m_evParList << '\n';
  10827.   strm << setw(indent-1) << "}";
  10828. }
  10829. #endif
  10830.  
  10831.  
  10832. PObject::Comparison H248_SecondRequestedEvent::Compare(const PObject & obj) const
  10833. {
  10834. #ifndef PASN_LEANANDMEAN
  10835.   PAssert(IsDescendant(H248_SecondRequestedEvent::Class()), PInvalidCast);
  10836. #endif
  10837.   const H248_SecondRequestedEvent & other = (const H248_SecondRequestedEvent &)obj;
  10838.  
  10839.   Comparison result;
  10840.  
  10841.   if ((result = m_pkgdName.Compare(other.m_pkgdName)) != EqualTo)
  10842.     return result;
  10843.   if ((result = m_streamID.Compare(other.m_streamID)) != EqualTo)
  10844.     return result;
  10845.   if ((result = m_eventAction.Compare(other.m_eventAction)) != EqualTo)
  10846.     return result;
  10847.   if ((result = m_evParList.Compare(other.m_evParList)) != EqualTo)
  10848.     return result;
  10849.  
  10850.   return PASN_Sequence::Compare(other);
  10851. }
  10852.  
  10853.  
  10854. PINDEX H248_SecondRequestedEvent::GetDataLength() const
  10855. {
  10856.   PINDEX length = 0;
  10857.   length += m_pkgdName.GetObjectLength();
  10858.   if (HasOptionalField(e_streamID))
  10859.     length += m_streamID.GetObjectLength();
  10860.   if (HasOptionalField(e_eventAction))
  10861.     length += m_eventAction.GetObjectLength();
  10862.   length += m_evParList.GetObjectLength();
  10863.   return length;
  10864. }
  10865.  
  10866.  
  10867. BOOL H248_SecondRequestedEvent::Decode(PASN_Stream & strm)
  10868. {
  10869.   if (!PreambleDecode(strm))
  10870.     return FALSE;
  10871.  
  10872.   if (!m_pkgdName.Decode(strm))
  10873.     return FALSE;
  10874.   if (HasOptionalField(e_streamID) && !m_streamID.Decode(strm))
  10875.     return FALSE;
  10876.   if (HasOptionalField(e_eventAction) && !m_eventAction.Decode(strm))
  10877.     return FALSE;
  10878.   if (!m_evParList.Decode(strm))
  10879.     return FALSE;
  10880.  
  10881.   return UnknownExtensionsDecode(strm);
  10882. }
  10883.  
  10884.  
  10885. void H248_SecondRequestedEvent::Encode(PASN_Stream & strm) const
  10886. {
  10887.   PreambleEncode(strm);
  10888.  
  10889.   m_pkgdName.Encode(strm);
  10890.   if (HasOptionalField(e_streamID))
  10891.     m_streamID.Encode(strm);
  10892.   if (HasOptionalField(e_eventAction))
  10893.     m_eventAction.Encode(strm);
  10894.   m_evParList.Encode(strm);
  10895.  
  10896.   UnknownExtensionsEncode(strm);
  10897. }
  10898.  
  10899.  
  10900. PObject * H248_SecondRequestedEvent::Clone() const
  10901. {
  10902. #ifndef PASN_LEANANDMEAN
  10903.   PAssert(IsClass(H248_SecondRequestedEvent::Class()), PInvalidCast);
  10904. #endif
  10905.   return new H248_SecondRequestedEvent(*this);
  10906. }
  10907.  
  10908.  
  10909. //
  10910. // ModemDescriptor
  10911. //
  10912.  
  10913. H248_ModemDescriptor::H248_ModemDescriptor(unsigned tag, PASN_Object::TagClass tagClass)
  10914.   : PASN_Sequence(tag, tagClass, 1, FALSE, 0)
  10915. {
  10916. }
  10917.  
  10918.  
  10919. #ifndef PASN_NOPRINTON
  10920. void H248_ModemDescriptor::PrintOn(ostream & strm) const
  10921. {
  10922.   int indent = strm.precision() + 2;
  10923.   strm << "{\n";
  10924.   strm << setw(indent+6) << "mtl = " << setprecision(indent) << m_mtl << '\n';
  10925.   strm << setw(indent+6) << "mpl = " << setprecision(indent) << m_mpl << '\n';
  10926.   if (HasOptionalField(e_nonStandardData))
  10927.     strm << setw(indent+18) << "nonStandardData = " << setprecision(indent) << m_nonStandardData << '\n';
  10928.   strm << setw(indent-1) << "}";
  10929. }
  10930. #endif
  10931.  
  10932.  
  10933. PObject::Comparison H248_ModemDescriptor::Compare(const PObject & obj) const
  10934. {
  10935. #ifndef PASN_LEANANDMEAN
  10936.   PAssert(IsDescendant(H248_ModemDescriptor::Class()), PInvalidCast);
  10937. #endif
  10938.   const H248_ModemDescriptor & other = (const H248_ModemDescriptor &)obj;
  10939.  
  10940.   Comparison result;
  10941.  
  10942.   if ((result = m_mtl.Compare(other.m_mtl)) != EqualTo)
  10943.     return result;
  10944.   if ((result = m_mpl.Compare(other.m_mpl)) != EqualTo)
  10945.     return result;
  10946.   if ((result = m_nonStandardData.Compare(other.m_nonStandardData)) != EqualTo)
  10947.     return result;
  10948.  
  10949.   return PASN_Sequence::Compare(other);
  10950. }
  10951.  
  10952.  
  10953. PINDEX H248_ModemDescriptor::GetDataLength() const
  10954. {
  10955.   PINDEX length = 0;
  10956.   length += m_mtl.GetObjectLength();
  10957.   length += m_mpl.GetObjectLength();
  10958.   if (HasOptionalField(e_nonStandardData))
  10959.     length += m_nonStandardData.GetObjectLength();
  10960.   return length;
  10961. }
  10962.  
  10963.  
  10964. BOOL H248_ModemDescriptor::Decode(PASN_Stream & strm)
  10965. {
  10966.   if (!PreambleDecode(strm))
  10967.     return FALSE;
  10968.  
  10969.   if (!m_mtl.Decode(strm))
  10970.     return FALSE;
  10971.   if (!m_mpl.Decode(strm))
  10972.     return FALSE;
  10973.   if (HasOptionalField(e_nonStandardData) && !m_nonStandardData.Decode(strm))
  10974.     return FALSE;
  10975.  
  10976.   return UnknownExtensionsDecode(strm);
  10977. }
  10978.  
  10979.  
  10980. void H248_ModemDescriptor::Encode(PASN_Stream & strm) const
  10981. {
  10982.   PreambleEncode(strm);
  10983.  
  10984.   m_mtl.Encode(strm);
  10985.   m_mpl.Encode(strm);
  10986.   if (HasOptionalField(e_nonStandardData))
  10987.     m_nonStandardData.Encode(strm);
  10988.  
  10989.   UnknownExtensionsEncode(strm);
  10990. }
  10991.  
  10992.  
  10993. PObject * H248_ModemDescriptor::Clone() const
  10994. {
  10995. #ifndef PASN_LEANANDMEAN
  10996.   PAssert(IsClass(H248_ModemDescriptor::Class()), PInvalidCast);
  10997. #endif
  10998.   return new H248_ModemDescriptor(*this);
  10999. }
  11000.  
  11001.  
  11002. //
  11003. // ServiceChangeParm
  11004. //
  11005.  
  11006. H248_ServiceChangeParm::H248_ServiceChangeParm(unsigned tag, PASN_Object::TagClass tagClass)
  11007.   : PASN_Sequence(tag, tagClass, 7, TRUE, 1)
  11008. {
  11009.   m_serviceChangeVersion.SetConstraints(PASN_Object::FixedConstraint, 0, 99);
  11010.   m_serviceChangeDelay.SetConstraints(PASN_Object::FixedConstraint, 0, 4294967295U);
  11011. }
  11012.  
  11013.  
  11014. #ifndef PASN_NOPRINTON
  11015. void H248_ServiceChangeParm::PrintOn(ostream & strm) const
  11016. {
  11017.   int indent = strm.precision() + 2;
  11018.   strm << "{\n";
  11019.   strm << setw(indent+22) << "serviceChangeMethod = " << setprecision(indent) << m_serviceChangeMethod << '\n';
  11020.   if (HasOptionalField(e_serviceChangeAddress))
  11021.     strm << setw(indent+23) << "serviceChangeAddress = " << setprecision(indent) << m_serviceChangeAddress << '\n';
  11022.   if (HasOptionalField(e_serviceChangeVersion))
  11023.     strm << setw(indent+23) << "serviceChangeVersion = " << setprecision(indent) << m_serviceChangeVersion << '\n';
  11024.   if (HasOptionalField(e_serviceChangeProfile))
  11025.     strm << setw(indent+23) << "serviceChangeProfile = " << setprecision(indent) << m_serviceChangeProfile << '\n';
  11026.   strm << setw(indent+22) << "serviceChangeReason = " << setprecision(indent) << m_serviceChangeReason << '\n';
  11027.   if (HasOptionalField(e_serviceChangeDelay))
  11028.     strm << setw(indent+21) << "serviceChangeDelay = " << setprecision(indent) << m_serviceChangeDelay << '\n';
  11029.   if (HasOptionalField(e_serviceChangeMgcId))
  11030.     strm << setw(indent+21) << "serviceChangeMgcId = " << setprecision(indent) << m_serviceChangeMgcId << '\n';
  11031.   if (HasOptionalField(e_timeStamp))
  11032.     strm << setw(indent+12) << "timeStamp = " << setprecision(indent) << m_timeStamp << '\n';
  11033.   if (HasOptionalField(e_nonStandardData))
  11034.     strm << setw(indent+18) << "nonStandardData = " << setprecision(indent) << m_nonStandardData << '\n';
  11035.   if (HasOptionalField(e_serviceChangeInfo))
  11036.     strm << setw(indent+20) << "serviceChangeInfo = " << setprecision(indent) << m_serviceChangeInfo << '\n';
  11037.   strm << setw(indent-1) << "}";
  11038. }
  11039. #endif
  11040.  
  11041.  
  11042. PObject::Comparison H248_ServiceChangeParm::Compare(const PObject & obj) const
  11043. {
  11044. #ifndef PASN_LEANANDMEAN
  11045.   PAssert(IsDescendant(H248_ServiceChangeParm::Class()), PInvalidCast);
  11046. #endif
  11047.   const H248_ServiceChangeParm & other = (const H248_ServiceChangeParm &)obj;
  11048.  
  11049.   Comparison result;
  11050.  
  11051.   if ((result = m_serviceChangeMethod.Compare(other.m_serviceChangeMethod)) != EqualTo)
  11052.     return result;
  11053.   if ((result = m_serviceChangeAddress.Compare(other.m_serviceChangeAddress)) != EqualTo)
  11054.     return result;
  11055.   if ((result = m_serviceChangeVersion.Compare(other.m_serviceChangeVersion)) != EqualTo)
  11056.     return result;
  11057.   if ((result = m_serviceChangeProfile.Compare(other.m_serviceChangeProfile)) != EqualTo)
  11058.     return result;
  11059.   if ((result = m_serviceChangeReason.Compare(other.m_serviceChangeReason)) != EqualTo)
  11060.     return result;
  11061.   if ((result = m_serviceChangeDelay.Compare(other.m_serviceChangeDelay)) != EqualTo)
  11062.     return result;
  11063.   if ((result = m_serviceChangeMgcId.Compare(other.m_serviceChangeMgcId)) != EqualTo)
  11064.     return result;
  11065.   if ((result = m_timeStamp.Compare(other.m_timeStamp)) != EqualTo)
  11066.     return result;
  11067.   if ((result = m_nonStandardData.Compare(other.m_nonStandardData)) != EqualTo)
  11068.     return result;
  11069.  
  11070.   return PASN_Sequence::Compare(other);
  11071. }
  11072.  
  11073.  
  11074. PINDEX H248_ServiceChangeParm::GetDataLength() const
  11075. {
  11076.   PINDEX length = 0;
  11077.   length += m_serviceChangeMethod.GetObjectLength();
  11078.   if (HasOptionalField(e_serviceChangeAddress))
  11079.     length += m_serviceChangeAddress.GetObjectLength();
  11080.   if (HasOptionalField(e_serviceChangeVersion))
  11081.     length += m_serviceChangeVersion.GetObjectLength();
  11082.   if (HasOptionalField(e_serviceChangeProfile))
  11083.     length += m_serviceChangeProfile.GetObjectLength();
  11084.   length += m_serviceChangeReason.GetObjectLength();
  11085.   if (HasOptionalField(e_serviceChangeDelay))
  11086.     length += m_serviceChangeDelay.GetObjectLength();
  11087.   if (HasOptionalField(e_serviceChangeMgcId))
  11088.     length += m_serviceChangeMgcId.GetObjectLength();
  11089.   if (HasOptionalField(e_timeStamp))
  11090.     length += m_timeStamp.GetObjectLength();
  11091.   if (HasOptionalField(e_nonStandardData))
  11092.     length += m_nonStandardData.GetObjectLength();
  11093.   return length;
  11094. }
  11095.  
  11096.  
  11097. BOOL H248_ServiceChangeParm::Decode(PASN_Stream & strm)
  11098. {
  11099.   if (!PreambleDecode(strm))
  11100.     return FALSE;
  11101.  
  11102.   if (!m_serviceChangeMethod.Decode(strm))
  11103.     return FALSE;
  11104.   if (HasOptionalField(e_serviceChangeAddress) && !m_serviceChangeAddress.Decode(strm))
  11105.     return FALSE;
  11106.   if (HasOptionalField(e_serviceChangeVersion) && !m_serviceChangeVersion.Decode(strm))
  11107.     return FALSE;
  11108.   if (HasOptionalField(e_serviceChangeProfile) && !m_serviceChangeProfile.Decode(strm))
  11109.     return FALSE;
  11110.   if (!m_serviceChangeReason.Decode(strm))
  11111.     return FALSE;
  11112.   if (HasOptionalField(e_serviceChangeDelay) && !m_serviceChangeDelay.Decode(strm))
  11113.     return FALSE;
  11114.   if (HasOptionalField(e_serviceChangeMgcId) && !m_serviceChangeMgcId.Decode(strm))
  11115.     return FALSE;
  11116.   if (HasOptionalField(e_timeStamp) && !m_timeStamp.Decode(strm))
  11117.     return FALSE;
  11118.   if (HasOptionalField(e_nonStandardData) && !m_nonStandardData.Decode(strm))
  11119.     return FALSE;
  11120.   if (!KnownExtensionDecode(strm, e_serviceChangeInfo, m_serviceChangeInfo))
  11121.     return FALSE;
  11122.  
  11123.   return UnknownExtensionsDecode(strm);
  11124. }
  11125.  
  11126.  
  11127. void H248_ServiceChangeParm::Encode(PASN_Stream & strm) const
  11128. {
  11129.   PreambleEncode(strm);
  11130.  
  11131.   m_serviceChangeMethod.Encode(strm);
  11132.   if (HasOptionalField(e_serviceChangeAddress))
  11133.     m_serviceChangeAddress.Encode(strm);
  11134.   if (HasOptionalField(e_serviceChangeVersion))
  11135.     m_serviceChangeVersion.Encode(strm);
  11136.   if (HasOptionalField(e_serviceChangeProfile))
  11137.     m_serviceChangeProfile.Encode(strm);
  11138.   m_serviceChangeReason.Encode(strm);
  11139.   if (HasOptionalField(e_serviceChangeDelay))
  11140.     m_serviceChangeDelay.Encode(strm);
  11141.   if (HasOptionalField(e_serviceChangeMgcId))
  11142.     m_serviceChangeMgcId.Encode(strm);
  11143.   if (HasOptionalField(e_timeStamp))
  11144.     m_timeStamp.Encode(strm);
  11145.   if (HasOptionalField(e_nonStandardData))
  11146.     m_nonStandardData.Encode(strm);
  11147.   KnownExtensionEncode(strm, e_serviceChangeInfo, m_serviceChangeInfo);
  11148.  
  11149.   UnknownExtensionsEncode(strm);
  11150. }
  11151.  
  11152.  
  11153. PObject * H248_ServiceChangeParm::Clone() const
  11154. {
  11155. #ifndef PASN_LEANANDMEAN
  11156.   PAssert(IsClass(H248_ServiceChangeParm::Class()), PInvalidCast);
  11157. #endif
  11158.   return new H248_ServiceChangeParm(*this);
  11159. }
  11160.  
  11161.  
  11162. //
  11163. // IndAudStreamDescriptor
  11164. //
  11165.  
  11166. H248_IndAudStreamDescriptor::H248_IndAudStreamDescriptor(unsigned tag, PASN_Object::TagClass tagClass)
  11167.   : PASN_Sequence(tag, tagClass, 0, FALSE, 0)
  11168. {
  11169. }
  11170.  
  11171.  
  11172. #ifndef PASN_NOPRINTON
  11173. void H248_IndAudStreamDescriptor::PrintOn(ostream & strm) const
  11174. {
  11175.   int indent = strm.precision() + 2;
  11176.   strm << "{\n";
  11177.   strm << setw(indent+11) << "streamID = " << setprecision(indent) << m_streamID << '\n';
  11178.   strm << setw(indent+14) << "streamParms = " << setprecision(indent) << m_streamParms << '\n';
  11179.   strm << setw(indent-1) << "}";
  11180. }
  11181. #endif
  11182.  
  11183.  
  11184. PObject::Comparison H248_IndAudStreamDescriptor::Compare(const PObject & obj) const
  11185. {
  11186. #ifndef PASN_LEANANDMEAN
  11187.   PAssert(IsDescendant(H248_IndAudStreamDescriptor::Class()), PInvalidCast);
  11188. #endif
  11189.   const H248_IndAudStreamDescriptor & other = (const H248_IndAudStreamDescriptor &)obj;
  11190.  
  11191.   Comparison result;
  11192.  
  11193.   if ((result = m_streamID.Compare(other.m_streamID)) != EqualTo)
  11194.     return result;
  11195.   if ((result = m_streamParms.Compare(other.m_streamParms)) != EqualTo)
  11196.     return result;
  11197.  
  11198.   return PASN_Sequence::Compare(other);
  11199. }
  11200.  
  11201.  
  11202. PINDEX H248_IndAudStreamDescriptor::GetDataLength() const
  11203. {
  11204.   PINDEX length = 0;
  11205.   length += m_streamID.GetObjectLength();
  11206.   length += m_streamParms.GetObjectLength();
  11207.   return length;
  11208. }
  11209.  
  11210.  
  11211. BOOL H248_IndAudStreamDescriptor::Decode(PASN_Stream & strm)
  11212. {
  11213.   if (!PreambleDecode(strm))
  11214.     return FALSE;
  11215.  
  11216.   if (!m_streamID.Decode(strm))
  11217.     return FALSE;
  11218.   if (!m_streamParms.Decode(strm))
  11219.     return FALSE;
  11220.  
  11221.   return UnknownExtensionsDecode(strm);
  11222. }
  11223.  
  11224.  
  11225. void H248_IndAudStreamDescriptor::Encode(PASN_Stream & strm) const
  11226. {
  11227.   PreambleEncode(strm);
  11228.  
  11229.   m_streamID.Encode(strm);
  11230.   m_streamParms.Encode(strm);
  11231.  
  11232.   UnknownExtensionsEncode(strm);
  11233. }
  11234.  
  11235.  
  11236. PObject * H248_IndAudStreamDescriptor::Clone() const
  11237. {
  11238. #ifndef PASN_LEANANDMEAN
  11239.   PAssert(IsClass(H248_IndAudStreamDescriptor::Class()), PInvalidCast);
  11240. #endif
  11241.   return new H248_IndAudStreamDescriptor(*this);
  11242. }
  11243.  
  11244.  
  11245. //
  11246. // ServiceChangeRequest
  11247. //
  11248.  
  11249. H248_ServiceChangeRequest::H248_ServiceChangeRequest(unsigned tag, PASN_Object::TagClass tagClass)
  11250.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  11251. {
  11252. }
  11253.  
  11254.  
  11255. #ifndef PASN_NOPRINTON
  11256. void H248_ServiceChangeRequest::PrintOn(ostream & strm) const
  11257. {
  11258.   int indent = strm.precision() + 2;
  11259.   strm << "{\n";
  11260.   strm << setw(indent+16) << "terminationID = " << setprecision(indent) << m_terminationID << '\n';
  11261.   strm << setw(indent+21) << "serviceChangeParms = " << setprecision(indent) << m_serviceChangeParms << '\n';
  11262.   strm << setw(indent-1) << "}";
  11263. }
  11264. #endif
  11265.  
  11266.  
  11267. PObject::Comparison H248_ServiceChangeRequest::Compare(const PObject & obj) const
  11268. {
  11269. #ifndef PASN_LEANANDMEAN
  11270.   PAssert(IsDescendant(H248_ServiceChangeRequest::Class()), PInvalidCast);
  11271. #endif
  11272.   const H248_ServiceChangeRequest & other = (const H248_ServiceChangeRequest &)obj;
  11273.  
  11274.   Comparison result;
  11275.  
  11276.   if ((result = m_terminationID.Compare(other.m_terminationID)) != EqualTo)
  11277.     return result;
  11278.   if ((result = m_serviceChangeParms.Compare(other.m_serviceChangeParms)) != EqualTo)
  11279.     return result;
  11280.  
  11281.   return PASN_Sequence::Compare(other);
  11282. }
  11283.  
  11284.  
  11285. PINDEX H248_ServiceChangeRequest::GetDataLength() const
  11286. {
  11287.   PINDEX length = 0;
  11288.   length += m_terminationID.GetObjectLength();
  11289.   length += m_serviceChangeParms.GetObjectLength();
  11290.   return length;
  11291. }
  11292.  
  11293.  
  11294. BOOL H248_ServiceChangeRequest::Decode(PASN_Stream & strm)
  11295. {
  11296.   if (!PreambleDecode(strm))
  11297.     return FALSE;
  11298.  
  11299.   if (!m_terminationID.Decode(strm))
  11300.     return FALSE;
  11301.   if (!m_serviceChangeParms.Decode(strm))
  11302.     return FALSE;
  11303.  
  11304.   return UnknownExtensionsDecode(strm);
  11305. }
  11306.  
  11307.  
  11308. void H248_ServiceChangeRequest::Encode(PASN_Stream & strm) const
  11309. {
  11310.   PreambleEncode(strm);
  11311.  
  11312.   m_terminationID.Encode(strm);
  11313.   m_serviceChangeParms.Encode(strm);
  11314.  
  11315.   UnknownExtensionsEncode(strm);
  11316. }
  11317.  
  11318.  
  11319. PObject * H248_ServiceChangeRequest::Clone() const
  11320. {
  11321. #ifndef PASN_LEANANDMEAN
  11322.   PAssert(IsClass(H248_ServiceChangeRequest::Class()), PInvalidCast);
  11323. #endif
  11324.   return new H248_ServiceChangeRequest(*this);
  11325. }
  11326.  
  11327.  
  11328. //
  11329. // StreamDescriptor
  11330. //
  11331.  
  11332. H248_StreamDescriptor::H248_StreamDescriptor(unsigned tag, PASN_Object::TagClass tagClass)
  11333.   : PASN_Sequence(tag, tagClass, 0, FALSE, 0)
  11334. {
  11335. }
  11336.  
  11337.  
  11338. #ifndef PASN_NOPRINTON
  11339. void H248_StreamDescriptor::PrintOn(ostream & strm) const
  11340. {
  11341.   int indent = strm.precision() + 2;
  11342.   strm << "{\n";
  11343.   strm << setw(indent+11) << "streamID = " << setprecision(indent) << m_streamID << '\n';
  11344.   strm << setw(indent+14) << "streamParms = " << setprecision(indent) << m_streamParms << '\n';
  11345.   strm << setw(indent-1) << "}";
  11346. }
  11347. #endif
  11348.  
  11349.  
  11350. PObject::Comparison H248_StreamDescriptor::Compare(const PObject & obj) const
  11351. {
  11352. #ifndef PASN_LEANANDMEAN
  11353.   PAssert(IsDescendant(H248_StreamDescriptor::Class()), PInvalidCast);
  11354. #endif
  11355.   const H248_StreamDescriptor & other = (const H248_StreamDescriptor &)obj;
  11356.  
  11357.   Comparison result;
  11358.  
  11359.   if ((result = m_streamID.Compare(other.m_streamID)) != EqualTo)
  11360.     return result;
  11361.   if ((result = m_streamParms.Compare(other.m_streamParms)) != EqualTo)
  11362.     return result;
  11363.  
  11364.   return PASN_Sequence::Compare(other);
  11365. }
  11366.  
  11367.  
  11368. PINDEX H248_StreamDescriptor::GetDataLength() const
  11369. {
  11370.   PINDEX length = 0;
  11371.   length += m_streamID.GetObjectLength();
  11372.   length += m_streamParms.GetObjectLength();
  11373.   return length;
  11374. }
  11375.  
  11376.  
  11377. BOOL H248_StreamDescriptor::Decode(PASN_Stream & strm)
  11378. {
  11379.   if (!PreambleDecode(strm))
  11380.     return FALSE;
  11381.  
  11382.   if (!m_streamID.Decode(strm))
  11383.     return FALSE;
  11384.   if (!m_streamParms.Decode(strm))
  11385.     return FALSE;
  11386.  
  11387.   return UnknownExtensionsDecode(strm);
  11388. }
  11389.  
  11390.  
  11391. void H248_StreamDescriptor::Encode(PASN_Stream & strm) const
  11392. {
  11393.   PreambleEncode(strm);
  11394.  
  11395.   m_streamID.Encode(strm);
  11396.   m_streamParms.Encode(strm);
  11397.  
  11398.   UnknownExtensionsEncode(strm);
  11399. }
  11400.  
  11401.  
  11402. PObject * H248_StreamDescriptor::Clone() const
  11403. {
  11404. #ifndef PASN_LEANANDMEAN
  11405.   PAssert(IsClass(H248_StreamDescriptor::Class()), PInvalidCast);
  11406. #endif
  11407.   return new H248_StreamDescriptor(*this);
  11408. }
  11409.  
  11410.  
  11411. //
  11412. // RequestedEvent
  11413. //
  11414.  
  11415. H248_RequestedEvent::H248_RequestedEvent(unsigned tag, PASN_Object::TagClass tagClass)
  11416.   : PASN_Sequence(tag, tagClass, 2, TRUE, 0)
  11417. {
  11418. }
  11419.  
  11420.  
  11421. #ifndef PASN_NOPRINTON
  11422. void H248_RequestedEvent::PrintOn(ostream & strm) const
  11423. {
  11424.   int indent = strm.precision() + 2;
  11425.   strm << "{\n";
  11426.   strm << setw(indent+11) << "pkgdName = " << setprecision(indent) << m_pkgdName << '\n';
  11427.   if (HasOptionalField(e_streamID))
  11428.     strm << setw(indent+11) << "streamID = " << setprecision(indent) << m_streamID << '\n';
  11429.   if (HasOptionalField(e_eventAction))
  11430.     strm << setw(indent+14) << "eventAction = " << setprecision(indent) << m_eventAction << '\n';
  11431.   strm << setw(indent+12) << "evParList = " << setprecision(indent) << m_evParList << '\n';
  11432.   strm << setw(indent-1) << "}";
  11433. }
  11434. #endif
  11435.  
  11436.  
  11437. PObject::Comparison H248_RequestedEvent::Compare(const PObject & obj) const
  11438. {
  11439. #ifndef PASN_LEANANDMEAN
  11440.   PAssert(IsDescendant(H248_RequestedEvent::Class()), PInvalidCast);
  11441. #endif
  11442.   const H248_RequestedEvent & other = (const H248_RequestedEvent &)obj;
  11443.  
  11444.   Comparison result;
  11445.  
  11446.   if ((result = m_pkgdName.Compare(other.m_pkgdName)) != EqualTo)
  11447.     return result;
  11448.   if ((result = m_streamID.Compare(other.m_streamID)) != EqualTo)
  11449.     return result;
  11450.   if ((result = m_eventAction.Compare(other.m_eventAction)) != EqualTo)
  11451.     return result;
  11452.   if ((result = m_evParList.Compare(other.m_evParList)) != EqualTo)
  11453.     return result;
  11454.  
  11455.   return PASN_Sequence::Compare(other);
  11456. }
  11457.  
  11458.  
  11459. PINDEX H248_RequestedEvent::GetDataLength() const
  11460. {
  11461.   PINDEX length = 0;
  11462.   length += m_pkgdName.GetObjectLength();
  11463.   if (HasOptionalField(e_streamID))
  11464.     length += m_streamID.GetObjectLength();
  11465.   if (HasOptionalField(e_eventAction))
  11466.     length += m_eventAction.GetObjectLength();
  11467.   length += m_evParList.GetObjectLength();
  11468.   return length;
  11469. }
  11470.  
  11471.  
  11472. BOOL H248_RequestedEvent::Decode(PASN_Stream & strm)
  11473. {
  11474.   if (!PreambleDecode(strm))
  11475.     return FALSE;
  11476.  
  11477.   if (!m_pkgdName.Decode(strm))
  11478.     return FALSE;
  11479.   if (HasOptionalField(e_streamID) && !m_streamID.Decode(strm))
  11480.     return FALSE;
  11481.   if (HasOptionalField(e_eventAction) && !m_eventAction.Decode(strm))
  11482.     return FALSE;
  11483.   if (!m_evParList.Decode(strm))
  11484.     return FALSE;
  11485.  
  11486.   return UnknownExtensionsDecode(strm);
  11487. }
  11488.  
  11489.  
  11490. void H248_RequestedEvent::Encode(PASN_Stream & strm) const
  11491. {
  11492.   PreambleEncode(strm);
  11493.  
  11494.   m_pkgdName.Encode(strm);
  11495.   if (HasOptionalField(e_streamID))
  11496.     m_streamID.Encode(strm);
  11497.   if (HasOptionalField(e_eventAction))
  11498.     m_eventAction.Encode(strm);
  11499.   m_evParList.Encode(strm);
  11500.  
  11501.   UnknownExtensionsEncode(strm);
  11502. }
  11503.  
  11504.  
  11505. PObject * H248_RequestedEvent::Clone() const
  11506. {
  11507. #ifndef PASN_LEANANDMEAN
  11508.   PAssert(IsClass(H248_RequestedEvent::Class()), PInvalidCast);
  11509. #endif
  11510.   return new H248_RequestedEvent(*this);
  11511. }
  11512.  
  11513.  
  11514. #endif // if ! H323_DISABLE_H248
  11515.  
  11516.  
  11517. // End of h248.cxx
  11518.