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 / h225_1.cxx < prev    next >
C/C++ Source or Header  |  2004-06-22  |  196KB  |  8,099 lines

  1. //
  2. // h225_1.cxx
  3. //
  4. // Code automatically generated by asnparse.
  5. //
  6.  
  7. #ifdef __GNUC__
  8. #pragma implementation "h225.h"
  9. #endif
  10.  
  11. #include <ptlib.h>
  12. #include "h225.h"
  13.  
  14. #define new PNEW
  15.  
  16.  
  17. #if ! H323_DISABLE_H225
  18.  
  19. #include "h235_t.cxx"
  20.  
  21.  
  22. //
  23. // ReleaseCompleteReason
  24. //
  25.  
  26. H225_ReleaseCompleteReason::H225_ReleaseCompleteReason(unsigned tag, PASN_Object::TagClass tagClass)
  27.   : PASN_Choice(tag, tagClass, 12, TRUE
  28. #ifndef PASN_NOPRINTON
  29.       , "noBandwidth "
  30.         "gatekeeperResources "
  31.         "unreachableDestination "
  32.         "destinationRejection "
  33.         "invalidRevision "
  34.         "noPermission "
  35.         "unreachableGatekeeper "
  36.         "gatewayResources "
  37.         "badFormatAddress "
  38.         "adaptiveBusy "
  39.         "inConf "
  40.         "undefinedReason "
  41.         "facilityCallDeflection "
  42.         "securityDenied "
  43.         "calledPartyNotRegistered "
  44.         "callerNotRegistered "
  45.         "newConnectionNeeded "
  46.         "nonStandardReason "
  47.         "replaceWithConferenceInvite "
  48.         "genericDataReason "
  49.         "neededFeatureNotSupported "
  50.         "tunnelledSignallingRejected "
  51. #endif
  52.     )
  53. {
  54. }
  55.  
  56.  
  57. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  58. H225_ReleaseCompleteReason::operator H225_NonStandardParameter &() const
  59. #else
  60. H225_ReleaseCompleteReason::operator H225_NonStandardParameter &()
  61. {
  62. #ifndef PASN_LEANANDMEAN
  63.   PAssert(PAssertNULL(choice)->IsDescendant(H225_NonStandardParameter::Class()), PInvalidCast);
  64. #endif
  65.   return *(H225_NonStandardParameter *)choice;
  66. }
  67.  
  68.  
  69. H225_ReleaseCompleteReason::operator const H225_NonStandardParameter &() const
  70. #endif
  71. {
  72. #ifndef PASN_LEANANDMEAN
  73.   PAssert(PAssertNULL(choice)->IsDescendant(H225_NonStandardParameter::Class()), PInvalidCast);
  74. #endif
  75.   return *(H225_NonStandardParameter *)choice;
  76. }
  77.  
  78.  
  79. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  80. H225_ReleaseCompleteReason::operator H225_ConferenceIdentifier &() const
  81. #else
  82. H225_ReleaseCompleteReason::operator H225_ConferenceIdentifier &()
  83. {
  84. #ifndef PASN_LEANANDMEAN
  85.   PAssert(PAssertNULL(choice)->IsDescendant(H225_ConferenceIdentifier::Class()), PInvalidCast);
  86. #endif
  87.   return *(H225_ConferenceIdentifier *)choice;
  88. }
  89.  
  90.  
  91. H225_ReleaseCompleteReason::operator const H225_ConferenceIdentifier &() const
  92. #endif
  93. {
  94. #ifndef PASN_LEANANDMEAN
  95.   PAssert(PAssertNULL(choice)->IsDescendant(H225_ConferenceIdentifier::Class()), PInvalidCast);
  96. #endif
  97.   return *(H225_ConferenceIdentifier *)choice;
  98. }
  99.  
  100.  
  101. BOOL H225_ReleaseCompleteReason::CreateObject()
  102. {
  103.   switch (tag) {
  104.     case e_noBandwidth :
  105.     case e_gatekeeperResources :
  106.     case e_unreachableDestination :
  107.     case e_destinationRejection :
  108.     case e_invalidRevision :
  109.     case e_noPermission :
  110.     case e_unreachableGatekeeper :
  111.     case e_gatewayResources :
  112.     case e_badFormatAddress :
  113.     case e_adaptiveBusy :
  114.     case e_inConf :
  115.     case e_undefinedReason :
  116.     case e_facilityCallDeflection :
  117.     case e_securityDenied :
  118.     case e_calledPartyNotRegistered :
  119.     case e_callerNotRegistered :
  120.     case e_newConnectionNeeded :
  121.     case e_genericDataReason :
  122.     case e_neededFeatureNotSupported :
  123.     case e_tunnelledSignallingRejected :
  124.       choice = new PASN_Null();
  125.       return TRUE;
  126.     case e_nonStandardReason :
  127.       choice = new H225_NonStandardParameter();
  128.       return TRUE;
  129.     case e_replaceWithConferenceInvite :
  130.       choice = new H225_ConferenceIdentifier();
  131.       return TRUE;
  132.   }
  133.  
  134.   choice = NULL;
  135.   return FALSE;
  136. }
  137.  
  138.  
  139. PObject * H225_ReleaseCompleteReason::Clone() const
  140. {
  141. #ifndef PASN_LEANANDMEAN
  142.   PAssert(IsClass(H225_ReleaseCompleteReason::Class()), PInvalidCast);
  143. #endif
  144.   return new H225_ReleaseCompleteReason(*this);
  145. }
  146.  
  147.  
  148. //
  149. // ScnConnectionType
  150. //
  151.  
  152. H225_ScnConnectionType::H225_ScnConnectionType(unsigned tag, PASN_Object::TagClass tagClass)
  153.   : PASN_Choice(tag, tagClass, 7, TRUE
  154. #ifndef PASN_NOPRINTON
  155.       , "unknown "
  156.         "bChannel "
  157.         "hybrid2x64 "
  158.         "hybrid384 "
  159.         "hybrid1536 "
  160.         "hybrid1920 "
  161.         "multirate "
  162. #endif
  163.     )
  164. {
  165. }
  166.  
  167.  
  168. BOOL H225_ScnConnectionType::CreateObject()
  169. {
  170.   choice = (tag <= e_multirate) ? new PASN_Null() : NULL;
  171.   return choice != NULL;
  172. }
  173.  
  174.  
  175. PObject * H225_ScnConnectionType::Clone() const
  176. {
  177. #ifndef PASN_LEANANDMEAN
  178.   PAssert(IsClass(H225_ScnConnectionType::Class()), PInvalidCast);
  179. #endif
  180.   return new H225_ScnConnectionType(*this);
  181. }
  182.  
  183.  
  184. //
  185. // ScnConnectionAggregation
  186. //
  187.  
  188. H225_ScnConnectionAggregation::H225_ScnConnectionAggregation(unsigned tag, PASN_Object::TagClass tagClass)
  189.   : PASN_Choice(tag, tagClass, 6, TRUE
  190. #ifndef PASN_NOPRINTON
  191.       , "auto "
  192.         "none "
  193.         "h221 "
  194.         "bonded_mode1 "
  195.         "bonded_mode2 "
  196.         "bonded_mode3 "
  197. #endif
  198.     )
  199. {
  200. }
  201.  
  202.  
  203. BOOL H225_ScnConnectionAggregation::CreateObject()
  204. {
  205.   choice = (tag <= e_bonded_mode3) ? new PASN_Null() : NULL;
  206.   return choice != NULL;
  207. }
  208.  
  209.  
  210. PObject * H225_ScnConnectionAggregation::Clone() const
  211. {
  212. #ifndef PASN_LEANANDMEAN
  213.   PAssert(IsClass(H225_ScnConnectionAggregation::Class()), PInvalidCast);
  214. #endif
  215.   return new H225_ScnConnectionAggregation(*this);
  216. }
  217.  
  218.  
  219. //
  220. // PresentationIndicator
  221. //
  222.  
  223. H225_PresentationIndicator::H225_PresentationIndicator(unsigned tag, PASN_Object::TagClass tagClass)
  224.   : PASN_Choice(tag, tagClass, 3, TRUE
  225. #ifndef PASN_NOPRINTON
  226.       , "presentationAllowed "
  227.         "presentationRestricted "
  228.         "addressNotAvailable "
  229. #endif
  230.     )
  231. {
  232. }
  233.  
  234.  
  235. BOOL H225_PresentationIndicator::CreateObject()
  236. {
  237.   choice = (tag <= e_addressNotAvailable) ? new PASN_Null() : NULL;
  238.   return choice != NULL;
  239. }
  240.  
  241.  
  242. PObject * H225_PresentationIndicator::Clone() const
  243. {
  244. #ifndef PASN_LEANANDMEAN
  245.   PAssert(IsClass(H225_PresentationIndicator::Class()), PInvalidCast);
  246. #endif
  247.   return new H225_PresentationIndicator(*this);
  248. }
  249.  
  250.  
  251. //
  252. // ScreeningIndicator
  253. //
  254.  
  255. H225_ScreeningIndicator::H225_ScreeningIndicator(unsigned tag, PASN_Object::TagClass tagClass)
  256.   : PASN_Enumeration(tag, tagClass, 3, TRUE
  257. #ifndef PASN_NOPRINTON
  258.       , "userProvidedNotScreened "
  259.         "userProvidedVerifiedAndPassed "
  260.         "userProvidedVerifiedAndFailed "
  261.         "networkProvided "
  262. #endif
  263.     )
  264. {
  265. }
  266.  
  267.  
  268. H225_ScreeningIndicator & H225_ScreeningIndicator::operator=(unsigned v)
  269. {
  270.   SetValue(v);
  271.   return *this;
  272. }
  273.  
  274.  
  275. PObject * H225_ScreeningIndicator::Clone() const
  276. {
  277. #ifndef PASN_LEANANDMEAN
  278.   PAssert(IsClass(H225_ScreeningIndicator::Class()), PInvalidCast);
  279. #endif
  280.   return new H225_ScreeningIndicator(*this);
  281. }
  282.  
  283.  
  284. //
  285. // FacilityReason
  286. //
  287.  
  288. H225_FacilityReason::H225_FacilityReason(unsigned tag, PASN_Object::TagClass tagClass)
  289.   : PASN_Choice(tag, tagClass, 4, TRUE
  290. #ifndef PASN_NOPRINTON
  291.       , "routeCallToGatekeeper "
  292.         "callForwarded "
  293.         "routeCallToMC "
  294.         "undefinedReason "
  295.         "conferenceListChoice "
  296.         "startH245 "
  297.         "noH245 "
  298.         "newTokens "
  299.         "featureSetUpdate "
  300.         "forwardedElements "
  301.         "transportedInformation "
  302. #endif
  303.     )
  304. {
  305. }
  306.  
  307.  
  308. BOOL H225_FacilityReason::CreateObject()
  309. {
  310.   choice = (tag <= e_transportedInformation) ? new PASN_Null() : NULL;
  311.   return choice != NULL;
  312. }
  313.  
  314.  
  315. PObject * H225_FacilityReason::Clone() const
  316. {
  317. #ifndef PASN_LEANANDMEAN
  318.   PAssert(IsClass(H225_FacilityReason::Class()), PInvalidCast);
  319. #endif
  320.   return new H225_FacilityReason(*this);
  321. }
  322.  
  323.  
  324. //
  325. // TransportAddress
  326. //
  327.  
  328. H225_TransportAddress::H225_TransportAddress(unsigned tag, PASN_Object::TagClass tagClass)
  329.   : PASN_Choice(tag, tagClass, 7, TRUE
  330. #ifndef PASN_NOPRINTON
  331.       , "ipAddress "
  332.         "ipSourceRoute "
  333.         "ipxAddress "
  334.         "ip6Address "
  335.         "netBios "
  336.         "nsap "
  337.         "nonStandardAddress "
  338. #endif
  339.     )
  340. {
  341. }
  342.  
  343.  
  344. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  345. H225_TransportAddress::operator H225_TransportAddress_ipAddress &() const
  346. #else
  347. H225_TransportAddress::operator H225_TransportAddress_ipAddress &()
  348. {
  349. #ifndef PASN_LEANANDMEAN
  350.   PAssert(PAssertNULL(choice)->IsDescendant(H225_TransportAddress_ipAddress::Class()), PInvalidCast);
  351. #endif
  352.   return *(H225_TransportAddress_ipAddress *)choice;
  353. }
  354.  
  355.  
  356. H225_TransportAddress::operator const H225_TransportAddress_ipAddress &() const
  357. #endif
  358. {
  359. #ifndef PASN_LEANANDMEAN
  360.   PAssert(PAssertNULL(choice)->IsDescendant(H225_TransportAddress_ipAddress::Class()), PInvalidCast);
  361. #endif
  362.   return *(H225_TransportAddress_ipAddress *)choice;
  363. }
  364.  
  365.  
  366. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  367. H225_TransportAddress::operator H225_TransportAddress_ipSourceRoute &() const
  368. #else
  369. H225_TransportAddress::operator H225_TransportAddress_ipSourceRoute &()
  370. {
  371. #ifndef PASN_LEANANDMEAN
  372.   PAssert(PAssertNULL(choice)->IsDescendant(H225_TransportAddress_ipSourceRoute::Class()), PInvalidCast);
  373. #endif
  374.   return *(H225_TransportAddress_ipSourceRoute *)choice;
  375. }
  376.  
  377.  
  378. H225_TransportAddress::operator const H225_TransportAddress_ipSourceRoute &() const
  379. #endif
  380. {
  381. #ifndef PASN_LEANANDMEAN
  382.   PAssert(PAssertNULL(choice)->IsDescendant(H225_TransportAddress_ipSourceRoute::Class()), PInvalidCast);
  383. #endif
  384.   return *(H225_TransportAddress_ipSourceRoute *)choice;
  385. }
  386.  
  387.  
  388. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  389. H225_TransportAddress::operator H225_TransportAddress_ipxAddress &() const
  390. #else
  391. H225_TransportAddress::operator H225_TransportAddress_ipxAddress &()
  392. {
  393. #ifndef PASN_LEANANDMEAN
  394.   PAssert(PAssertNULL(choice)->IsDescendant(H225_TransportAddress_ipxAddress::Class()), PInvalidCast);
  395. #endif
  396.   return *(H225_TransportAddress_ipxAddress *)choice;
  397. }
  398.  
  399.  
  400. H225_TransportAddress::operator const H225_TransportAddress_ipxAddress &() const
  401. #endif
  402. {
  403. #ifndef PASN_LEANANDMEAN
  404.   PAssert(PAssertNULL(choice)->IsDescendant(H225_TransportAddress_ipxAddress::Class()), PInvalidCast);
  405. #endif
  406.   return *(H225_TransportAddress_ipxAddress *)choice;
  407. }
  408.  
  409.  
  410. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  411. H225_TransportAddress::operator H225_TransportAddress_ip6Address &() const
  412. #else
  413. H225_TransportAddress::operator H225_TransportAddress_ip6Address &()
  414. {
  415. #ifndef PASN_LEANANDMEAN
  416.   PAssert(PAssertNULL(choice)->IsDescendant(H225_TransportAddress_ip6Address::Class()), PInvalidCast);
  417. #endif
  418.   return *(H225_TransportAddress_ip6Address *)choice;
  419. }
  420.  
  421.  
  422. H225_TransportAddress::operator const H225_TransportAddress_ip6Address &() const
  423. #endif
  424. {
  425. #ifndef PASN_LEANANDMEAN
  426.   PAssert(PAssertNULL(choice)->IsDescendant(H225_TransportAddress_ip6Address::Class()), PInvalidCast);
  427. #endif
  428.   return *(H225_TransportAddress_ip6Address *)choice;
  429. }
  430.  
  431.  
  432. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  433. H225_TransportAddress::operator H225_NonStandardParameter &() const
  434. #else
  435. H225_TransportAddress::operator H225_NonStandardParameter &()
  436. {
  437. #ifndef PASN_LEANANDMEAN
  438.   PAssert(PAssertNULL(choice)->IsDescendant(H225_NonStandardParameter::Class()), PInvalidCast);
  439. #endif
  440.   return *(H225_NonStandardParameter *)choice;
  441. }
  442.  
  443.  
  444. H225_TransportAddress::operator const H225_NonStandardParameter &() const
  445. #endif
  446. {
  447. #ifndef PASN_LEANANDMEAN
  448.   PAssert(PAssertNULL(choice)->IsDescendant(H225_NonStandardParameter::Class()), PInvalidCast);
  449. #endif
  450.   return *(H225_NonStandardParameter *)choice;
  451. }
  452.  
  453.  
  454. BOOL H225_TransportAddress::CreateObject()
  455. {
  456.   switch (tag) {
  457.     case e_ipAddress :
  458.       choice = new H225_TransportAddress_ipAddress();
  459.       return TRUE;
  460.     case e_ipSourceRoute :
  461.       choice = new H225_TransportAddress_ipSourceRoute();
  462.       return TRUE;
  463.     case e_ipxAddress :
  464.       choice = new H225_TransportAddress_ipxAddress();
  465.       return TRUE;
  466.     case e_ip6Address :
  467.       choice = new H225_TransportAddress_ip6Address();
  468.       return TRUE;
  469.     case e_netBios :
  470.       choice = new PASN_OctetString();
  471.       choice->SetConstraints(PASN_Object::FixedConstraint, 16);
  472.       return TRUE;
  473.     case e_nsap :
  474.       choice = new PASN_OctetString();
  475.       choice->SetConstraints(PASN_Object::FixedConstraint, 1, 20);
  476.       return TRUE;
  477.     case e_nonStandardAddress :
  478.       choice = new H225_NonStandardParameter();
  479.       return TRUE;
  480.   }
  481.  
  482.   choice = NULL;
  483.   return FALSE;
  484. }
  485.  
  486.  
  487. PObject * H225_TransportAddress::Clone() const
  488. {
  489. #ifndef PASN_LEANANDMEAN
  490.   PAssert(IsClass(H225_TransportAddress::Class()), PInvalidCast);
  491. #endif
  492.   return new H225_TransportAddress(*this);
  493. }
  494.  
  495.  
  496. //
  497. // SupportedProtocols
  498. //
  499.  
  500. H225_SupportedProtocols::H225_SupportedProtocols(unsigned tag, PASN_Object::TagClass tagClass)
  501.   : PASN_Choice(tag, tagClass, 9, TRUE
  502. #ifndef PASN_NOPRINTON
  503.       , "nonStandardData "
  504.         "h310 "
  505.         "h320 "
  506.         "h321 "
  507.         "h322 "
  508.         "h323 "
  509.         "h324 "
  510.         "voice "
  511.         "t120_only "
  512.         "nonStandardProtocol "
  513.         "t38FaxAnnexbOnly "
  514. #endif
  515.     )
  516. {
  517. }
  518.  
  519.  
  520. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  521. H225_SupportedProtocols::operator H225_NonStandardParameter &() const
  522. #else
  523. H225_SupportedProtocols::operator H225_NonStandardParameter &()
  524. {
  525. #ifndef PASN_LEANANDMEAN
  526.   PAssert(PAssertNULL(choice)->IsDescendant(H225_NonStandardParameter::Class()), PInvalidCast);
  527. #endif
  528.   return *(H225_NonStandardParameter *)choice;
  529. }
  530.  
  531.  
  532. H225_SupportedProtocols::operator const H225_NonStandardParameter &() const
  533. #endif
  534. {
  535. #ifndef PASN_LEANANDMEAN
  536.   PAssert(PAssertNULL(choice)->IsDescendant(H225_NonStandardParameter::Class()), PInvalidCast);
  537. #endif
  538.   return *(H225_NonStandardParameter *)choice;
  539. }
  540.  
  541.  
  542. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  543. H225_SupportedProtocols::operator H225_H310Caps &() const
  544. #else
  545. H225_SupportedProtocols::operator H225_H310Caps &()
  546. {
  547. #ifndef PASN_LEANANDMEAN
  548.   PAssert(PAssertNULL(choice)->IsDescendant(H225_H310Caps::Class()), PInvalidCast);
  549. #endif
  550.   return *(H225_H310Caps *)choice;
  551. }
  552.  
  553.  
  554. H225_SupportedProtocols::operator const H225_H310Caps &() const
  555. #endif
  556. {
  557. #ifndef PASN_LEANANDMEAN
  558.   PAssert(PAssertNULL(choice)->IsDescendant(H225_H310Caps::Class()), PInvalidCast);
  559. #endif
  560.   return *(H225_H310Caps *)choice;
  561. }
  562.  
  563.  
  564. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  565. H225_SupportedProtocols::operator H225_H320Caps &() const
  566. #else
  567. H225_SupportedProtocols::operator H225_H320Caps &()
  568. {
  569. #ifndef PASN_LEANANDMEAN
  570.   PAssert(PAssertNULL(choice)->IsDescendant(H225_H320Caps::Class()), PInvalidCast);
  571. #endif
  572.   return *(H225_H320Caps *)choice;
  573. }
  574.  
  575.  
  576. H225_SupportedProtocols::operator const H225_H320Caps &() const
  577. #endif
  578. {
  579. #ifndef PASN_LEANANDMEAN
  580.   PAssert(PAssertNULL(choice)->IsDescendant(H225_H320Caps::Class()), PInvalidCast);
  581. #endif
  582.   return *(H225_H320Caps *)choice;
  583. }
  584.  
  585.  
  586. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  587. H225_SupportedProtocols::operator H225_H321Caps &() const
  588. #else
  589. H225_SupportedProtocols::operator H225_H321Caps &()
  590. {
  591. #ifndef PASN_LEANANDMEAN
  592.   PAssert(PAssertNULL(choice)->IsDescendant(H225_H321Caps::Class()), PInvalidCast);
  593. #endif
  594.   return *(H225_H321Caps *)choice;
  595. }
  596.  
  597.  
  598. H225_SupportedProtocols::operator const H225_H321Caps &() const
  599. #endif
  600. {
  601. #ifndef PASN_LEANANDMEAN
  602.   PAssert(PAssertNULL(choice)->IsDescendant(H225_H321Caps::Class()), PInvalidCast);
  603. #endif
  604.   return *(H225_H321Caps *)choice;
  605. }
  606.  
  607.  
  608. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  609. H225_SupportedProtocols::operator H225_H322Caps &() const
  610. #else
  611. H225_SupportedProtocols::operator H225_H322Caps &()
  612. {
  613. #ifndef PASN_LEANANDMEAN
  614.   PAssert(PAssertNULL(choice)->IsDescendant(H225_H322Caps::Class()), PInvalidCast);
  615. #endif
  616.   return *(H225_H322Caps *)choice;
  617. }
  618.  
  619.  
  620. H225_SupportedProtocols::operator const H225_H322Caps &() const
  621. #endif
  622. {
  623. #ifndef PASN_LEANANDMEAN
  624.   PAssert(PAssertNULL(choice)->IsDescendant(H225_H322Caps::Class()), PInvalidCast);
  625. #endif
  626.   return *(H225_H322Caps *)choice;
  627. }
  628.  
  629.  
  630. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  631. H225_SupportedProtocols::operator H225_H323Caps &() const
  632. #else
  633. H225_SupportedProtocols::operator H225_H323Caps &()
  634. {
  635. #ifndef PASN_LEANANDMEAN
  636.   PAssert(PAssertNULL(choice)->IsDescendant(H225_H323Caps::Class()), PInvalidCast);
  637. #endif
  638.   return *(H225_H323Caps *)choice;
  639. }
  640.  
  641.  
  642. H225_SupportedProtocols::operator const H225_H323Caps &() const
  643. #endif
  644. {
  645. #ifndef PASN_LEANANDMEAN
  646.   PAssert(PAssertNULL(choice)->IsDescendant(H225_H323Caps::Class()), PInvalidCast);
  647. #endif
  648.   return *(H225_H323Caps *)choice;
  649. }
  650.  
  651.  
  652. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  653. H225_SupportedProtocols::operator H225_H324Caps &() const
  654. #else
  655. H225_SupportedProtocols::operator H225_H324Caps &()
  656. {
  657. #ifndef PASN_LEANANDMEAN
  658.   PAssert(PAssertNULL(choice)->IsDescendant(H225_H324Caps::Class()), PInvalidCast);
  659. #endif
  660.   return *(H225_H324Caps *)choice;
  661. }
  662.  
  663.  
  664. H225_SupportedProtocols::operator const H225_H324Caps &() const
  665. #endif
  666. {
  667. #ifndef PASN_LEANANDMEAN
  668.   PAssert(PAssertNULL(choice)->IsDescendant(H225_H324Caps::Class()), PInvalidCast);
  669. #endif
  670.   return *(H225_H324Caps *)choice;
  671. }
  672.  
  673.  
  674. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  675. H225_SupportedProtocols::operator H225_VoiceCaps &() const
  676. #else
  677. H225_SupportedProtocols::operator H225_VoiceCaps &()
  678. {
  679. #ifndef PASN_LEANANDMEAN
  680.   PAssert(PAssertNULL(choice)->IsDescendant(H225_VoiceCaps::Class()), PInvalidCast);
  681. #endif
  682.   return *(H225_VoiceCaps *)choice;
  683. }
  684.  
  685.  
  686. H225_SupportedProtocols::operator const H225_VoiceCaps &() const
  687. #endif
  688. {
  689. #ifndef PASN_LEANANDMEAN
  690.   PAssert(PAssertNULL(choice)->IsDescendant(H225_VoiceCaps::Class()), PInvalidCast);
  691. #endif
  692.   return *(H225_VoiceCaps *)choice;
  693. }
  694.  
  695.  
  696. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  697. H225_SupportedProtocols::operator H225_T120OnlyCaps &() const
  698. #else
  699. H225_SupportedProtocols::operator H225_T120OnlyCaps &()
  700. {
  701. #ifndef PASN_LEANANDMEAN
  702.   PAssert(PAssertNULL(choice)->IsDescendant(H225_T120OnlyCaps::Class()), PInvalidCast);
  703. #endif
  704.   return *(H225_T120OnlyCaps *)choice;
  705. }
  706.  
  707.  
  708. H225_SupportedProtocols::operator const H225_T120OnlyCaps &() const
  709. #endif
  710. {
  711. #ifndef PASN_LEANANDMEAN
  712.   PAssert(PAssertNULL(choice)->IsDescendant(H225_T120OnlyCaps::Class()), PInvalidCast);
  713. #endif
  714.   return *(H225_T120OnlyCaps *)choice;
  715. }
  716.  
  717.  
  718. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  719. H225_SupportedProtocols::operator H225_NonStandardProtocol &() const
  720. #else
  721. H225_SupportedProtocols::operator H225_NonStandardProtocol &()
  722. {
  723. #ifndef PASN_LEANANDMEAN
  724.   PAssert(PAssertNULL(choice)->IsDescendant(H225_NonStandardProtocol::Class()), PInvalidCast);
  725. #endif
  726.   return *(H225_NonStandardProtocol *)choice;
  727. }
  728.  
  729.  
  730. H225_SupportedProtocols::operator const H225_NonStandardProtocol &() const
  731. #endif
  732. {
  733. #ifndef PASN_LEANANDMEAN
  734.   PAssert(PAssertNULL(choice)->IsDescendant(H225_NonStandardProtocol::Class()), PInvalidCast);
  735. #endif
  736.   return *(H225_NonStandardProtocol *)choice;
  737. }
  738.  
  739.  
  740. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  741. H225_SupportedProtocols::operator H225_T38FaxAnnexbOnlyCaps &() const
  742. #else
  743. H225_SupportedProtocols::operator H225_T38FaxAnnexbOnlyCaps &()
  744. {
  745. #ifndef PASN_LEANANDMEAN
  746.   PAssert(PAssertNULL(choice)->IsDescendant(H225_T38FaxAnnexbOnlyCaps::Class()), PInvalidCast);
  747. #endif
  748.   return *(H225_T38FaxAnnexbOnlyCaps *)choice;
  749. }
  750.  
  751.  
  752. H225_SupportedProtocols::operator const H225_T38FaxAnnexbOnlyCaps &() const
  753. #endif
  754. {
  755. #ifndef PASN_LEANANDMEAN
  756.   PAssert(PAssertNULL(choice)->IsDescendant(H225_T38FaxAnnexbOnlyCaps::Class()), PInvalidCast);
  757. #endif
  758.   return *(H225_T38FaxAnnexbOnlyCaps *)choice;
  759. }
  760.  
  761.  
  762. BOOL H225_SupportedProtocols::CreateObject()
  763. {
  764.   switch (tag) {
  765.     case e_nonStandardData :
  766.       choice = new H225_NonStandardParameter();
  767.       return TRUE;
  768.     case e_h310 :
  769.       choice = new H225_H310Caps();
  770.       return TRUE;
  771.     case e_h320 :
  772.       choice = new H225_H320Caps();
  773.       return TRUE;
  774.     case e_h321 :
  775.       choice = new H225_H321Caps();
  776.       return TRUE;
  777.     case e_h322 :
  778.       choice = new H225_H322Caps();
  779.       return TRUE;
  780.     case e_h323 :
  781.       choice = new H225_H323Caps();
  782.       return TRUE;
  783.     case e_h324 :
  784.       choice = new H225_H324Caps();
  785.       return TRUE;
  786.     case e_voice :
  787.       choice = new H225_VoiceCaps();
  788.       return TRUE;
  789.     case e_t120_only :
  790.       choice = new H225_T120OnlyCaps();
  791.       return TRUE;
  792.     case e_nonStandardProtocol :
  793.       choice = new H225_NonStandardProtocol();
  794.       return TRUE;
  795.     case e_t38FaxAnnexbOnly :
  796.       choice = new H225_T38FaxAnnexbOnlyCaps();
  797.       return TRUE;
  798.   }
  799.  
  800.   choice = NULL;
  801.   return FALSE;
  802. }
  803.  
  804.  
  805. PObject * H225_SupportedProtocols::Clone() const
  806. {
  807. #ifndef PASN_LEANANDMEAN
  808.   PAssert(IsClass(H225_SupportedProtocols::Class()), PInvalidCast);
  809. #endif
  810.   return new H225_SupportedProtocols(*this);
  811. }
  812.  
  813.  
  814. //
  815. // H221NonStandard
  816. //
  817.  
  818. H225_H221NonStandard::H225_H221NonStandard(unsigned tag, PASN_Object::TagClass tagClass)
  819.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  820. {
  821.   m_t35CountryCode.SetConstraints(PASN_Object::FixedConstraint, 0, 255);
  822.   m_t35Extension.SetConstraints(PASN_Object::FixedConstraint, 0, 255);
  823.   m_manufacturerCode.SetConstraints(PASN_Object::FixedConstraint, 0, 65535);
  824. }
  825.  
  826.  
  827. #ifndef PASN_NOPRINTON
  828. void H225_H221NonStandard::PrintOn(ostream & strm) const
  829. {
  830.   int indent = strm.precision() + 2;
  831.   strm << "{\n";
  832.   strm << setw(indent+17) << "t35CountryCode = " << setprecision(indent) << m_t35CountryCode << '\n';
  833.   strm << setw(indent+15) << "t35Extension = " << setprecision(indent) << m_t35Extension << '\n';
  834.   strm << setw(indent+19) << "manufacturerCode = " << setprecision(indent) << m_manufacturerCode << '\n';
  835.   strm << setw(indent-1) << "}";
  836. }
  837. #endif
  838.  
  839.  
  840. PObject::Comparison H225_H221NonStandard::Compare(const PObject & obj) const
  841. {
  842. #ifndef PASN_LEANANDMEAN
  843.   PAssert(IsDescendant(H225_H221NonStandard::Class()), PInvalidCast);
  844. #endif
  845.   const H225_H221NonStandard & other = (const H225_H221NonStandard &)obj;
  846.  
  847.   Comparison result;
  848.  
  849.   if ((result = m_t35CountryCode.Compare(other.m_t35CountryCode)) != EqualTo)
  850.     return result;
  851.   if ((result = m_t35Extension.Compare(other.m_t35Extension)) != EqualTo)
  852.     return result;
  853.   if ((result = m_manufacturerCode.Compare(other.m_manufacturerCode)) != EqualTo)
  854.     return result;
  855.  
  856.   return PASN_Sequence::Compare(other);
  857. }
  858.  
  859.  
  860. PINDEX H225_H221NonStandard::GetDataLength() const
  861. {
  862.   PINDEX length = 0;
  863.   length += m_t35CountryCode.GetObjectLength();
  864.   length += m_t35Extension.GetObjectLength();
  865.   length += m_manufacturerCode.GetObjectLength();
  866.   return length;
  867. }
  868.  
  869.  
  870. BOOL H225_H221NonStandard::Decode(PASN_Stream & strm)
  871. {
  872.   if (!PreambleDecode(strm))
  873.     return FALSE;
  874.  
  875.   if (!m_t35CountryCode.Decode(strm))
  876.     return FALSE;
  877.   if (!m_t35Extension.Decode(strm))
  878.     return FALSE;
  879.   if (!m_manufacturerCode.Decode(strm))
  880.     return FALSE;
  881.  
  882.   return UnknownExtensionsDecode(strm);
  883. }
  884.  
  885.  
  886. void H225_H221NonStandard::Encode(PASN_Stream & strm) const
  887. {
  888.   PreambleEncode(strm);
  889.  
  890.   m_t35CountryCode.Encode(strm);
  891.   m_t35Extension.Encode(strm);
  892.   m_manufacturerCode.Encode(strm);
  893.  
  894.   UnknownExtensionsEncode(strm);
  895. }
  896.  
  897.  
  898. PObject * H225_H221NonStandard::Clone() const
  899. {
  900. #ifndef PASN_LEANANDMEAN
  901.   PAssert(IsClass(H225_H221NonStandard::Class()), PInvalidCast);
  902. #endif
  903.   return new H225_H221NonStandard(*this);
  904. }
  905.  
  906.  
  907. //
  908. // TunnelledProtocolAlternateIdentifier
  909. //
  910.  
  911. H225_TunnelledProtocolAlternateIdentifier::H225_TunnelledProtocolAlternateIdentifier(unsigned tag, PASN_Object::TagClass tagClass)
  912.   : PASN_Sequence(tag, tagClass, 1, TRUE, 0)
  913. {
  914.   m_protocolType.SetConstraints(PASN_Object::FixedConstraint, 1, 64);
  915.   m_protocolVariant.SetConstraints(PASN_Object::FixedConstraint, 1, 64);
  916. }
  917.  
  918.  
  919. #ifndef PASN_NOPRINTON
  920. void H225_TunnelledProtocolAlternateIdentifier::PrintOn(ostream & strm) const
  921. {
  922.   int indent = strm.precision() + 2;
  923.   strm << "{\n";
  924.   strm << setw(indent+15) << "protocolType = " << setprecision(indent) << m_protocolType << '\n';
  925.   if (HasOptionalField(e_protocolVariant))
  926.     strm << setw(indent+18) << "protocolVariant = " << setprecision(indent) << m_protocolVariant << '\n';
  927.   strm << setw(indent-1) << "}";
  928. }
  929. #endif
  930.  
  931.  
  932. PObject::Comparison H225_TunnelledProtocolAlternateIdentifier::Compare(const PObject & obj) const
  933. {
  934. #ifndef PASN_LEANANDMEAN
  935.   PAssert(IsDescendant(H225_TunnelledProtocolAlternateIdentifier::Class()), PInvalidCast);
  936. #endif
  937.   const H225_TunnelledProtocolAlternateIdentifier & other = (const H225_TunnelledProtocolAlternateIdentifier &)obj;
  938.  
  939.   Comparison result;
  940.  
  941.   if ((result = m_protocolType.Compare(other.m_protocolType)) != EqualTo)
  942.     return result;
  943.   if ((result = m_protocolVariant.Compare(other.m_protocolVariant)) != EqualTo)
  944.     return result;
  945.  
  946.   return PASN_Sequence::Compare(other);
  947. }
  948.  
  949.  
  950. PINDEX H225_TunnelledProtocolAlternateIdentifier::GetDataLength() const
  951. {
  952.   PINDEX length = 0;
  953.   length += m_protocolType.GetObjectLength();
  954.   if (HasOptionalField(e_protocolVariant))
  955.     length += m_protocolVariant.GetObjectLength();
  956.   return length;
  957. }
  958.  
  959.  
  960. BOOL H225_TunnelledProtocolAlternateIdentifier::Decode(PASN_Stream & strm)
  961. {
  962.   if (!PreambleDecode(strm))
  963.     return FALSE;
  964.  
  965.   if (!m_protocolType.Decode(strm))
  966.     return FALSE;
  967.   if (HasOptionalField(e_protocolVariant) && !m_protocolVariant.Decode(strm))
  968.     return FALSE;
  969.  
  970.   return UnknownExtensionsDecode(strm);
  971. }
  972.  
  973.  
  974. void H225_TunnelledProtocolAlternateIdentifier::Encode(PASN_Stream & strm) const
  975. {
  976.   PreambleEncode(strm);
  977.  
  978.   m_protocolType.Encode(strm);
  979.   if (HasOptionalField(e_protocolVariant))
  980.     m_protocolVariant.Encode(strm);
  981.  
  982.   UnknownExtensionsEncode(strm);
  983. }
  984.  
  985.  
  986. PObject * H225_TunnelledProtocolAlternateIdentifier::Clone() const
  987. {
  988. #ifndef PASN_LEANANDMEAN
  989.   PAssert(IsClass(H225_TunnelledProtocolAlternateIdentifier::Class()), PInvalidCast);
  990. #endif
  991.   return new H225_TunnelledProtocolAlternateIdentifier(*this);
  992. }
  993.  
  994.  
  995. //
  996. // NonStandardIdentifier
  997. //
  998.  
  999. H225_NonStandardIdentifier::H225_NonStandardIdentifier(unsigned tag, PASN_Object::TagClass tagClass)
  1000.   : PASN_Choice(tag, tagClass, 2, TRUE
  1001. #ifndef PASN_NOPRINTON
  1002.       , "object "
  1003.         "h221NonStandard "
  1004. #endif
  1005.     )
  1006. {
  1007. }
  1008.  
  1009.  
  1010. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1011. H225_NonStandardIdentifier::operator H225_H221NonStandard &() const
  1012. #else
  1013. H225_NonStandardIdentifier::operator H225_H221NonStandard &()
  1014. {
  1015. #ifndef PASN_LEANANDMEAN
  1016.   PAssert(PAssertNULL(choice)->IsDescendant(H225_H221NonStandard::Class()), PInvalidCast);
  1017. #endif
  1018.   return *(H225_H221NonStandard *)choice;
  1019. }
  1020.  
  1021.  
  1022. H225_NonStandardIdentifier::operator const H225_H221NonStandard &() const
  1023. #endif
  1024. {
  1025. #ifndef PASN_LEANANDMEAN
  1026.   PAssert(PAssertNULL(choice)->IsDescendant(H225_H221NonStandard::Class()), PInvalidCast);
  1027. #endif
  1028.   return *(H225_H221NonStandard *)choice;
  1029. }
  1030.  
  1031.  
  1032. BOOL H225_NonStandardIdentifier::CreateObject()
  1033. {
  1034.   switch (tag) {
  1035.     case e_object :
  1036.       choice = new PASN_ObjectId();
  1037.       return TRUE;
  1038.     case e_h221NonStandard :
  1039.       choice = new H225_H221NonStandard();
  1040.       return TRUE;
  1041.   }
  1042.  
  1043.   choice = NULL;
  1044.   return FALSE;
  1045. }
  1046.  
  1047.  
  1048. PObject * H225_NonStandardIdentifier::Clone() const
  1049. {
  1050. #ifndef PASN_LEANANDMEAN
  1051.   PAssert(IsClass(H225_NonStandardIdentifier::Class()), PInvalidCast);
  1052. #endif
  1053.   return new H225_NonStandardIdentifier(*this);
  1054. }
  1055.  
  1056.  
  1057. //
  1058. // AliasAddress
  1059. //
  1060.  
  1061. H225_AliasAddress::H225_AliasAddress(unsigned tag, PASN_Object::TagClass tagClass)
  1062.   : PASN_Choice(tag, tagClass, 2, TRUE
  1063. #ifndef PASN_NOPRINTON
  1064.       , "dialedDigits "
  1065.         "h323_ID "
  1066.         "url_ID "
  1067.         "transportID "
  1068.         "email_ID "
  1069.         "partyNumber "
  1070.         "mobileUIM "
  1071. #endif
  1072.     )
  1073. {
  1074. }
  1075.  
  1076.  
  1077. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1078. H225_AliasAddress::operator H225_TransportAddress &() const
  1079. #else
  1080. H225_AliasAddress::operator H225_TransportAddress &()
  1081. {
  1082. #ifndef PASN_LEANANDMEAN
  1083.   PAssert(PAssertNULL(choice)->IsDescendant(H225_TransportAddress::Class()), PInvalidCast);
  1084. #endif
  1085.   return *(H225_TransportAddress *)choice;
  1086. }
  1087.  
  1088.  
  1089. H225_AliasAddress::operator const H225_TransportAddress &() const
  1090. #endif
  1091. {
  1092. #ifndef PASN_LEANANDMEAN
  1093.   PAssert(PAssertNULL(choice)->IsDescendant(H225_TransportAddress::Class()), PInvalidCast);
  1094. #endif
  1095.   return *(H225_TransportAddress *)choice;
  1096. }
  1097.  
  1098.  
  1099. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1100. H225_AliasAddress::operator H225_PartyNumber &() const
  1101. #else
  1102. H225_AliasAddress::operator H225_PartyNumber &()
  1103. {
  1104. #ifndef PASN_LEANANDMEAN
  1105.   PAssert(PAssertNULL(choice)->IsDescendant(H225_PartyNumber::Class()), PInvalidCast);
  1106. #endif
  1107.   return *(H225_PartyNumber *)choice;
  1108. }
  1109.  
  1110.  
  1111. H225_AliasAddress::operator const H225_PartyNumber &() const
  1112. #endif
  1113. {
  1114. #ifndef PASN_LEANANDMEAN
  1115.   PAssert(PAssertNULL(choice)->IsDescendant(H225_PartyNumber::Class()), PInvalidCast);
  1116. #endif
  1117.   return *(H225_PartyNumber *)choice;
  1118. }
  1119.  
  1120.  
  1121. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1122. H225_AliasAddress::operator H225_MobileUIM &() const
  1123. #else
  1124. H225_AliasAddress::operator H225_MobileUIM &()
  1125. {
  1126. #ifndef PASN_LEANANDMEAN
  1127.   PAssert(PAssertNULL(choice)->IsDescendant(H225_MobileUIM::Class()), PInvalidCast);
  1128. #endif
  1129.   return *(H225_MobileUIM *)choice;
  1130. }
  1131.  
  1132.  
  1133. H225_AliasAddress::operator const H225_MobileUIM &() const
  1134. #endif
  1135. {
  1136. #ifndef PASN_LEANANDMEAN
  1137.   PAssert(PAssertNULL(choice)->IsDescendant(H225_MobileUIM::Class()), PInvalidCast);
  1138. #endif
  1139.   return *(H225_MobileUIM *)choice;
  1140. }
  1141.  
  1142.  
  1143. BOOL H225_AliasAddress::CreateObject()
  1144. {
  1145.   switch (tag) {
  1146.     case e_dialedDigits :
  1147.       choice = new PASN_IA5String();
  1148.       choice->SetConstraints(PASN_Object::FixedConstraint, 1, 128);
  1149.       choice->SetCharacterSet(PASN_Object::FixedConstraint, "0123456789#*,");
  1150.       return TRUE;
  1151.     case e_h323_ID :
  1152.       choice = new PASN_BMPString();
  1153.       choice->SetConstraints(PASN_Object::FixedConstraint, 1, 256);
  1154.       return TRUE;
  1155.     case e_url_ID :
  1156.       choice = new PASN_IA5String();
  1157.       choice->SetConstraints(PASN_Object::FixedConstraint, 1, 512);
  1158.       return TRUE;
  1159.     case e_transportID :
  1160.       choice = new H225_TransportAddress();
  1161.       return TRUE;
  1162.     case e_email_ID :
  1163.       choice = new PASN_IA5String();
  1164.       choice->SetConstraints(PASN_Object::FixedConstraint, 1, 512);
  1165.       return TRUE;
  1166.     case e_partyNumber :
  1167.       choice = new H225_PartyNumber();
  1168.       return TRUE;
  1169.     case e_mobileUIM :
  1170.       choice = new H225_MobileUIM();
  1171.       return TRUE;
  1172.   }
  1173.  
  1174.   choice = NULL;
  1175.   return FALSE;
  1176. }
  1177.  
  1178.  
  1179. PObject * H225_AliasAddress::Clone() const
  1180. {
  1181. #ifndef PASN_LEANANDMEAN
  1182.   PAssert(IsClass(H225_AliasAddress::Class()), PInvalidCast);
  1183. #endif
  1184.   return new H225_AliasAddress(*this);
  1185. }
  1186.  
  1187.  
  1188. //
  1189. // AddressPattern
  1190. //
  1191.  
  1192. H225_AddressPattern::H225_AddressPattern(unsigned tag, PASN_Object::TagClass tagClass)
  1193.   : PASN_Choice(tag, tagClass, 2, TRUE
  1194. #ifndef PASN_NOPRINTON
  1195.       , "wildcard "
  1196.         "range "
  1197. #endif
  1198.     )
  1199. {
  1200. }
  1201.  
  1202.  
  1203. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1204. H225_AddressPattern::operator H225_AliasAddress &() const
  1205. #else
  1206. H225_AddressPattern::operator H225_AliasAddress &()
  1207. {
  1208. #ifndef PASN_LEANANDMEAN
  1209.   PAssert(PAssertNULL(choice)->IsDescendant(H225_AliasAddress::Class()), PInvalidCast);
  1210. #endif
  1211.   return *(H225_AliasAddress *)choice;
  1212. }
  1213.  
  1214.  
  1215. H225_AddressPattern::operator const H225_AliasAddress &() const
  1216. #endif
  1217. {
  1218. #ifndef PASN_LEANANDMEAN
  1219.   PAssert(PAssertNULL(choice)->IsDescendant(H225_AliasAddress::Class()), PInvalidCast);
  1220. #endif
  1221.   return *(H225_AliasAddress *)choice;
  1222. }
  1223.  
  1224.  
  1225. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1226. H225_AddressPattern::operator H225_AddressPattern_range &() const
  1227. #else
  1228. H225_AddressPattern::operator H225_AddressPattern_range &()
  1229. {
  1230. #ifndef PASN_LEANANDMEAN
  1231.   PAssert(PAssertNULL(choice)->IsDescendant(H225_AddressPattern_range::Class()), PInvalidCast);
  1232. #endif
  1233.   return *(H225_AddressPattern_range *)choice;
  1234. }
  1235.  
  1236.  
  1237. H225_AddressPattern::operator const H225_AddressPattern_range &() const
  1238. #endif
  1239. {
  1240. #ifndef PASN_LEANANDMEAN
  1241.   PAssert(PAssertNULL(choice)->IsDescendant(H225_AddressPattern_range::Class()), PInvalidCast);
  1242. #endif
  1243.   return *(H225_AddressPattern_range *)choice;
  1244. }
  1245.  
  1246.  
  1247. BOOL H225_AddressPattern::CreateObject()
  1248. {
  1249.   switch (tag) {
  1250.     case e_wildcard :
  1251.       choice = new H225_AliasAddress();
  1252.       return TRUE;
  1253.     case e_range :
  1254.       choice = new H225_AddressPattern_range();
  1255.       return TRUE;
  1256.   }
  1257.  
  1258.   choice = NULL;
  1259.   return FALSE;
  1260. }
  1261.  
  1262.  
  1263. PObject * H225_AddressPattern::Clone() const
  1264. {
  1265. #ifndef PASN_LEANANDMEAN
  1266.   PAssert(IsClass(H225_AddressPattern::Class()), PInvalidCast);
  1267. #endif
  1268.   return new H225_AddressPattern(*this);
  1269. }
  1270.  
  1271.  
  1272. //
  1273. // PartyNumber
  1274. //
  1275.  
  1276. H225_PartyNumber::H225_PartyNumber(unsigned tag, PASN_Object::TagClass tagClass)
  1277.   : PASN_Choice(tag, tagClass, 5, TRUE
  1278. #ifndef PASN_NOPRINTON
  1279.       , "e164Number "
  1280.         "dataPartyNumber "
  1281.         "telexPartyNumber "
  1282.         "privateNumber "
  1283.         "nationalStandardPartyNumber "
  1284. #endif
  1285.     )
  1286. {
  1287. }
  1288.  
  1289.  
  1290. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1291. H225_PartyNumber::operator H225_PublicPartyNumber &() const
  1292. #else
  1293. H225_PartyNumber::operator H225_PublicPartyNumber &()
  1294. {
  1295. #ifndef PASN_LEANANDMEAN
  1296.   PAssert(PAssertNULL(choice)->IsDescendant(H225_PublicPartyNumber::Class()), PInvalidCast);
  1297. #endif
  1298.   return *(H225_PublicPartyNumber *)choice;
  1299. }
  1300.  
  1301.  
  1302. H225_PartyNumber::operator const H225_PublicPartyNumber &() const
  1303. #endif
  1304. {
  1305. #ifndef PASN_LEANANDMEAN
  1306.   PAssert(PAssertNULL(choice)->IsDescendant(H225_PublicPartyNumber::Class()), PInvalidCast);
  1307. #endif
  1308.   return *(H225_PublicPartyNumber *)choice;
  1309. }
  1310.  
  1311.  
  1312. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1313. H225_PartyNumber::operator H225_NumberDigits &() const
  1314. #else
  1315. H225_PartyNumber::operator H225_NumberDigits &()
  1316. {
  1317. #ifndef PASN_LEANANDMEAN
  1318.   PAssert(PAssertNULL(choice)->IsDescendant(H225_NumberDigits::Class()), PInvalidCast);
  1319. #endif
  1320.   return *(H225_NumberDigits *)choice;
  1321. }
  1322.  
  1323.  
  1324. H225_PartyNumber::operator const H225_NumberDigits &() const
  1325. #endif
  1326. {
  1327. #ifndef PASN_LEANANDMEAN
  1328.   PAssert(PAssertNULL(choice)->IsDescendant(H225_NumberDigits::Class()), PInvalidCast);
  1329. #endif
  1330.   return *(H225_NumberDigits *)choice;
  1331. }
  1332.  
  1333.  
  1334. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1335. H225_PartyNumber::operator H225_PrivatePartyNumber &() const
  1336. #else
  1337. H225_PartyNumber::operator H225_PrivatePartyNumber &()
  1338. {
  1339. #ifndef PASN_LEANANDMEAN
  1340.   PAssert(PAssertNULL(choice)->IsDescendant(H225_PrivatePartyNumber::Class()), PInvalidCast);
  1341. #endif
  1342.   return *(H225_PrivatePartyNumber *)choice;
  1343. }
  1344.  
  1345.  
  1346. H225_PartyNumber::operator const H225_PrivatePartyNumber &() const
  1347. #endif
  1348. {
  1349. #ifndef PASN_LEANANDMEAN
  1350.   PAssert(PAssertNULL(choice)->IsDescendant(H225_PrivatePartyNumber::Class()), PInvalidCast);
  1351. #endif
  1352.   return *(H225_PrivatePartyNumber *)choice;
  1353. }
  1354.  
  1355.  
  1356. BOOL H225_PartyNumber::CreateObject()
  1357. {
  1358.   switch (tag) {
  1359.     case e_e164Number :
  1360.       choice = new H225_PublicPartyNumber();
  1361.       return TRUE;
  1362.     case e_dataPartyNumber :
  1363.     case e_telexPartyNumber :
  1364.     case e_nationalStandardPartyNumber :
  1365.       choice = new H225_NumberDigits();
  1366.       return TRUE;
  1367.     case e_privateNumber :
  1368.       choice = new H225_PrivatePartyNumber();
  1369.       return TRUE;
  1370.   }
  1371.  
  1372.   choice = NULL;
  1373.   return FALSE;
  1374. }
  1375.  
  1376.  
  1377. PObject * H225_PartyNumber::Clone() const
  1378. {
  1379. #ifndef PASN_LEANANDMEAN
  1380.   PAssert(IsClass(H225_PartyNumber::Class()), PInvalidCast);
  1381. #endif
  1382.   return new H225_PartyNumber(*this);
  1383. }
  1384.  
  1385.  
  1386. //
  1387. // NumberDigits
  1388. //
  1389.  
  1390. H225_NumberDigits::H225_NumberDigits(unsigned tag, PASN_Object::TagClass tagClass)
  1391.   : PASN_IA5String(tag, tagClass)
  1392. {
  1393.   SetConstraints(PASN_Object::FixedConstraint, 1, 128);
  1394.   SetCharacterSet(PASN_Object::FixedConstraint, "0123456789#*,");
  1395. }
  1396.  
  1397.  
  1398. H225_NumberDigits & H225_NumberDigits::operator=(const char * v)
  1399. {
  1400.   SetValue(v);
  1401.   return *this;
  1402. }
  1403.  
  1404.  
  1405. H225_NumberDigits & H225_NumberDigits::operator=(const PString & v)
  1406. {
  1407.   SetValue(v);
  1408.   return *this;
  1409. }
  1410.  
  1411.  
  1412. PObject * H225_NumberDigits::Clone() const
  1413. {
  1414. #ifndef PASN_LEANANDMEAN
  1415.   PAssert(IsClass(H225_NumberDigits::Class()), PInvalidCast);
  1416. #endif
  1417.   return new H225_NumberDigits(*this);
  1418. }
  1419.  
  1420.  
  1421. //
  1422. // PublicTypeOfNumber
  1423. //
  1424.  
  1425. H225_PublicTypeOfNumber::H225_PublicTypeOfNumber(unsigned tag, PASN_Object::TagClass tagClass)
  1426.   : PASN_Choice(tag, tagClass, 6, TRUE
  1427. #ifndef PASN_NOPRINTON
  1428.       , "unknown "
  1429.         "internationalNumber "
  1430.         "nationalNumber "
  1431.         "networkSpecificNumber "
  1432.         "subscriberNumber "
  1433.         "abbreviatedNumber "
  1434. #endif
  1435.     )
  1436. {
  1437. }
  1438.  
  1439.  
  1440. BOOL H225_PublicTypeOfNumber::CreateObject()
  1441. {
  1442.   choice = (tag <= e_abbreviatedNumber) ? new PASN_Null() : NULL;
  1443.   return choice != NULL;
  1444. }
  1445.  
  1446.  
  1447. PObject * H225_PublicTypeOfNumber::Clone() const
  1448. {
  1449. #ifndef PASN_LEANANDMEAN
  1450.   PAssert(IsClass(H225_PublicTypeOfNumber::Class()), PInvalidCast);
  1451. #endif
  1452.   return new H225_PublicTypeOfNumber(*this);
  1453. }
  1454.  
  1455.  
  1456. //
  1457. // PrivateTypeOfNumber
  1458. //
  1459.  
  1460. H225_PrivateTypeOfNumber::H225_PrivateTypeOfNumber(unsigned tag, PASN_Object::TagClass tagClass)
  1461.   : PASN_Choice(tag, tagClass, 6, TRUE
  1462. #ifndef PASN_NOPRINTON
  1463.       , "unknown "
  1464.         "level2RegionalNumber "
  1465.         "level1RegionalNumber "
  1466.         "pISNSpecificNumber "
  1467.         "localNumber "
  1468.         "abbreviatedNumber "
  1469. #endif
  1470.     )
  1471. {
  1472. }
  1473.  
  1474.  
  1475. BOOL H225_PrivateTypeOfNumber::CreateObject()
  1476. {
  1477.   choice = (tag <= e_abbreviatedNumber) ? new PASN_Null() : NULL;
  1478.   return choice != NULL;
  1479. }
  1480.  
  1481.  
  1482. PObject * H225_PrivateTypeOfNumber::Clone() const
  1483. {
  1484. #ifndef PASN_LEANANDMEAN
  1485.   PAssert(IsClass(H225_PrivateTypeOfNumber::Class()), PInvalidCast);
  1486. #endif
  1487.   return new H225_PrivateTypeOfNumber(*this);
  1488. }
  1489.  
  1490.  
  1491. //
  1492. // MobileUIM
  1493. //
  1494.  
  1495. H225_MobileUIM::H225_MobileUIM(unsigned tag, PASN_Object::TagClass tagClass)
  1496.   : PASN_Choice(tag, tagClass, 2, TRUE
  1497. #ifndef PASN_NOPRINTON
  1498.       , "ansi_41_uim "
  1499.         "gsm_uim "
  1500. #endif
  1501.     )
  1502. {
  1503. }
  1504.  
  1505.  
  1506. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1507. H225_MobileUIM::operator H225_ANSI_41_UIM &() const
  1508. #else
  1509. H225_MobileUIM::operator H225_ANSI_41_UIM &()
  1510. {
  1511. #ifndef PASN_LEANANDMEAN
  1512.   PAssert(PAssertNULL(choice)->IsDescendant(H225_ANSI_41_UIM::Class()), PInvalidCast);
  1513. #endif
  1514.   return *(H225_ANSI_41_UIM *)choice;
  1515. }
  1516.  
  1517.  
  1518. H225_MobileUIM::operator const H225_ANSI_41_UIM &() const
  1519. #endif
  1520. {
  1521. #ifndef PASN_LEANANDMEAN
  1522.   PAssert(PAssertNULL(choice)->IsDescendant(H225_ANSI_41_UIM::Class()), PInvalidCast);
  1523. #endif
  1524.   return *(H225_ANSI_41_UIM *)choice;
  1525. }
  1526.  
  1527.  
  1528. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1529. H225_MobileUIM::operator H225_GSM_UIM &() const
  1530. #else
  1531. H225_MobileUIM::operator H225_GSM_UIM &()
  1532. {
  1533. #ifndef PASN_LEANANDMEAN
  1534.   PAssert(PAssertNULL(choice)->IsDescendant(H225_GSM_UIM::Class()), PInvalidCast);
  1535. #endif
  1536.   return *(H225_GSM_UIM *)choice;
  1537. }
  1538.  
  1539.  
  1540. H225_MobileUIM::operator const H225_GSM_UIM &() const
  1541. #endif
  1542. {
  1543. #ifndef PASN_LEANANDMEAN
  1544.   PAssert(PAssertNULL(choice)->IsDescendant(H225_GSM_UIM::Class()), PInvalidCast);
  1545. #endif
  1546.   return *(H225_GSM_UIM *)choice;
  1547. }
  1548.  
  1549.  
  1550. BOOL H225_MobileUIM::CreateObject()
  1551. {
  1552.   switch (tag) {
  1553.     case e_ansi_41_uim :
  1554.       choice = new H225_ANSI_41_UIM();
  1555.       return TRUE;
  1556.     case e_gsm_uim :
  1557.       choice = new H225_GSM_UIM();
  1558.       return TRUE;
  1559.   }
  1560.  
  1561.   choice = NULL;
  1562.   return FALSE;
  1563. }
  1564.  
  1565.  
  1566. PObject * H225_MobileUIM::Clone() const
  1567. {
  1568. #ifndef PASN_LEANANDMEAN
  1569.   PAssert(IsClass(H225_MobileUIM::Class()), PInvalidCast);
  1570. #endif
  1571.   return new H225_MobileUIM(*this);
  1572. }
  1573.  
  1574.  
  1575. //
  1576. // TBCD-STRING
  1577. //
  1578.  
  1579. H225_TBCD_STRING::H225_TBCD_STRING(unsigned tag, PASN_Object::TagClass tagClass)
  1580.   : PASN_IA5String(tag, tagClass)
  1581. {
  1582.   SetCharacterSet(PASN_Object::FixedConstraint, "0123456789#*abc");
  1583. }
  1584.  
  1585.  
  1586. H225_TBCD_STRING & H225_TBCD_STRING::operator=(const char * v)
  1587. {
  1588.   SetValue(v);
  1589.   return *this;
  1590. }
  1591.  
  1592.  
  1593. H225_TBCD_STRING & H225_TBCD_STRING::operator=(const PString & v)
  1594. {
  1595.   SetValue(v);
  1596.   return *this;
  1597. }
  1598.  
  1599.  
  1600. PObject * H225_TBCD_STRING::Clone() const
  1601. {
  1602. #ifndef PASN_LEANANDMEAN
  1603.   PAssert(IsClass(H225_TBCD_STRING::Class()), PInvalidCast);
  1604. #endif
  1605.   return new H225_TBCD_STRING(*this);
  1606. }
  1607.  
  1608.  
  1609. //
  1610. // GSM-UIM
  1611. //
  1612.  
  1613. H225_GSM_UIM::H225_GSM_UIM(unsigned tag, PASN_Object::TagClass tagClass)
  1614.   : PASN_Sequence(tag, tagClass, 6, TRUE, 0)
  1615. {
  1616.   m_imsi.SetConstraints(PASN_Object::FixedConstraint, 3, 16);
  1617.   m_tmsi.SetConstraints(PASN_Object::FixedConstraint, 1, 4);
  1618.   m_msisdn.SetConstraints(PASN_Object::FixedConstraint, 3, 16);
  1619.   m_imei.SetConstraints(PASN_Object::FixedConstraint, 15, 16);
  1620.   m_hplmn.SetConstraints(PASN_Object::FixedConstraint, 1, 4);
  1621.   m_vplmn.SetConstraints(PASN_Object::FixedConstraint, 1, 4);
  1622. }
  1623.  
  1624.  
  1625. #ifndef PASN_NOPRINTON
  1626. void H225_GSM_UIM::PrintOn(ostream & strm) const
  1627. {
  1628.   int indent = strm.precision() + 2;
  1629.   strm << "{\n";
  1630.   if (HasOptionalField(e_imsi))
  1631.     strm << setw(indent+7) << "imsi = " << setprecision(indent) << m_imsi << '\n';
  1632.   if (HasOptionalField(e_tmsi))
  1633.     strm << setw(indent+7) << "tmsi = " << setprecision(indent) << m_tmsi << '\n';
  1634.   if (HasOptionalField(e_msisdn))
  1635.     strm << setw(indent+9) << "msisdn = " << setprecision(indent) << m_msisdn << '\n';
  1636.   if (HasOptionalField(e_imei))
  1637.     strm << setw(indent+7) << "imei = " << setprecision(indent) << m_imei << '\n';
  1638.   if (HasOptionalField(e_hplmn))
  1639.     strm << setw(indent+8) << "hplmn = " << setprecision(indent) << m_hplmn << '\n';
  1640.   if (HasOptionalField(e_vplmn))
  1641.     strm << setw(indent+8) << "vplmn = " << setprecision(indent) << m_vplmn << '\n';
  1642.   strm << setw(indent-1) << "}";
  1643. }
  1644. #endif
  1645.  
  1646.  
  1647. PObject::Comparison H225_GSM_UIM::Compare(const PObject & obj) const
  1648. {
  1649. #ifndef PASN_LEANANDMEAN
  1650.   PAssert(IsDescendant(H225_GSM_UIM::Class()), PInvalidCast);
  1651. #endif
  1652.   const H225_GSM_UIM & other = (const H225_GSM_UIM &)obj;
  1653.  
  1654.   Comparison result;
  1655.  
  1656.   if ((result = m_imsi.Compare(other.m_imsi)) != EqualTo)
  1657.     return result;
  1658.   if ((result = m_tmsi.Compare(other.m_tmsi)) != EqualTo)
  1659.     return result;
  1660.   if ((result = m_msisdn.Compare(other.m_msisdn)) != EqualTo)
  1661.     return result;
  1662.   if ((result = m_imei.Compare(other.m_imei)) != EqualTo)
  1663.     return result;
  1664.   if ((result = m_hplmn.Compare(other.m_hplmn)) != EqualTo)
  1665.     return result;
  1666.   if ((result = m_vplmn.Compare(other.m_vplmn)) != EqualTo)
  1667.     return result;
  1668.  
  1669.   return PASN_Sequence::Compare(other);
  1670. }
  1671.  
  1672.  
  1673. PINDEX H225_GSM_UIM::GetDataLength() const
  1674. {
  1675.   PINDEX length = 0;
  1676.   if (HasOptionalField(e_imsi))
  1677.     length += m_imsi.GetObjectLength();
  1678.   if (HasOptionalField(e_tmsi))
  1679.     length += m_tmsi.GetObjectLength();
  1680.   if (HasOptionalField(e_msisdn))
  1681.     length += m_msisdn.GetObjectLength();
  1682.   if (HasOptionalField(e_imei))
  1683.     length += m_imei.GetObjectLength();
  1684.   if (HasOptionalField(e_hplmn))
  1685.     length += m_hplmn.GetObjectLength();
  1686.   if (HasOptionalField(e_vplmn))
  1687.     length += m_vplmn.GetObjectLength();
  1688.   return length;
  1689. }
  1690.  
  1691.  
  1692. BOOL H225_GSM_UIM::Decode(PASN_Stream & strm)
  1693. {
  1694.   if (!PreambleDecode(strm))
  1695.     return FALSE;
  1696.  
  1697.   if (HasOptionalField(e_imsi) && !m_imsi.Decode(strm))
  1698.     return FALSE;
  1699.   if (HasOptionalField(e_tmsi) && !m_tmsi.Decode(strm))
  1700.     return FALSE;
  1701.   if (HasOptionalField(e_msisdn) && !m_msisdn.Decode(strm))
  1702.     return FALSE;
  1703.   if (HasOptionalField(e_imei) && !m_imei.Decode(strm))
  1704.     return FALSE;
  1705.   if (HasOptionalField(e_hplmn) && !m_hplmn.Decode(strm))
  1706.     return FALSE;
  1707.   if (HasOptionalField(e_vplmn) && !m_vplmn.Decode(strm))
  1708.     return FALSE;
  1709.  
  1710.   return UnknownExtensionsDecode(strm);
  1711. }
  1712.  
  1713.  
  1714. void H225_GSM_UIM::Encode(PASN_Stream & strm) const
  1715. {
  1716.   PreambleEncode(strm);
  1717.  
  1718.   if (HasOptionalField(e_imsi))
  1719.     m_imsi.Encode(strm);
  1720.   if (HasOptionalField(e_tmsi))
  1721.     m_tmsi.Encode(strm);
  1722.   if (HasOptionalField(e_msisdn))
  1723.     m_msisdn.Encode(strm);
  1724.   if (HasOptionalField(e_imei))
  1725.     m_imei.Encode(strm);
  1726.   if (HasOptionalField(e_hplmn))
  1727.     m_hplmn.Encode(strm);
  1728.   if (HasOptionalField(e_vplmn))
  1729.     m_vplmn.Encode(strm);
  1730.  
  1731.   UnknownExtensionsEncode(strm);
  1732. }
  1733.  
  1734.  
  1735. PObject * H225_GSM_UIM::Clone() const
  1736. {
  1737. #ifndef PASN_LEANANDMEAN
  1738.   PAssert(IsClass(H225_GSM_UIM::Class()), PInvalidCast);
  1739. #endif
  1740.   return new H225_GSM_UIM(*this);
  1741. }
  1742.  
  1743.  
  1744. //
  1745. // ExtendedAliasAddress
  1746. //
  1747.  
  1748. H225_ExtendedAliasAddress::H225_ExtendedAliasAddress(unsigned tag, PASN_Object::TagClass tagClass)
  1749.   : PASN_Sequence(tag, tagClass, 2, TRUE, 0)
  1750. {
  1751. }
  1752.  
  1753.  
  1754. #ifndef PASN_NOPRINTON
  1755. void H225_ExtendedAliasAddress::PrintOn(ostream & strm) const
  1756. {
  1757.   int indent = strm.precision() + 2;
  1758.   strm << "{\n";
  1759.   strm << setw(indent+10) << "address = " << setprecision(indent) << m_address << '\n';
  1760.   if (HasOptionalField(e_presentationIndicator))
  1761.     strm << setw(indent+24) << "presentationIndicator = " << setprecision(indent) << m_presentationIndicator << '\n';
  1762.   if (HasOptionalField(e_screeningIndicator))
  1763.     strm << setw(indent+21) << "screeningIndicator = " << setprecision(indent) << m_screeningIndicator << '\n';
  1764.   strm << setw(indent-1) << "}";
  1765. }
  1766. #endif
  1767.  
  1768.  
  1769. PObject::Comparison H225_ExtendedAliasAddress::Compare(const PObject & obj) const
  1770. {
  1771. #ifndef PASN_LEANANDMEAN
  1772.   PAssert(IsDescendant(H225_ExtendedAliasAddress::Class()), PInvalidCast);
  1773. #endif
  1774.   const H225_ExtendedAliasAddress & other = (const H225_ExtendedAliasAddress &)obj;
  1775.  
  1776.   Comparison result;
  1777.  
  1778.   if ((result = m_address.Compare(other.m_address)) != EqualTo)
  1779.     return result;
  1780.   if ((result = m_presentationIndicator.Compare(other.m_presentationIndicator)) != EqualTo)
  1781.     return result;
  1782.   if ((result = m_screeningIndicator.Compare(other.m_screeningIndicator)) != EqualTo)
  1783.     return result;
  1784.  
  1785.   return PASN_Sequence::Compare(other);
  1786. }
  1787.  
  1788.  
  1789. PINDEX H225_ExtendedAliasAddress::GetDataLength() const
  1790. {
  1791.   PINDEX length = 0;
  1792.   length += m_address.GetObjectLength();
  1793.   if (HasOptionalField(e_presentationIndicator))
  1794.     length += m_presentationIndicator.GetObjectLength();
  1795.   if (HasOptionalField(e_screeningIndicator))
  1796.     length += m_screeningIndicator.GetObjectLength();
  1797.   return length;
  1798. }
  1799.  
  1800.  
  1801. BOOL H225_ExtendedAliasAddress::Decode(PASN_Stream & strm)
  1802. {
  1803.   if (!PreambleDecode(strm))
  1804.     return FALSE;
  1805.  
  1806.   if (!m_address.Decode(strm))
  1807.     return FALSE;
  1808.   if (HasOptionalField(e_presentationIndicator) && !m_presentationIndicator.Decode(strm))
  1809.     return FALSE;
  1810.   if (HasOptionalField(e_screeningIndicator) && !m_screeningIndicator.Decode(strm))
  1811.     return FALSE;
  1812.  
  1813.   return UnknownExtensionsDecode(strm);
  1814. }
  1815.  
  1816.  
  1817. void H225_ExtendedAliasAddress::Encode(PASN_Stream & strm) const
  1818. {
  1819.   PreambleEncode(strm);
  1820.  
  1821.   m_address.Encode(strm);
  1822.   if (HasOptionalField(e_presentationIndicator))
  1823.     m_presentationIndicator.Encode(strm);
  1824.   if (HasOptionalField(e_screeningIndicator))
  1825.     m_screeningIndicator.Encode(strm);
  1826.  
  1827.   UnknownExtensionsEncode(strm);
  1828. }
  1829.  
  1830.  
  1831. PObject * H225_ExtendedAliasAddress::Clone() const
  1832. {
  1833. #ifndef PASN_LEANANDMEAN
  1834.   PAssert(IsClass(H225_ExtendedAliasAddress::Class()), PInvalidCast);
  1835. #endif
  1836.   return new H225_ExtendedAliasAddress(*this);
  1837. }
  1838.  
  1839.  
  1840. //
  1841. // UseSpecifiedTransport
  1842. //
  1843.  
  1844. H225_UseSpecifiedTransport::H225_UseSpecifiedTransport(unsigned tag, PASN_Object::TagClass tagClass)
  1845.   : PASN_Choice(tag, tagClass, 2, TRUE
  1846. #ifndef PASN_NOPRINTON
  1847.       , "tcp "
  1848.         "annexE "
  1849. #endif
  1850.     )
  1851. {
  1852. }
  1853.  
  1854.  
  1855. BOOL H225_UseSpecifiedTransport::CreateObject()
  1856. {
  1857.   choice = (tag <= e_annexE) ? new PASN_Null() : NULL;
  1858.   return choice != NULL;
  1859. }
  1860.  
  1861.  
  1862. PObject * H225_UseSpecifiedTransport::Clone() const
  1863. {
  1864. #ifndef PASN_LEANANDMEAN
  1865.   PAssert(IsClass(H225_UseSpecifiedTransport::Class()), PInvalidCast);
  1866. #endif
  1867.   return new H225_UseSpecifiedTransport(*this);
  1868. }
  1869.  
  1870.  
  1871. //
  1872. // SecurityServiceMode
  1873. //
  1874.  
  1875. H225_SecurityServiceMode::H225_SecurityServiceMode(unsigned tag, PASN_Object::TagClass tagClass)
  1876.   : PASN_Choice(tag, tagClass, 3, TRUE
  1877. #ifndef PASN_NOPRINTON
  1878.       , "nonStandard "
  1879.         "none "
  1880.         "default "
  1881. #endif
  1882.     )
  1883. {
  1884. }
  1885.  
  1886.  
  1887. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1888. H225_SecurityServiceMode::operator H225_NonStandardParameter &() const
  1889. #else
  1890. H225_SecurityServiceMode::operator H225_NonStandardParameter &()
  1891. {
  1892. #ifndef PASN_LEANANDMEAN
  1893.   PAssert(PAssertNULL(choice)->IsDescendant(H225_NonStandardParameter::Class()), PInvalidCast);
  1894. #endif
  1895.   return *(H225_NonStandardParameter *)choice;
  1896. }
  1897.  
  1898.  
  1899. H225_SecurityServiceMode::operator const H225_NonStandardParameter &() const
  1900. #endif
  1901. {
  1902. #ifndef PASN_LEANANDMEAN
  1903.   PAssert(PAssertNULL(choice)->IsDescendant(H225_NonStandardParameter::Class()), PInvalidCast);
  1904. #endif
  1905.   return *(H225_NonStandardParameter *)choice;
  1906. }
  1907.  
  1908.  
  1909. BOOL H225_SecurityServiceMode::CreateObject()
  1910. {
  1911.   switch (tag) {
  1912.     case e_nonStandard :
  1913.       choice = new H225_NonStandardParameter();
  1914.       return TRUE;
  1915.     case e_none :
  1916.     case e_default :
  1917.       choice = new PASN_Null();
  1918.       return TRUE;
  1919.   }
  1920.  
  1921.   choice = NULL;
  1922.   return FALSE;
  1923. }
  1924.  
  1925.  
  1926. PObject * H225_SecurityServiceMode::Clone() const
  1927. {
  1928. #ifndef PASN_LEANANDMEAN
  1929.   PAssert(IsClass(H225_SecurityServiceMode::Class()), PInvalidCast);
  1930. #endif
  1931.   return new H225_SecurityServiceMode(*this);
  1932. }
  1933.  
  1934.  
  1935. //
  1936. // H245Security
  1937. //
  1938.  
  1939. H225_H245Security::H225_H245Security(unsigned tag, PASN_Object::TagClass tagClass)
  1940.   : PASN_Choice(tag, tagClass, 4, TRUE
  1941. #ifndef PASN_NOPRINTON
  1942.       , "nonStandard "
  1943.         "noSecurity "
  1944.         "tls "
  1945.         "ipsec "
  1946. #endif
  1947.     )
  1948. {
  1949. }
  1950.  
  1951.  
  1952. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1953. H225_H245Security::operator H225_NonStandardParameter &() const
  1954. #else
  1955. H225_H245Security::operator H225_NonStandardParameter &()
  1956. {
  1957. #ifndef PASN_LEANANDMEAN
  1958.   PAssert(PAssertNULL(choice)->IsDescendant(H225_NonStandardParameter::Class()), PInvalidCast);
  1959. #endif
  1960.   return *(H225_NonStandardParameter *)choice;
  1961. }
  1962.  
  1963.  
  1964. H225_H245Security::operator const H225_NonStandardParameter &() const
  1965. #endif
  1966. {
  1967. #ifndef PASN_LEANANDMEAN
  1968.   PAssert(PAssertNULL(choice)->IsDescendant(H225_NonStandardParameter::Class()), PInvalidCast);
  1969. #endif
  1970.   return *(H225_NonStandardParameter *)choice;
  1971. }
  1972.  
  1973.  
  1974. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  1975. H225_H245Security::operator H225_SecurityCapabilities &() const
  1976. #else
  1977. H225_H245Security::operator H225_SecurityCapabilities &()
  1978. {
  1979. #ifndef PASN_LEANANDMEAN
  1980.   PAssert(PAssertNULL(choice)->IsDescendant(H225_SecurityCapabilities::Class()), PInvalidCast);
  1981. #endif
  1982.   return *(H225_SecurityCapabilities *)choice;
  1983. }
  1984.  
  1985.  
  1986. H225_H245Security::operator const H225_SecurityCapabilities &() const
  1987. #endif
  1988. {
  1989. #ifndef PASN_LEANANDMEAN
  1990.   PAssert(PAssertNULL(choice)->IsDescendant(H225_SecurityCapabilities::Class()), PInvalidCast);
  1991. #endif
  1992.   return *(H225_SecurityCapabilities *)choice;
  1993. }
  1994.  
  1995.  
  1996. BOOL H225_H245Security::CreateObject()
  1997. {
  1998.   switch (tag) {
  1999.     case e_nonStandard :
  2000.       choice = new H225_NonStandardParameter();
  2001.       return TRUE;
  2002.     case e_noSecurity :
  2003.       choice = new PASN_Null();
  2004.       return TRUE;
  2005.     case e_tls :
  2006.     case e_ipsec :
  2007.       choice = new H225_SecurityCapabilities();
  2008.       return TRUE;
  2009.   }
  2010.  
  2011.   choice = NULL;
  2012.   return FALSE;
  2013. }
  2014.  
  2015.  
  2016. PObject * H225_H245Security::Clone() const
  2017. {
  2018. #ifndef PASN_LEANANDMEAN
  2019.   PAssert(IsClass(H225_H245Security::Class()), PInvalidCast);
  2020. #endif
  2021.   return new H225_H245Security(*this);
  2022. }
  2023.  
  2024.  
  2025. //
  2026. // Q954Details
  2027. //
  2028.  
  2029. H225_Q954Details::H225_Q954Details(unsigned tag, PASN_Object::TagClass tagClass)
  2030.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  2031. {
  2032. }
  2033.  
  2034.  
  2035. #ifndef PASN_NOPRINTON
  2036. void H225_Q954Details::PrintOn(ostream & strm) const
  2037. {
  2038.   int indent = strm.precision() + 2;
  2039.   strm << "{\n";
  2040.   strm << setw(indent+20) << "conferenceCalling = " << setprecision(indent) << m_conferenceCalling << '\n';
  2041.   strm << setw(indent+20) << "threePartyService = " << setprecision(indent) << m_threePartyService << '\n';
  2042.   strm << setw(indent-1) << "}";
  2043. }
  2044. #endif
  2045.  
  2046.  
  2047. PObject::Comparison H225_Q954Details::Compare(const PObject & obj) const
  2048. {
  2049. #ifndef PASN_LEANANDMEAN
  2050.   PAssert(IsDescendant(H225_Q954Details::Class()), PInvalidCast);
  2051. #endif
  2052.   const H225_Q954Details & other = (const H225_Q954Details &)obj;
  2053.  
  2054.   Comparison result;
  2055.  
  2056.   if ((result = m_conferenceCalling.Compare(other.m_conferenceCalling)) != EqualTo)
  2057.     return result;
  2058.   if ((result = m_threePartyService.Compare(other.m_threePartyService)) != EqualTo)
  2059.     return result;
  2060.  
  2061.   return PASN_Sequence::Compare(other);
  2062. }
  2063.  
  2064.  
  2065. PINDEX H225_Q954Details::GetDataLength() const
  2066. {
  2067.   PINDEX length = 0;
  2068.   length += m_conferenceCalling.GetObjectLength();
  2069.   length += m_threePartyService.GetObjectLength();
  2070.   return length;
  2071. }
  2072.  
  2073.  
  2074. BOOL H225_Q954Details::Decode(PASN_Stream & strm)
  2075. {
  2076.   if (!PreambleDecode(strm))
  2077.     return FALSE;
  2078.  
  2079.   if (!m_conferenceCalling.Decode(strm))
  2080.     return FALSE;
  2081.   if (!m_threePartyService.Decode(strm))
  2082.     return FALSE;
  2083.  
  2084.   return UnknownExtensionsDecode(strm);
  2085. }
  2086.  
  2087.  
  2088. void H225_Q954Details::Encode(PASN_Stream & strm) const
  2089. {
  2090.   PreambleEncode(strm);
  2091.  
  2092.   m_conferenceCalling.Encode(strm);
  2093.   m_threePartyService.Encode(strm);
  2094.  
  2095.   UnknownExtensionsEncode(strm);
  2096. }
  2097.  
  2098.  
  2099. PObject * H225_Q954Details::Clone() const
  2100. {
  2101. #ifndef PASN_LEANANDMEAN
  2102.   PAssert(IsClass(H225_Q954Details::Class()), PInvalidCast);
  2103. #endif
  2104.   return new H225_Q954Details(*this);
  2105. }
  2106.  
  2107.  
  2108. //
  2109. // GloballyUniqueID
  2110. //
  2111.  
  2112. H225_GloballyUniqueID::H225_GloballyUniqueID(unsigned tag, PASN_Object::TagClass tagClass)
  2113.   : PASN_OctetString(tag, tagClass)
  2114. {
  2115.   SetConstraints(PASN_Object::FixedConstraint, 16);
  2116. }
  2117.  
  2118.  
  2119. H225_GloballyUniqueID::H225_GloballyUniqueID(const char * v)
  2120. {
  2121.   SetValue(v);
  2122. }
  2123.  
  2124.  
  2125. H225_GloballyUniqueID::H225_GloballyUniqueID(const PString & v)
  2126. {
  2127.   SetValue(v);
  2128. }
  2129.  
  2130.  
  2131. H225_GloballyUniqueID::H225_GloballyUniqueID(const PBYTEArray & v)
  2132. {
  2133.   SetValue(v);
  2134. }
  2135.  
  2136.  
  2137. H225_GloballyUniqueID & H225_GloballyUniqueID::operator=(const char * v)
  2138. {
  2139.   SetValue(v);
  2140.   return *this;
  2141. }
  2142.  
  2143.  
  2144. H225_GloballyUniqueID & H225_GloballyUniqueID::operator=(const PString & v)
  2145. {
  2146.   SetValue(v);
  2147.   return *this;
  2148. }
  2149.  
  2150.  
  2151. H225_GloballyUniqueID & H225_GloballyUniqueID::operator=(const PBYTEArray & v)
  2152. {
  2153.   SetValue(v);
  2154.   return *this;
  2155. }
  2156.  
  2157.  
  2158. PObject * H225_GloballyUniqueID::Clone() const
  2159. {
  2160. #ifndef PASN_LEANANDMEAN
  2161.   PAssert(IsClass(H225_GloballyUniqueID::Class()), PInvalidCast);
  2162. #endif
  2163.   return new H225_GloballyUniqueID(*this);
  2164. }
  2165.  
  2166.  
  2167. //
  2168. // ConferenceIdentifier
  2169. //
  2170.  
  2171. H225_ConferenceIdentifier::H225_ConferenceIdentifier(unsigned tag, PASN_Object::TagClass tagClass)
  2172.   : H225_GloballyUniqueID(tag, tagClass)
  2173. {
  2174. }
  2175.  
  2176.  
  2177. H225_ConferenceIdentifier::H225_ConferenceIdentifier(const char * v)
  2178. {
  2179.   SetValue(v);
  2180. }
  2181.  
  2182.  
  2183. H225_ConferenceIdentifier::H225_ConferenceIdentifier(const PString & v)
  2184. {
  2185.   SetValue(v);
  2186. }
  2187.  
  2188.  
  2189. H225_ConferenceIdentifier::H225_ConferenceIdentifier(const PBYTEArray & v)
  2190. {
  2191.   SetValue(v);
  2192. }
  2193.  
  2194.  
  2195. H225_ConferenceIdentifier & H225_ConferenceIdentifier::operator=(const char * v)
  2196. {
  2197.   SetValue(v);
  2198.   return *this;
  2199. }
  2200.  
  2201.  
  2202. H225_ConferenceIdentifier & H225_ConferenceIdentifier::operator=(const PString & v)
  2203. {
  2204.   SetValue(v);
  2205.   return *this;
  2206. }
  2207.  
  2208.  
  2209. H225_ConferenceIdentifier & H225_ConferenceIdentifier::operator=(const PBYTEArray & v)
  2210. {
  2211.   SetValue(v);
  2212.   return *this;
  2213. }
  2214.  
  2215.  
  2216. PObject * H225_ConferenceIdentifier::Clone() const
  2217. {
  2218. #ifndef PASN_LEANANDMEAN
  2219.   PAssert(IsClass(H225_ConferenceIdentifier::Class()), PInvalidCast);
  2220. #endif
  2221.   return new H225_ConferenceIdentifier(*this);
  2222. }
  2223.  
  2224.  
  2225. //
  2226. // RequestSeqNum
  2227. //
  2228.  
  2229. H225_RequestSeqNum::H225_RequestSeqNum(unsigned tag, PASN_Object::TagClass tagClass)
  2230.   : PASN_Integer(tag, tagClass)
  2231. {
  2232.   SetConstraints(PASN_Object::FixedConstraint, 1, 65535);
  2233. }
  2234.  
  2235.  
  2236. H225_RequestSeqNum & H225_RequestSeqNum::operator=(int v)
  2237. {
  2238.   SetValue(v);
  2239.   return *this;
  2240. }
  2241.  
  2242.  
  2243. H225_RequestSeqNum & H225_RequestSeqNum::operator=(unsigned v)
  2244. {
  2245.   SetValue(v);
  2246.   return *this;
  2247. }
  2248.  
  2249.  
  2250. PObject * H225_RequestSeqNum::Clone() const
  2251. {
  2252. #ifndef PASN_LEANANDMEAN
  2253.   PAssert(IsClass(H225_RequestSeqNum::Class()), PInvalidCast);
  2254. #endif
  2255.   return new H225_RequestSeqNum(*this);
  2256. }
  2257.  
  2258.  
  2259. //
  2260. // GatekeeperIdentifier
  2261. //
  2262.  
  2263. H225_GatekeeperIdentifier::H225_GatekeeperIdentifier(unsigned tag, PASN_Object::TagClass tagClass)
  2264.   : PASN_BMPString(tag, tagClass)
  2265. {
  2266.   SetConstraints(PASN_Object::FixedConstraint, 1, 128);
  2267. }
  2268.  
  2269.  
  2270. H225_GatekeeperIdentifier & H225_GatekeeperIdentifier::operator=(const char * v)
  2271. {
  2272.   SetValue(v);
  2273.   return *this;
  2274. }
  2275.  
  2276.  
  2277. H225_GatekeeperIdentifier & H225_GatekeeperIdentifier::operator=(const PString & v)
  2278. {
  2279.   SetValue(v);
  2280.   return *this;
  2281. }
  2282.  
  2283.  
  2284. H225_GatekeeperIdentifier & H225_GatekeeperIdentifier::operator=(const PWORDArray & v)
  2285. {
  2286.   SetValue(v);
  2287.   return *this;
  2288. }
  2289.  
  2290.  
  2291. H225_GatekeeperIdentifier & H225_GatekeeperIdentifier::operator=(const PASN_BMPString & v)
  2292. {
  2293.   SetValue(v);
  2294.   return *this;
  2295. }
  2296.  
  2297.  
  2298. PObject * H225_GatekeeperIdentifier::Clone() const
  2299. {
  2300. #ifndef PASN_LEANANDMEAN
  2301.   PAssert(IsClass(H225_GatekeeperIdentifier::Class()), PInvalidCast);
  2302. #endif
  2303.   return new H225_GatekeeperIdentifier(*this);
  2304. }
  2305.  
  2306.  
  2307. //
  2308. // BandWidth
  2309. //
  2310.  
  2311. H225_BandWidth::H225_BandWidth(unsigned tag, PASN_Object::TagClass tagClass)
  2312.   : PASN_Integer(tag, tagClass)
  2313. {
  2314.   SetConstraints(PASN_Object::FixedConstraint, 0, 4294967295U);
  2315. }
  2316.  
  2317.  
  2318. H225_BandWidth & H225_BandWidth::operator=(int v)
  2319. {
  2320.   SetValue(v);
  2321.   return *this;
  2322. }
  2323.  
  2324.  
  2325. H225_BandWidth & H225_BandWidth::operator=(unsigned v)
  2326. {
  2327.   SetValue(v);
  2328.   return *this;
  2329. }
  2330.  
  2331.  
  2332. PObject * H225_BandWidth::Clone() const
  2333. {
  2334. #ifndef PASN_LEANANDMEAN
  2335.   PAssert(IsClass(H225_BandWidth::Class()), PInvalidCast);
  2336. #endif
  2337.   return new H225_BandWidth(*this);
  2338. }
  2339.  
  2340.  
  2341. //
  2342. // CallReferenceValue
  2343. //
  2344.  
  2345. H225_CallReferenceValue::H225_CallReferenceValue(unsigned tag, PASN_Object::TagClass tagClass)
  2346.   : PASN_Integer(tag, tagClass)
  2347. {
  2348.   SetConstraints(PASN_Object::FixedConstraint, 0, 65535);
  2349. }
  2350.  
  2351.  
  2352. H225_CallReferenceValue & H225_CallReferenceValue::operator=(int v)
  2353. {
  2354.   SetValue(v);
  2355.   return *this;
  2356. }
  2357.  
  2358.  
  2359. H225_CallReferenceValue & H225_CallReferenceValue::operator=(unsigned v)
  2360. {
  2361.   SetValue(v);
  2362.   return *this;
  2363. }
  2364.  
  2365.  
  2366. PObject * H225_CallReferenceValue::Clone() const
  2367. {
  2368. #ifndef PASN_LEANANDMEAN
  2369.   PAssert(IsClass(H225_CallReferenceValue::Class()), PInvalidCast);
  2370. #endif
  2371.   return new H225_CallReferenceValue(*this);
  2372. }
  2373.  
  2374.  
  2375. //
  2376. // EndpointIdentifier
  2377. //
  2378.  
  2379. H225_EndpointIdentifier::H225_EndpointIdentifier(unsigned tag, PASN_Object::TagClass tagClass)
  2380.   : PASN_BMPString(tag, tagClass)
  2381. {
  2382.   SetConstraints(PASN_Object::FixedConstraint, 1, 128);
  2383. }
  2384.  
  2385.  
  2386. H225_EndpointIdentifier & H225_EndpointIdentifier::operator=(const char * v)
  2387. {
  2388.   SetValue(v);
  2389.   return *this;
  2390. }
  2391.  
  2392.  
  2393. H225_EndpointIdentifier & H225_EndpointIdentifier::operator=(const PString & v)
  2394. {
  2395.   SetValue(v);
  2396.   return *this;
  2397. }
  2398.  
  2399.  
  2400. H225_EndpointIdentifier & H225_EndpointIdentifier::operator=(const PWORDArray & v)
  2401. {
  2402.   SetValue(v);
  2403.   return *this;
  2404. }
  2405.  
  2406.  
  2407. H225_EndpointIdentifier & H225_EndpointIdentifier::operator=(const PASN_BMPString & v)
  2408. {
  2409.   SetValue(v);
  2410.   return *this;
  2411. }
  2412.  
  2413.  
  2414. PObject * H225_EndpointIdentifier::Clone() const
  2415. {
  2416. #ifndef PASN_LEANANDMEAN
  2417.   PAssert(IsClass(H225_EndpointIdentifier::Class()), PInvalidCast);
  2418. #endif
  2419.   return new H225_EndpointIdentifier(*this);
  2420. }
  2421.  
  2422.  
  2423. //
  2424. // ProtocolIdentifier
  2425. //
  2426.  
  2427. H225_ProtocolIdentifier::H225_ProtocolIdentifier(unsigned tag, PASN_Object::TagClass tagClass)
  2428.   : PASN_ObjectId(tag, tagClass)
  2429. {
  2430. }
  2431.  
  2432.  
  2433. PObject * H225_ProtocolIdentifier::Clone() const
  2434. {
  2435. #ifndef PASN_LEANANDMEAN
  2436.   PAssert(IsClass(H225_ProtocolIdentifier::Class()), PInvalidCast);
  2437. #endif
  2438.   return new H225_ProtocolIdentifier(*this);
  2439. }
  2440.  
  2441.  
  2442. //
  2443. // TimeToLive
  2444. //
  2445.  
  2446. H225_TimeToLive::H225_TimeToLive(unsigned tag, PASN_Object::TagClass tagClass)
  2447.   : PASN_Integer(tag, tagClass)
  2448. {
  2449.   SetConstraints(PASN_Object::FixedConstraint, 1, 4294967295U);
  2450. }
  2451.  
  2452.  
  2453. H225_TimeToLive & H225_TimeToLive::operator=(int v)
  2454. {
  2455.   SetValue(v);
  2456.   return *this;
  2457. }
  2458.  
  2459.  
  2460. H225_TimeToLive & H225_TimeToLive::operator=(unsigned v)
  2461. {
  2462.   SetValue(v);
  2463.   return *this;
  2464. }
  2465.  
  2466.  
  2467. PObject * H225_TimeToLive::Clone() const
  2468. {
  2469. #ifndef PASN_LEANANDMEAN
  2470.   PAssert(IsClass(H225_TimeToLive::Class()), PInvalidCast);
  2471. #endif
  2472.   return new H225_TimeToLive(*this);
  2473. }
  2474.  
  2475.  
  2476. //
  2477. // H248PackagesDescriptor
  2478. //
  2479.  
  2480. H225_H248PackagesDescriptor::H225_H248PackagesDescriptor(unsigned tag, PASN_Object::TagClass tagClass)
  2481.   : PASN_OctetString(tag, tagClass)
  2482. {
  2483. }
  2484.  
  2485.  
  2486. H225_H248PackagesDescriptor::H225_H248PackagesDescriptor(const char * v)
  2487. {
  2488.   SetValue(v);
  2489. }
  2490.  
  2491.  
  2492. H225_H248PackagesDescriptor::H225_H248PackagesDescriptor(const PString & v)
  2493. {
  2494.   SetValue(v);
  2495. }
  2496.  
  2497.  
  2498. H225_H248PackagesDescriptor::H225_H248PackagesDescriptor(const PBYTEArray & v)
  2499. {
  2500.   SetValue(v);
  2501. }
  2502.  
  2503.  
  2504. H225_H248PackagesDescriptor & H225_H248PackagesDescriptor::operator=(const char * v)
  2505. {
  2506.   SetValue(v);
  2507.   return *this;
  2508. }
  2509.  
  2510.  
  2511. H225_H248PackagesDescriptor & H225_H248PackagesDescriptor::operator=(const PString & v)
  2512. {
  2513.   SetValue(v);
  2514.   return *this;
  2515. }
  2516.  
  2517.  
  2518. H225_H248PackagesDescriptor & H225_H248PackagesDescriptor::operator=(const PBYTEArray & v)
  2519. {
  2520.   SetValue(v);
  2521.   return *this;
  2522. }
  2523.  
  2524.  
  2525. PObject * H225_H248PackagesDescriptor::Clone() const
  2526. {
  2527. #ifndef PASN_LEANANDMEAN
  2528.   PAssert(IsClass(H225_H248PackagesDescriptor::Class()), PInvalidCast);
  2529. #endif
  2530.   return new H225_H248PackagesDescriptor(*this);
  2531. }
  2532.  
  2533.  
  2534. //
  2535. // H248SignalsDescriptor
  2536. //
  2537.  
  2538. H225_H248SignalsDescriptor::H225_H248SignalsDescriptor(unsigned tag, PASN_Object::TagClass tagClass)
  2539.   : PASN_OctetString(tag, tagClass)
  2540. {
  2541. }
  2542.  
  2543.  
  2544. H225_H248SignalsDescriptor::H225_H248SignalsDescriptor(const char * v)
  2545. {
  2546.   SetValue(v);
  2547. }
  2548.  
  2549.  
  2550. H225_H248SignalsDescriptor::H225_H248SignalsDescriptor(const PString & v)
  2551. {
  2552.   SetValue(v);
  2553. }
  2554.  
  2555.  
  2556. H225_H248SignalsDescriptor::H225_H248SignalsDescriptor(const PBYTEArray & v)
  2557. {
  2558.   SetValue(v);
  2559. }
  2560.  
  2561.  
  2562. H225_H248SignalsDescriptor & H225_H248SignalsDescriptor::operator=(const char * v)
  2563. {
  2564.   SetValue(v);
  2565.   return *this;
  2566. }
  2567.  
  2568.  
  2569. H225_H248SignalsDescriptor & H225_H248SignalsDescriptor::operator=(const PString & v)
  2570. {
  2571.   SetValue(v);
  2572.   return *this;
  2573. }
  2574.  
  2575.  
  2576. H225_H248SignalsDescriptor & H225_H248SignalsDescriptor::operator=(const PBYTEArray & v)
  2577. {
  2578.   SetValue(v);
  2579.   return *this;
  2580. }
  2581.  
  2582.  
  2583. PObject * H225_H248SignalsDescriptor::Clone() const
  2584. {
  2585. #ifndef PASN_LEANANDMEAN
  2586.   PAssert(IsClass(H225_H248SignalsDescriptor::Class()), PInvalidCast);
  2587. #endif
  2588.   return new H225_H248SignalsDescriptor(*this);
  2589. }
  2590.  
  2591.  
  2592. //
  2593. // CallIdentifier
  2594. //
  2595.  
  2596. H225_CallIdentifier::H225_CallIdentifier(unsigned tag, PASN_Object::TagClass tagClass)
  2597.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  2598. {
  2599. }
  2600.  
  2601.  
  2602. #ifndef PASN_NOPRINTON
  2603. void H225_CallIdentifier::PrintOn(ostream & strm) const
  2604. {
  2605.   int indent = strm.precision() + 2;
  2606.   strm << "{\n";
  2607.   strm << setw(indent+7) << "guid = " << setprecision(indent) << m_guid << '\n';
  2608.   strm << setw(indent-1) << "}";
  2609. }
  2610. #endif
  2611.  
  2612.  
  2613. PObject::Comparison H225_CallIdentifier::Compare(const PObject & obj) const
  2614. {
  2615. #ifndef PASN_LEANANDMEAN
  2616.   PAssert(IsDescendant(H225_CallIdentifier::Class()), PInvalidCast);
  2617. #endif
  2618.   const H225_CallIdentifier & other = (const H225_CallIdentifier &)obj;
  2619.  
  2620.   Comparison result;
  2621.  
  2622.   if ((result = m_guid.Compare(other.m_guid)) != EqualTo)
  2623.     return result;
  2624.  
  2625.   return PASN_Sequence::Compare(other);
  2626. }
  2627.  
  2628.  
  2629. PINDEX H225_CallIdentifier::GetDataLength() const
  2630. {
  2631.   PINDEX length = 0;
  2632.   length += m_guid.GetObjectLength();
  2633.   return length;
  2634. }
  2635.  
  2636.  
  2637. BOOL H225_CallIdentifier::Decode(PASN_Stream & strm)
  2638. {
  2639.   if (!PreambleDecode(strm))
  2640.     return FALSE;
  2641.  
  2642.   if (!m_guid.Decode(strm))
  2643.     return FALSE;
  2644.  
  2645.   return UnknownExtensionsDecode(strm);
  2646. }
  2647.  
  2648.  
  2649. void H225_CallIdentifier::Encode(PASN_Stream & strm) const
  2650. {
  2651.   PreambleEncode(strm);
  2652.  
  2653.   m_guid.Encode(strm);
  2654.  
  2655.   UnknownExtensionsEncode(strm);
  2656. }
  2657.  
  2658.  
  2659. PObject * H225_CallIdentifier::Clone() const
  2660. {
  2661. #ifndef PASN_LEANANDMEAN
  2662.   PAssert(IsClass(H225_CallIdentifier::Class()), PInvalidCast);
  2663. #endif
  2664.   return new H225_CallIdentifier(*this);
  2665. }
  2666.  
  2667.  
  2668. //
  2669. // EncryptIntAlg
  2670. //
  2671.  
  2672. H225_EncryptIntAlg::H225_EncryptIntAlg(unsigned tag, PASN_Object::TagClass tagClass)
  2673.   : PASN_Choice(tag, tagClass, 2, TRUE
  2674. #ifndef PASN_NOPRINTON
  2675.       , "nonStandard "
  2676.         "isoAlgorithm "
  2677. #endif
  2678.     )
  2679. {
  2680. }
  2681.  
  2682.  
  2683. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  2684. H225_EncryptIntAlg::operator H225_NonStandardParameter &() const
  2685. #else
  2686. H225_EncryptIntAlg::operator H225_NonStandardParameter &()
  2687. {
  2688. #ifndef PASN_LEANANDMEAN
  2689.   PAssert(PAssertNULL(choice)->IsDescendant(H225_NonStandardParameter::Class()), PInvalidCast);
  2690. #endif
  2691.   return *(H225_NonStandardParameter *)choice;
  2692. }
  2693.  
  2694.  
  2695. H225_EncryptIntAlg::operator const H225_NonStandardParameter &() const
  2696. #endif
  2697. {
  2698. #ifndef PASN_LEANANDMEAN
  2699.   PAssert(PAssertNULL(choice)->IsDescendant(H225_NonStandardParameter::Class()), PInvalidCast);
  2700. #endif
  2701.   return *(H225_NonStandardParameter *)choice;
  2702. }
  2703.  
  2704.  
  2705. BOOL H225_EncryptIntAlg::CreateObject()
  2706. {
  2707.   switch (tag) {
  2708.     case e_nonStandard :
  2709.       choice = new H225_NonStandardParameter();
  2710.       return TRUE;
  2711.     case e_isoAlgorithm :
  2712.       choice = new PASN_ObjectId();
  2713.       return TRUE;
  2714.   }
  2715.  
  2716.   choice = NULL;
  2717.   return FALSE;
  2718. }
  2719.  
  2720.  
  2721. PObject * H225_EncryptIntAlg::Clone() const
  2722. {
  2723. #ifndef PASN_LEANANDMEAN
  2724.   PAssert(IsClass(H225_EncryptIntAlg::Class()), PInvalidCast);
  2725. #endif
  2726.   return new H225_EncryptIntAlg(*this);
  2727. }
  2728.  
  2729.  
  2730. //
  2731. // NonIsoIntegrityMechanism
  2732. //
  2733.  
  2734. H225_NonIsoIntegrityMechanism::H225_NonIsoIntegrityMechanism(unsigned tag, PASN_Object::TagClass tagClass)
  2735.   : PASN_Choice(tag, tagClass, 4, TRUE
  2736. #ifndef PASN_NOPRINTON
  2737.       , "hMAC_MD5 "
  2738.         "hMAC_iso10118_2_s "
  2739.         "hMAC_iso10118_2_l "
  2740.         "hMAC_iso10118_3 "
  2741. #endif
  2742.     )
  2743. {
  2744. }
  2745.  
  2746.  
  2747. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  2748. H225_NonIsoIntegrityMechanism::operator H225_EncryptIntAlg &() const
  2749. #else
  2750. H225_NonIsoIntegrityMechanism::operator H225_EncryptIntAlg &()
  2751. {
  2752. #ifndef PASN_LEANANDMEAN
  2753.   PAssert(PAssertNULL(choice)->IsDescendant(H225_EncryptIntAlg::Class()), PInvalidCast);
  2754. #endif
  2755.   return *(H225_EncryptIntAlg *)choice;
  2756. }
  2757.  
  2758.  
  2759. H225_NonIsoIntegrityMechanism::operator const H225_EncryptIntAlg &() const
  2760. #endif
  2761. {
  2762. #ifndef PASN_LEANANDMEAN
  2763.   PAssert(PAssertNULL(choice)->IsDescendant(H225_EncryptIntAlg::Class()), PInvalidCast);
  2764. #endif
  2765.   return *(H225_EncryptIntAlg *)choice;
  2766. }
  2767.  
  2768.  
  2769. BOOL H225_NonIsoIntegrityMechanism::CreateObject()
  2770. {
  2771.   switch (tag) {
  2772.     case e_hMAC_MD5 :
  2773.       choice = new PASN_Null();
  2774.       return TRUE;
  2775.     case e_hMAC_iso10118_2_s :
  2776.     case e_hMAC_iso10118_2_l :
  2777.       choice = new H225_EncryptIntAlg();
  2778.       return TRUE;
  2779.     case e_hMAC_iso10118_3 :
  2780.       choice = new PASN_ObjectId();
  2781.       return TRUE;
  2782.   }
  2783.  
  2784.   choice = NULL;
  2785.   return FALSE;
  2786. }
  2787.  
  2788.  
  2789. PObject * H225_NonIsoIntegrityMechanism::Clone() const
  2790. {
  2791. #ifndef PASN_LEANANDMEAN
  2792.   PAssert(IsClass(H225_NonIsoIntegrityMechanism::Class()), PInvalidCast);
  2793. #endif
  2794.   return new H225_NonIsoIntegrityMechanism(*this);
  2795. }
  2796.  
  2797.  
  2798. //
  2799. // IntegrityMechanism
  2800. //
  2801.  
  2802. H225_IntegrityMechanism::H225_IntegrityMechanism(unsigned tag, PASN_Object::TagClass tagClass)
  2803.   : PASN_Choice(tag, tagClass, 4, TRUE
  2804. #ifndef PASN_NOPRINTON
  2805.       , "nonStandard "
  2806.         "digSig "
  2807.         "iso9797 "
  2808.         "nonIsoIM "
  2809. #endif
  2810.     )
  2811. {
  2812. }
  2813.  
  2814.  
  2815. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  2816. H225_IntegrityMechanism::operator H225_NonStandardParameter &() const
  2817. #else
  2818. H225_IntegrityMechanism::operator H225_NonStandardParameter &()
  2819. {
  2820. #ifndef PASN_LEANANDMEAN
  2821.   PAssert(PAssertNULL(choice)->IsDescendant(H225_NonStandardParameter::Class()), PInvalidCast);
  2822. #endif
  2823.   return *(H225_NonStandardParameter *)choice;
  2824. }
  2825.  
  2826.  
  2827. H225_IntegrityMechanism::operator const H225_NonStandardParameter &() const
  2828. #endif
  2829. {
  2830. #ifndef PASN_LEANANDMEAN
  2831.   PAssert(PAssertNULL(choice)->IsDescendant(H225_NonStandardParameter::Class()), PInvalidCast);
  2832. #endif
  2833.   return *(H225_NonStandardParameter *)choice;
  2834. }
  2835.  
  2836.  
  2837. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  2838. H225_IntegrityMechanism::operator H225_NonIsoIntegrityMechanism &() const
  2839. #else
  2840. H225_IntegrityMechanism::operator H225_NonIsoIntegrityMechanism &()
  2841. {
  2842. #ifndef PASN_LEANANDMEAN
  2843.   PAssert(PAssertNULL(choice)->IsDescendant(H225_NonIsoIntegrityMechanism::Class()), PInvalidCast);
  2844. #endif
  2845.   return *(H225_NonIsoIntegrityMechanism *)choice;
  2846. }
  2847.  
  2848.  
  2849. H225_IntegrityMechanism::operator const H225_NonIsoIntegrityMechanism &() const
  2850. #endif
  2851. {
  2852. #ifndef PASN_LEANANDMEAN
  2853.   PAssert(PAssertNULL(choice)->IsDescendant(H225_NonIsoIntegrityMechanism::Class()), PInvalidCast);
  2854. #endif
  2855.   return *(H225_NonIsoIntegrityMechanism *)choice;
  2856. }
  2857.  
  2858.  
  2859. BOOL H225_IntegrityMechanism::CreateObject()
  2860. {
  2861.   switch (tag) {
  2862.     case e_nonStandard :
  2863.       choice = new H225_NonStandardParameter();
  2864.       return TRUE;
  2865.     case e_digSig :
  2866.       choice = new PASN_Null();
  2867.       return TRUE;
  2868.     case e_iso9797 :
  2869.       choice = new PASN_ObjectId();
  2870.       return TRUE;
  2871.     case e_nonIsoIM :
  2872.       choice = new H225_NonIsoIntegrityMechanism();
  2873.       return TRUE;
  2874.   }
  2875.  
  2876.   choice = NULL;
  2877.   return FALSE;
  2878. }
  2879.  
  2880.  
  2881. PObject * H225_IntegrityMechanism::Clone() const
  2882. {
  2883. #ifndef PASN_LEANANDMEAN
  2884.   PAssert(IsClass(H225_IntegrityMechanism::Class()), PInvalidCast);
  2885. #endif
  2886.   return new H225_IntegrityMechanism(*this);
  2887. }
  2888.  
  2889.  
  2890. //
  2891. // ICV
  2892. //
  2893.  
  2894. H225_ICV::H225_ICV(unsigned tag, PASN_Object::TagClass tagClass)
  2895.   : PASN_Sequence(tag, tagClass, 0, FALSE, 0)
  2896. {
  2897. }
  2898.  
  2899.  
  2900. #ifndef PASN_NOPRINTON
  2901. void H225_ICV::PrintOn(ostream & strm) const
  2902. {
  2903.   int indent = strm.precision() + 2;
  2904.   strm << "{\n";
  2905.   strm << setw(indent+15) << "algorithmOID = " << setprecision(indent) << m_algorithmOID << '\n';
  2906.   strm << setw(indent+6) << "icv = " << setprecision(indent) << m_icv << '\n';
  2907.   strm << setw(indent-1) << "}";
  2908. }
  2909. #endif
  2910.  
  2911.  
  2912. PObject::Comparison H225_ICV::Compare(const PObject & obj) const
  2913. {
  2914. #ifndef PASN_LEANANDMEAN
  2915.   PAssert(IsDescendant(H225_ICV::Class()), PInvalidCast);
  2916. #endif
  2917.   const H225_ICV & other = (const H225_ICV &)obj;
  2918.  
  2919.   Comparison result;
  2920.  
  2921.   if ((result = m_algorithmOID.Compare(other.m_algorithmOID)) != EqualTo)
  2922.     return result;
  2923.   if ((result = m_icv.Compare(other.m_icv)) != EqualTo)
  2924.     return result;
  2925.  
  2926.   return PASN_Sequence::Compare(other);
  2927. }
  2928.  
  2929.  
  2930. PINDEX H225_ICV::GetDataLength() const
  2931. {
  2932.   PINDEX length = 0;
  2933.   length += m_algorithmOID.GetObjectLength();
  2934.   length += m_icv.GetObjectLength();
  2935.   return length;
  2936. }
  2937.  
  2938.  
  2939. BOOL H225_ICV::Decode(PASN_Stream & strm)
  2940. {
  2941.   if (!PreambleDecode(strm))
  2942.     return FALSE;
  2943.  
  2944.   if (!m_algorithmOID.Decode(strm))
  2945.     return FALSE;
  2946.   if (!m_icv.Decode(strm))
  2947.     return FALSE;
  2948.  
  2949.   return UnknownExtensionsDecode(strm);
  2950. }
  2951.  
  2952.  
  2953. void H225_ICV::Encode(PASN_Stream & strm) const
  2954. {
  2955.   PreambleEncode(strm);
  2956.  
  2957.   m_algorithmOID.Encode(strm);
  2958.   m_icv.Encode(strm);
  2959.  
  2960.   UnknownExtensionsEncode(strm);
  2961. }
  2962.  
  2963.  
  2964. PObject * H225_ICV::Clone() const
  2965. {
  2966. #ifndef PASN_LEANANDMEAN
  2967.   PAssert(IsClass(H225_ICV::Class()), PInvalidCast);
  2968. #endif
  2969.   return new H225_ICV(*this);
  2970. }
  2971.  
  2972.  
  2973. //
  2974. // FastStartToken
  2975. //
  2976.  
  2977. H225_FastStartToken::H225_FastStartToken(unsigned tag, PASN_Object::TagClass tagClass)
  2978.   : H235_ClearToken(tag, tagClass)
  2979. {
  2980.   IncludeOptionalField(e_generalID);
  2981.   IncludeOptionalField(e_dhkey);
  2982.   IncludeOptionalField(e_timeStamp);
  2983. }
  2984.  
  2985.  
  2986. PObject * H225_FastStartToken::Clone() const
  2987. {
  2988. #ifndef PASN_LEANANDMEAN
  2989.   PAssert(IsClass(H225_FastStartToken::Class()), PInvalidCast);
  2990. #endif
  2991.   return new H225_FastStartToken(*this);
  2992. }
  2993.  
  2994.  
  2995. //
  2996. // EncodedFastStartToken
  2997. //
  2998.  
  2999. H225_EncodedFastStartToken::H225_EncodedFastStartToken(unsigned tag, PASN_Object::TagClass tagClass)
  3000.   : PASN_OctetString(tag, tagClass)
  3001. {
  3002. }
  3003.  
  3004.  
  3005. PObject * H225_EncodedFastStartToken::Clone() const
  3006. {
  3007. #ifndef PASN_LEANANDMEAN
  3008.   PAssert(IsClass(H225_EncodedFastStartToken::Class()), PInvalidCast);
  3009. #endif
  3010.   return new H225_EncodedFastStartToken(*this);
  3011. }
  3012.  
  3013.  
  3014. //
  3015. // CryptoH323Token
  3016. //
  3017.  
  3018. H225_CryptoH323Token::H225_CryptoH323Token(unsigned tag, PASN_Object::TagClass tagClass)
  3019.   : PASN_Choice(tag, tagClass, 8, TRUE
  3020. #ifndef PASN_NOPRINTON
  3021.       , "cryptoEPPwdHash "
  3022.         "cryptoGKPwdHash "
  3023.         "cryptoEPPwdEncr "
  3024.         "cryptoGKPwdEncr "
  3025.         "cryptoEPCert "
  3026.         "cryptoGKCert "
  3027.         "cryptoFastStart "
  3028.         "nestedcryptoToken "
  3029. #endif
  3030.     )
  3031. {
  3032. }
  3033.  
  3034.  
  3035. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  3036. H225_CryptoH323Token::operator H225_CryptoH323Token_cryptoEPPwdHash &() const
  3037. #else
  3038. H225_CryptoH323Token::operator H225_CryptoH323Token_cryptoEPPwdHash &()
  3039. {
  3040. #ifndef PASN_LEANANDMEAN
  3041.   PAssert(PAssertNULL(choice)->IsDescendant(H225_CryptoH323Token_cryptoEPPwdHash::Class()), PInvalidCast);
  3042. #endif
  3043.   return *(H225_CryptoH323Token_cryptoEPPwdHash *)choice;
  3044. }
  3045.  
  3046.  
  3047. H225_CryptoH323Token::operator const H225_CryptoH323Token_cryptoEPPwdHash &() const
  3048. #endif
  3049. {
  3050. #ifndef PASN_LEANANDMEAN
  3051.   PAssert(PAssertNULL(choice)->IsDescendant(H225_CryptoH323Token_cryptoEPPwdHash::Class()), PInvalidCast);
  3052. #endif
  3053.   return *(H225_CryptoH323Token_cryptoEPPwdHash *)choice;
  3054. }
  3055.  
  3056.  
  3057. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  3058. H225_CryptoH323Token::operator H225_CryptoH323Token_cryptoGKPwdHash &() const
  3059. #else
  3060. H225_CryptoH323Token::operator H225_CryptoH323Token_cryptoGKPwdHash &()
  3061. {
  3062. #ifndef PASN_LEANANDMEAN
  3063.   PAssert(PAssertNULL(choice)->IsDescendant(H225_CryptoH323Token_cryptoGKPwdHash::Class()), PInvalidCast);
  3064. #endif
  3065.   return *(H225_CryptoH323Token_cryptoGKPwdHash *)choice;
  3066. }
  3067.  
  3068.  
  3069. H225_CryptoH323Token::operator const H225_CryptoH323Token_cryptoGKPwdHash &() const
  3070. #endif
  3071. {
  3072. #ifndef PASN_LEANANDMEAN
  3073.   PAssert(PAssertNULL(choice)->IsDescendant(H225_CryptoH323Token_cryptoGKPwdHash::Class()), PInvalidCast);
  3074. #endif
  3075.   return *(H225_CryptoH323Token_cryptoGKPwdHash *)choice;
  3076. }
  3077.  
  3078.  
  3079. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  3080. H225_CryptoH323Token::operator H235_ENCRYPTED<H235_EncodedPwdCertToken> &() const
  3081. #else
  3082. H225_CryptoH323Token::operator H235_ENCRYPTED<H235_EncodedPwdCertToken> &()
  3083. {
  3084. #ifndef PASN_LEANANDMEAN
  3085.   PAssert(PAssertNULL(choice)->IsDescendant(H235_ENCRYPTED<H235_EncodedPwdCertToken>::Class()), PInvalidCast);
  3086. #endif
  3087.   return *(H235_ENCRYPTED<H235_EncodedPwdCertToken> *)choice;
  3088. }
  3089.  
  3090.  
  3091. H225_CryptoH323Token::operator const H235_ENCRYPTED<H235_EncodedPwdCertToken> &() const
  3092. #endif
  3093. {
  3094. #ifndef PASN_LEANANDMEAN
  3095.   PAssert(PAssertNULL(choice)->IsDescendant(H235_ENCRYPTED<H235_EncodedPwdCertToken>::Class()), PInvalidCast);
  3096. #endif
  3097.   return *(H235_ENCRYPTED<H235_EncodedPwdCertToken> *)choice;
  3098. }
  3099.  
  3100.  
  3101. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  3102. H225_CryptoH323Token::operator H235_SIGNED<H235_EncodedPwdCertToken> &() const
  3103. #else
  3104. H225_CryptoH323Token::operator H235_SIGNED<H235_EncodedPwdCertToken> &()
  3105. {
  3106. #ifndef PASN_LEANANDMEAN
  3107.   PAssert(PAssertNULL(choice)->IsDescendant(H235_SIGNED<H235_EncodedPwdCertToken>::Class()), PInvalidCast);
  3108. #endif
  3109.   return *(H235_SIGNED<H235_EncodedPwdCertToken> *)choice;
  3110. }
  3111.  
  3112.  
  3113. H225_CryptoH323Token::operator const H235_SIGNED<H235_EncodedPwdCertToken> &() const
  3114. #endif
  3115. {
  3116. #ifndef PASN_LEANANDMEAN
  3117.   PAssert(PAssertNULL(choice)->IsDescendant(H235_SIGNED<H235_EncodedPwdCertToken>::Class()), PInvalidCast);
  3118. #endif
  3119.   return *(H235_SIGNED<H235_EncodedPwdCertToken> *)choice;
  3120. }
  3121.  
  3122.  
  3123. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  3124. H225_CryptoH323Token::operator H235_SIGNED<H225_EncodedFastStartToken> &() const
  3125. #else
  3126. H225_CryptoH323Token::operator H235_SIGNED<H225_EncodedFastStartToken> &()
  3127. {
  3128. #ifndef PASN_LEANANDMEAN
  3129.   PAssert(PAssertNULL(choice)->IsDescendant(H235_SIGNED<H225_EncodedFastStartToken>::Class()), PInvalidCast);
  3130. #endif
  3131.   return *(H235_SIGNED<H225_EncodedFastStartToken> *)choice;
  3132. }
  3133.  
  3134.  
  3135. H225_CryptoH323Token::operator const H235_SIGNED<H225_EncodedFastStartToken> &() const
  3136. #endif
  3137. {
  3138. #ifndef PASN_LEANANDMEAN
  3139.   PAssert(PAssertNULL(choice)->IsDescendant(H235_SIGNED<H225_EncodedFastStartToken>::Class()), PInvalidCast);
  3140. #endif
  3141.   return *(H235_SIGNED<H225_EncodedFastStartToken> *)choice;
  3142. }
  3143.  
  3144.  
  3145. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  3146. H225_CryptoH323Token::operator H235_CryptoToken &() const
  3147. #else
  3148. H225_CryptoH323Token::operator H235_CryptoToken &()
  3149. {
  3150. #ifndef PASN_LEANANDMEAN
  3151.   PAssert(PAssertNULL(choice)->IsDescendant(H235_CryptoToken::Class()), PInvalidCast);
  3152. #endif
  3153.   return *(H235_CryptoToken *)choice;
  3154. }
  3155.  
  3156.  
  3157. H225_CryptoH323Token::operator const H235_CryptoToken &() const
  3158. #endif
  3159. {
  3160. #ifndef PASN_LEANANDMEAN
  3161.   PAssert(PAssertNULL(choice)->IsDescendant(H235_CryptoToken::Class()), PInvalidCast);
  3162. #endif
  3163.   return *(H235_CryptoToken *)choice;
  3164. }
  3165.  
  3166.  
  3167. BOOL H225_CryptoH323Token::CreateObject()
  3168. {
  3169.   switch (tag) {
  3170.     case e_cryptoEPPwdHash :
  3171.       choice = new H225_CryptoH323Token_cryptoEPPwdHash();
  3172.       return TRUE;
  3173.     case e_cryptoGKPwdHash :
  3174.       choice = new H225_CryptoH323Token_cryptoGKPwdHash();
  3175.       return TRUE;
  3176.     case e_cryptoEPPwdEncr :
  3177.     case e_cryptoGKPwdEncr :
  3178.       choice = new H235_ENCRYPTED<H235_EncodedPwdCertToken>();
  3179.       return TRUE;
  3180.     case e_cryptoEPCert :
  3181.     case e_cryptoGKCert :
  3182.       choice = new H235_SIGNED<H235_EncodedPwdCertToken>();
  3183.       return TRUE;
  3184.     case e_cryptoFastStart :
  3185.       choice = new H235_SIGNED<H225_EncodedFastStartToken>();
  3186.       return TRUE;
  3187.     case e_nestedcryptoToken :
  3188.       choice = new H235_CryptoToken();
  3189.       return TRUE;
  3190.   }
  3191.  
  3192.   choice = NULL;
  3193.   return FALSE;
  3194. }
  3195.  
  3196.  
  3197. PObject * H225_CryptoH323Token::Clone() const
  3198. {
  3199. #ifndef PASN_LEANANDMEAN
  3200.   PAssert(IsClass(H225_CryptoH323Token::Class()), PInvalidCast);
  3201. #endif
  3202.   return new H225_CryptoH323Token(*this);
  3203. }
  3204.  
  3205.  
  3206. //
  3207. // CallLinkage
  3208. //
  3209.  
  3210. H225_CallLinkage::H225_CallLinkage(unsigned tag, PASN_Object::TagClass tagClass)
  3211.   : PASN_Sequence(tag, tagClass, 2, TRUE, 0)
  3212. {
  3213. }
  3214.  
  3215.  
  3216. #ifndef PASN_NOPRINTON
  3217. void H225_CallLinkage::PrintOn(ostream & strm) const
  3218. {
  3219.   int indent = strm.precision() + 2;
  3220.   strm << "{\n";
  3221.   if (HasOptionalField(e_globalCallId))
  3222.     strm << setw(indent+15) << "globalCallId = " << setprecision(indent) << m_globalCallId << '\n';
  3223.   if (HasOptionalField(e_threadId))
  3224.     strm << setw(indent+11) << "threadId = " << setprecision(indent) << m_threadId << '\n';
  3225.   strm << setw(indent-1) << "}";
  3226. }
  3227. #endif
  3228.  
  3229.  
  3230. PObject::Comparison H225_CallLinkage::Compare(const PObject & obj) const
  3231. {
  3232. #ifndef PASN_LEANANDMEAN
  3233.   PAssert(IsDescendant(H225_CallLinkage::Class()), PInvalidCast);
  3234. #endif
  3235.   const H225_CallLinkage & other = (const H225_CallLinkage &)obj;
  3236.  
  3237.   Comparison result;
  3238.  
  3239.   if ((result = m_globalCallId.Compare(other.m_globalCallId)) != EqualTo)
  3240.     return result;
  3241.   if ((result = m_threadId.Compare(other.m_threadId)) != EqualTo)
  3242.     return result;
  3243.  
  3244.   return PASN_Sequence::Compare(other);
  3245. }
  3246.  
  3247.  
  3248. PINDEX H225_CallLinkage::GetDataLength() const
  3249. {
  3250.   PINDEX length = 0;
  3251.   if (HasOptionalField(e_globalCallId))
  3252.     length += m_globalCallId.GetObjectLength();
  3253.   if (HasOptionalField(e_threadId))
  3254.     length += m_threadId.GetObjectLength();
  3255.   return length;
  3256. }
  3257.  
  3258.  
  3259. BOOL H225_CallLinkage::Decode(PASN_Stream & strm)
  3260. {
  3261.   if (!PreambleDecode(strm))
  3262.     return FALSE;
  3263.  
  3264.   if (HasOptionalField(e_globalCallId) && !m_globalCallId.Decode(strm))
  3265.     return FALSE;
  3266.   if (HasOptionalField(e_threadId) && !m_threadId.Decode(strm))
  3267.     return FALSE;
  3268.  
  3269.   return UnknownExtensionsDecode(strm);
  3270. }
  3271.  
  3272.  
  3273. void H225_CallLinkage::Encode(PASN_Stream & strm) const
  3274. {
  3275.   PreambleEncode(strm);
  3276.  
  3277.   if (HasOptionalField(e_globalCallId))
  3278.     m_globalCallId.Encode(strm);
  3279.   if (HasOptionalField(e_threadId))
  3280.     m_threadId.Encode(strm);
  3281.  
  3282.   UnknownExtensionsEncode(strm);
  3283. }
  3284.  
  3285.  
  3286. PObject * H225_CallLinkage::Clone() const
  3287. {
  3288. #ifndef PASN_LEANANDMEAN
  3289.   PAssert(IsClass(H225_CallLinkage::Class()), PInvalidCast);
  3290. #endif
  3291.   return new H225_CallLinkage(*this);
  3292. }
  3293.  
  3294.  
  3295. //
  3296. // CapacityReportingCapability
  3297. //
  3298.  
  3299. H225_CapacityReportingCapability::H225_CapacityReportingCapability(unsigned tag, PASN_Object::TagClass tagClass)
  3300.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  3301. {
  3302. }
  3303.  
  3304.  
  3305. #ifndef PASN_NOPRINTON
  3306. void H225_CapacityReportingCapability::PrintOn(ostream & strm) const
  3307. {
  3308.   int indent = strm.precision() + 2;
  3309.   strm << "{\n";
  3310.   strm << setw(indent+24) << "canReportCallCapacity = " << setprecision(indent) << m_canReportCallCapacity << '\n';
  3311.   strm << setw(indent-1) << "}";
  3312. }
  3313. #endif
  3314.  
  3315.  
  3316. PObject::Comparison H225_CapacityReportingCapability::Compare(const PObject & obj) const
  3317. {
  3318. #ifndef PASN_LEANANDMEAN
  3319.   PAssert(IsDescendant(H225_CapacityReportingCapability::Class()), PInvalidCast);
  3320. #endif
  3321.   const H225_CapacityReportingCapability & other = (const H225_CapacityReportingCapability &)obj;
  3322.  
  3323.   Comparison result;
  3324.  
  3325.   if ((result = m_canReportCallCapacity.Compare(other.m_canReportCallCapacity)) != EqualTo)
  3326.     return result;
  3327.  
  3328.   return PASN_Sequence::Compare(other);
  3329. }
  3330.  
  3331.  
  3332. PINDEX H225_CapacityReportingCapability::GetDataLength() const
  3333. {
  3334.   PINDEX length = 0;
  3335.   length += m_canReportCallCapacity.GetObjectLength();
  3336.   return length;
  3337. }
  3338.  
  3339.  
  3340. BOOL H225_CapacityReportingCapability::Decode(PASN_Stream & strm)
  3341. {
  3342.   if (!PreambleDecode(strm))
  3343.     return FALSE;
  3344.  
  3345.   if (!m_canReportCallCapacity.Decode(strm))
  3346.     return FALSE;
  3347.  
  3348.   return UnknownExtensionsDecode(strm);
  3349. }
  3350.  
  3351.  
  3352. void H225_CapacityReportingCapability::Encode(PASN_Stream & strm) const
  3353. {
  3354.   PreambleEncode(strm);
  3355.  
  3356.   m_canReportCallCapacity.Encode(strm);
  3357.  
  3358.   UnknownExtensionsEncode(strm);
  3359. }
  3360.  
  3361.  
  3362. PObject * H225_CapacityReportingCapability::Clone() const
  3363. {
  3364. #ifndef PASN_LEANANDMEAN
  3365.   PAssert(IsClass(H225_CapacityReportingCapability::Class()), PInvalidCast);
  3366. #endif
  3367.   return new H225_CapacityReportingCapability(*this);
  3368. }
  3369.  
  3370.  
  3371. //
  3372. // CallsAvailable
  3373. //
  3374.  
  3375. H225_CallsAvailable::H225_CallsAvailable(unsigned tag, PASN_Object::TagClass tagClass)
  3376.   : PASN_Sequence(tag, tagClass, 1, TRUE, 0)
  3377. {
  3378.   m_calls.SetConstraints(PASN_Object::FixedConstraint, 0, 4294967295U);
  3379.   m_group.SetConstraints(PASN_Object::FixedConstraint, 1, 128);
  3380. }
  3381.  
  3382.  
  3383. #ifndef PASN_NOPRINTON
  3384. void H225_CallsAvailable::PrintOn(ostream & strm) const
  3385. {
  3386.   int indent = strm.precision() + 2;
  3387.   strm << "{\n";
  3388.   strm << setw(indent+8) << "calls = " << setprecision(indent) << m_calls << '\n';
  3389.   if (HasOptionalField(e_group))
  3390.     strm << setw(indent+8) << "group = " << setprecision(indent) << m_group << '\n';
  3391.   strm << setw(indent-1) << "}";
  3392. }
  3393. #endif
  3394.  
  3395.  
  3396. PObject::Comparison H225_CallsAvailable::Compare(const PObject & obj) const
  3397. {
  3398. #ifndef PASN_LEANANDMEAN
  3399.   PAssert(IsDescendant(H225_CallsAvailable::Class()), PInvalidCast);
  3400. #endif
  3401.   const H225_CallsAvailable & other = (const H225_CallsAvailable &)obj;
  3402.  
  3403.   Comparison result;
  3404.  
  3405.   if ((result = m_calls.Compare(other.m_calls)) != EqualTo)
  3406.     return result;
  3407.   if ((result = m_group.Compare(other.m_group)) != EqualTo)
  3408.     return result;
  3409.  
  3410.   return PASN_Sequence::Compare(other);
  3411. }
  3412.  
  3413.  
  3414. PINDEX H225_CallsAvailable::GetDataLength() const
  3415. {
  3416.   PINDEX length = 0;
  3417.   length += m_calls.GetObjectLength();
  3418.   if (HasOptionalField(e_group))
  3419.     length += m_group.GetObjectLength();
  3420.   return length;
  3421. }
  3422.  
  3423.  
  3424. BOOL H225_CallsAvailable::Decode(PASN_Stream & strm)
  3425. {
  3426.   if (!PreambleDecode(strm))
  3427.     return FALSE;
  3428.  
  3429.   if (!m_calls.Decode(strm))
  3430.     return FALSE;
  3431.   if (HasOptionalField(e_group) && !m_group.Decode(strm))
  3432.     return FALSE;
  3433.  
  3434.   return UnknownExtensionsDecode(strm);
  3435. }
  3436.  
  3437.  
  3438. void H225_CallsAvailable::Encode(PASN_Stream & strm) const
  3439. {
  3440.   PreambleEncode(strm);
  3441.  
  3442.   m_calls.Encode(strm);
  3443.   if (HasOptionalField(e_group))
  3444.     m_group.Encode(strm);
  3445.  
  3446.   UnknownExtensionsEncode(strm);
  3447. }
  3448.  
  3449.  
  3450. PObject * H225_CallsAvailable::Clone() const
  3451. {
  3452. #ifndef PASN_LEANANDMEAN
  3453.   PAssert(IsClass(H225_CallsAvailable::Class()), PInvalidCast);
  3454. #endif
  3455.   return new H225_CallsAvailable(*this);
  3456. }
  3457.  
  3458.  
  3459. //
  3460. // CircuitIdentifier
  3461. //
  3462.  
  3463. H225_CircuitIdentifier::H225_CircuitIdentifier(unsigned tag, PASN_Object::TagClass tagClass)
  3464.   : PASN_Choice(tag, tagClass, 2, TRUE
  3465. #ifndef PASN_NOPRINTON
  3466.       , "cic "
  3467.         "group "
  3468. #endif
  3469.     )
  3470. {
  3471. }
  3472.  
  3473.  
  3474. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  3475. H225_CircuitIdentifier::operator H225_CicInfo &() const
  3476. #else
  3477. H225_CircuitIdentifier::operator H225_CicInfo &()
  3478. {
  3479. #ifndef PASN_LEANANDMEAN
  3480.   PAssert(PAssertNULL(choice)->IsDescendant(H225_CicInfo::Class()), PInvalidCast);
  3481. #endif
  3482.   return *(H225_CicInfo *)choice;
  3483. }
  3484.  
  3485.  
  3486. H225_CircuitIdentifier::operator const H225_CicInfo &() const
  3487. #endif
  3488. {
  3489. #ifndef PASN_LEANANDMEAN
  3490.   PAssert(PAssertNULL(choice)->IsDescendant(H225_CicInfo::Class()), PInvalidCast);
  3491. #endif
  3492.   return *(H225_CicInfo *)choice;
  3493. }
  3494.  
  3495.  
  3496. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  3497. H225_CircuitIdentifier::operator H225_GroupID &() const
  3498. #else
  3499. H225_CircuitIdentifier::operator H225_GroupID &()
  3500. {
  3501. #ifndef PASN_LEANANDMEAN
  3502.   PAssert(PAssertNULL(choice)->IsDescendant(H225_GroupID::Class()), PInvalidCast);
  3503. #endif
  3504.   return *(H225_GroupID *)choice;
  3505. }
  3506.  
  3507.  
  3508. H225_CircuitIdentifier::operator const H225_GroupID &() const
  3509. #endif
  3510. {
  3511. #ifndef PASN_LEANANDMEAN
  3512.   PAssert(PAssertNULL(choice)->IsDescendant(H225_GroupID::Class()), PInvalidCast);
  3513. #endif
  3514.   return *(H225_GroupID *)choice;
  3515. }
  3516.  
  3517.  
  3518. BOOL H225_CircuitIdentifier::CreateObject()
  3519. {
  3520.   switch (tag) {
  3521.     case e_cic :
  3522.       choice = new H225_CicInfo();
  3523.       return TRUE;
  3524.     case e_group :
  3525.       choice = new H225_GroupID();
  3526.       return TRUE;
  3527.   }
  3528.  
  3529.   choice = NULL;
  3530.   return FALSE;
  3531. }
  3532.  
  3533.  
  3534. PObject * H225_CircuitIdentifier::Clone() const
  3535. {
  3536. #ifndef PASN_LEANANDMEAN
  3537.   PAssert(IsClass(H225_CircuitIdentifier::Class()), PInvalidCast);
  3538. #endif
  3539.   return new H225_CircuitIdentifier(*this);
  3540. }
  3541.  
  3542.  
  3543. //
  3544. // ServiceControlDescriptor
  3545. //
  3546.  
  3547. H225_ServiceControlDescriptor::H225_ServiceControlDescriptor(unsigned tag, PASN_Object::TagClass tagClass)
  3548.   : PASN_Choice(tag, tagClass, 4, TRUE
  3549. #ifndef PASN_NOPRINTON
  3550.       , "url "
  3551.         "signal "
  3552.         "nonStandard "
  3553.         "callCreditServiceControl "
  3554. #endif
  3555.     )
  3556. {
  3557. }
  3558.  
  3559.  
  3560. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  3561. H225_ServiceControlDescriptor::operator H225_H248SignalsDescriptor &() const
  3562. #else
  3563. H225_ServiceControlDescriptor::operator H225_H248SignalsDescriptor &()
  3564. {
  3565. #ifndef PASN_LEANANDMEAN
  3566.   PAssert(PAssertNULL(choice)->IsDescendant(H225_H248SignalsDescriptor::Class()), PInvalidCast);
  3567. #endif
  3568.   return *(H225_H248SignalsDescriptor *)choice;
  3569. }
  3570.  
  3571.  
  3572. H225_ServiceControlDescriptor::operator const H225_H248SignalsDescriptor &() const
  3573. #endif
  3574. {
  3575. #ifndef PASN_LEANANDMEAN
  3576.   PAssert(PAssertNULL(choice)->IsDescendant(H225_H248SignalsDescriptor::Class()), PInvalidCast);
  3577. #endif
  3578.   return *(H225_H248SignalsDescriptor *)choice;
  3579. }
  3580.  
  3581.  
  3582. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  3583. H225_ServiceControlDescriptor::operator H225_NonStandardParameter &() const
  3584. #else
  3585. H225_ServiceControlDescriptor::operator H225_NonStandardParameter &()
  3586. {
  3587. #ifndef PASN_LEANANDMEAN
  3588.   PAssert(PAssertNULL(choice)->IsDescendant(H225_NonStandardParameter::Class()), PInvalidCast);
  3589. #endif
  3590.   return *(H225_NonStandardParameter *)choice;
  3591. }
  3592.  
  3593.  
  3594. H225_ServiceControlDescriptor::operator const H225_NonStandardParameter &() const
  3595. #endif
  3596. {
  3597. #ifndef PASN_LEANANDMEAN
  3598.   PAssert(PAssertNULL(choice)->IsDescendant(H225_NonStandardParameter::Class()), PInvalidCast);
  3599. #endif
  3600.   return *(H225_NonStandardParameter *)choice;
  3601. }
  3602.  
  3603.  
  3604. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  3605. H225_ServiceControlDescriptor::operator H225_CallCreditServiceControl &() const
  3606. #else
  3607. H225_ServiceControlDescriptor::operator H225_CallCreditServiceControl &()
  3608. {
  3609. #ifndef PASN_LEANANDMEAN
  3610.   PAssert(PAssertNULL(choice)->IsDescendant(H225_CallCreditServiceControl::Class()), PInvalidCast);
  3611. #endif
  3612.   return *(H225_CallCreditServiceControl *)choice;
  3613. }
  3614.  
  3615.  
  3616. H225_ServiceControlDescriptor::operator const H225_CallCreditServiceControl &() const
  3617. #endif
  3618. {
  3619. #ifndef PASN_LEANANDMEAN
  3620.   PAssert(PAssertNULL(choice)->IsDescendant(H225_CallCreditServiceControl::Class()), PInvalidCast);
  3621. #endif
  3622.   return *(H225_CallCreditServiceControl *)choice;
  3623. }
  3624.  
  3625.  
  3626. BOOL H225_ServiceControlDescriptor::CreateObject()
  3627. {
  3628.   switch (tag) {
  3629.     case e_url :
  3630.       choice = new PASN_IA5String();
  3631.       choice->SetConstraints(PASN_Object::FixedConstraint, 0, 512);
  3632.       return TRUE;
  3633.     case e_signal :
  3634.       choice = new H225_H248SignalsDescriptor();
  3635.       return TRUE;
  3636.     case e_nonStandard :
  3637.       choice = new H225_NonStandardParameter();
  3638.       return TRUE;
  3639.     case e_callCreditServiceControl :
  3640.       choice = new H225_CallCreditServiceControl();
  3641.       return TRUE;
  3642.   }
  3643.  
  3644.   choice = NULL;
  3645.   return FALSE;
  3646. }
  3647.  
  3648.  
  3649. PObject * H225_ServiceControlDescriptor::Clone() const
  3650. {
  3651. #ifndef PASN_LEANANDMEAN
  3652.   PAssert(IsClass(H225_ServiceControlDescriptor::Class()), PInvalidCast);
  3653. #endif
  3654.   return new H225_ServiceControlDescriptor(*this);
  3655. }
  3656.  
  3657.  
  3658. //
  3659. // CallTerminationCause
  3660. //
  3661.  
  3662. H225_CallTerminationCause::H225_CallTerminationCause(unsigned tag, PASN_Object::TagClass tagClass)
  3663.   : PASN_Choice(tag, tagClass, 2, TRUE
  3664. #ifndef PASN_NOPRINTON
  3665.       , "releaseCompleteReason "
  3666.         "releaseCompleteCauseIE "
  3667. #endif
  3668.     )
  3669. {
  3670. }
  3671.  
  3672.  
  3673. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  3674. H225_CallTerminationCause::operator H225_ReleaseCompleteReason &() const
  3675. #else
  3676. H225_CallTerminationCause::operator H225_ReleaseCompleteReason &()
  3677. {
  3678. #ifndef PASN_LEANANDMEAN
  3679.   PAssert(PAssertNULL(choice)->IsDescendant(H225_ReleaseCompleteReason::Class()), PInvalidCast);
  3680. #endif
  3681.   return *(H225_ReleaseCompleteReason *)choice;
  3682. }
  3683.  
  3684.  
  3685. H225_CallTerminationCause::operator const H225_ReleaseCompleteReason &() const
  3686. #endif
  3687. {
  3688. #ifndef PASN_LEANANDMEAN
  3689.   PAssert(PAssertNULL(choice)->IsDescendant(H225_ReleaseCompleteReason::Class()), PInvalidCast);
  3690. #endif
  3691.   return *(H225_ReleaseCompleteReason *)choice;
  3692. }
  3693.  
  3694.  
  3695. BOOL H225_CallTerminationCause::CreateObject()
  3696. {
  3697.   switch (tag) {
  3698.     case e_releaseCompleteReason :
  3699.       choice = new H225_ReleaseCompleteReason();
  3700.       return TRUE;
  3701.     case e_releaseCompleteCauseIE :
  3702.       choice = new PASN_OctetString();
  3703.       choice->SetConstraints(PASN_Object::FixedConstraint, 2, 32);
  3704.       return TRUE;
  3705.   }
  3706.  
  3707.   choice = NULL;
  3708.   return FALSE;
  3709. }
  3710.  
  3711.  
  3712. PObject * H225_CallTerminationCause::Clone() const
  3713. {
  3714. #ifndef PASN_LEANANDMEAN
  3715.   PAssert(IsClass(H225_CallTerminationCause::Class()), PInvalidCast);
  3716. #endif
  3717.   return new H225_CallTerminationCause(*this);
  3718. }
  3719.  
  3720.  
  3721. //
  3722. // CallCreditCapability
  3723. //
  3724.  
  3725. H225_CallCreditCapability::H225_CallCreditCapability(unsigned tag, PASN_Object::TagClass tagClass)
  3726.   : PASN_Sequence(tag, tagClass, 2, TRUE, 0)
  3727. {
  3728. }
  3729.  
  3730.  
  3731. #ifndef PASN_NOPRINTON
  3732. void H225_CallCreditCapability::PrintOn(ostream & strm) const
  3733. {
  3734.   int indent = strm.precision() + 2;
  3735.   strm << "{\n";
  3736.   if (HasOptionalField(e_canDisplayAmountString))
  3737.     strm << setw(indent+25) << "canDisplayAmountString = " << setprecision(indent) << m_canDisplayAmountString << '\n';
  3738.   if (HasOptionalField(e_canEnforceDurationLimit))
  3739.     strm << setw(indent+26) << "canEnforceDurationLimit = " << setprecision(indent) << m_canEnforceDurationLimit << '\n';
  3740.   strm << setw(indent-1) << "}";
  3741. }
  3742. #endif
  3743.  
  3744.  
  3745. PObject::Comparison H225_CallCreditCapability::Compare(const PObject & obj) const
  3746. {
  3747. #ifndef PASN_LEANANDMEAN
  3748.   PAssert(IsDescendant(H225_CallCreditCapability::Class()), PInvalidCast);
  3749. #endif
  3750.   const H225_CallCreditCapability & other = (const H225_CallCreditCapability &)obj;
  3751.  
  3752.   Comparison result;
  3753.  
  3754.   if ((result = m_canDisplayAmountString.Compare(other.m_canDisplayAmountString)) != EqualTo)
  3755.     return result;
  3756.   if ((result = m_canEnforceDurationLimit.Compare(other.m_canEnforceDurationLimit)) != EqualTo)
  3757.     return result;
  3758.  
  3759.   return PASN_Sequence::Compare(other);
  3760. }
  3761.  
  3762.  
  3763. PINDEX H225_CallCreditCapability::GetDataLength() const
  3764. {
  3765.   PINDEX length = 0;
  3766.   if (HasOptionalField(e_canDisplayAmountString))
  3767.     length += m_canDisplayAmountString.GetObjectLength();
  3768.   if (HasOptionalField(e_canEnforceDurationLimit))
  3769.     length += m_canEnforceDurationLimit.GetObjectLength();
  3770.   return length;
  3771. }
  3772.  
  3773.  
  3774. BOOL H225_CallCreditCapability::Decode(PASN_Stream & strm)
  3775. {
  3776.   if (!PreambleDecode(strm))
  3777.     return FALSE;
  3778.  
  3779.   if (HasOptionalField(e_canDisplayAmountString) && !m_canDisplayAmountString.Decode(strm))
  3780.     return FALSE;
  3781.   if (HasOptionalField(e_canEnforceDurationLimit) && !m_canEnforceDurationLimit.Decode(strm))
  3782.     return FALSE;
  3783.  
  3784.   return UnknownExtensionsDecode(strm);
  3785. }
  3786.  
  3787.  
  3788. void H225_CallCreditCapability::Encode(PASN_Stream & strm) const
  3789. {
  3790.   PreambleEncode(strm);
  3791.  
  3792.   if (HasOptionalField(e_canDisplayAmountString))
  3793.     m_canDisplayAmountString.Encode(strm);
  3794.   if (HasOptionalField(e_canEnforceDurationLimit))
  3795.     m_canEnforceDurationLimit.Encode(strm);
  3796.  
  3797.   UnknownExtensionsEncode(strm);
  3798. }
  3799.  
  3800.  
  3801. PObject * H225_CallCreditCapability::Clone() const
  3802. {
  3803. #ifndef PASN_LEANANDMEAN
  3804.   PAssert(IsClass(H225_CallCreditCapability::Class()), PInvalidCast);
  3805. #endif
  3806.   return new H225_CallCreditCapability(*this);
  3807. }
  3808.  
  3809.  
  3810. //
  3811. // GenericIdentifier
  3812. //
  3813.  
  3814. H225_GenericIdentifier::H225_GenericIdentifier(unsigned tag, PASN_Object::TagClass tagClass)
  3815.   : PASN_Choice(tag, tagClass, 3, TRUE
  3816. #ifndef PASN_NOPRINTON
  3817.       , "standard "
  3818.         "oid "
  3819.         "nonStandard "
  3820. #endif
  3821.     )
  3822. {
  3823. }
  3824.  
  3825.  
  3826. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  3827. H225_GenericIdentifier::operator H225_GloballyUniqueID &() const
  3828. #else
  3829. H225_GenericIdentifier::operator H225_GloballyUniqueID &()
  3830. {
  3831. #ifndef PASN_LEANANDMEAN
  3832.   PAssert(PAssertNULL(choice)->IsDescendant(H225_GloballyUniqueID::Class()), PInvalidCast);
  3833. #endif
  3834.   return *(H225_GloballyUniqueID *)choice;
  3835. }
  3836.  
  3837.  
  3838. H225_GenericIdentifier::operator const H225_GloballyUniqueID &() const
  3839. #endif
  3840. {
  3841. #ifndef PASN_LEANANDMEAN
  3842.   PAssert(PAssertNULL(choice)->IsDescendant(H225_GloballyUniqueID::Class()), PInvalidCast);
  3843. #endif
  3844.   return *(H225_GloballyUniqueID *)choice;
  3845. }
  3846.  
  3847.  
  3848. BOOL H225_GenericIdentifier::CreateObject()
  3849. {
  3850.   switch (tag) {
  3851.     case e_standard :
  3852.       choice = new PASN_Integer();
  3853.       choice->SetConstraints(PASN_Object::ExtendableConstraint, 0, 16383);
  3854.       return TRUE;
  3855.     case e_oid :
  3856.       choice = new PASN_ObjectId();
  3857.       return TRUE;
  3858.     case e_nonStandard :
  3859.       choice = new H225_GloballyUniqueID();
  3860.       return TRUE;
  3861.   }
  3862.  
  3863.   choice = NULL;
  3864.   return FALSE;
  3865. }
  3866.  
  3867.  
  3868. PObject * H225_GenericIdentifier::Clone() const
  3869. {
  3870. #ifndef PASN_LEANANDMEAN
  3871.   PAssert(IsClass(H225_GenericIdentifier::Class()), PInvalidCast);
  3872. #endif
  3873.   return new H225_GenericIdentifier(*this);
  3874. }
  3875.  
  3876.  
  3877. //
  3878. // Content
  3879. //
  3880.  
  3881. H225_Content::H225_Content(unsigned tag, PASN_Object::TagClass tagClass)
  3882.   : PASN_Choice(tag, tagClass, 12, TRUE
  3883. #ifndef PASN_NOPRINTON
  3884.       , "raw "
  3885.         "text "
  3886.         "unicode "
  3887.         "bool "
  3888.         "number8 "
  3889.         "number16 "
  3890.         "number32 "
  3891.         "id "
  3892.         "alias "
  3893.         "transport "
  3894.         "compound "
  3895.         "nested "
  3896. #endif
  3897.     )
  3898. {
  3899. }
  3900.  
  3901.  
  3902. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  3903. H225_Content::operator H225_GenericIdentifier &() const
  3904. #else
  3905. H225_Content::operator H225_GenericIdentifier &()
  3906. {
  3907. #ifndef PASN_LEANANDMEAN
  3908.   PAssert(PAssertNULL(choice)->IsDescendant(H225_GenericIdentifier::Class()), PInvalidCast);
  3909. #endif
  3910.   return *(H225_GenericIdentifier *)choice;
  3911. }
  3912.  
  3913.  
  3914. H225_Content::operator const H225_GenericIdentifier &() const
  3915. #endif
  3916. {
  3917. #ifndef PASN_LEANANDMEAN
  3918.   PAssert(PAssertNULL(choice)->IsDescendant(H225_GenericIdentifier::Class()), PInvalidCast);
  3919. #endif
  3920.   return *(H225_GenericIdentifier *)choice;
  3921. }
  3922.  
  3923.  
  3924. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  3925. H225_Content::operator H225_AliasAddress &() const
  3926. #else
  3927. H225_Content::operator H225_AliasAddress &()
  3928. {
  3929. #ifndef PASN_LEANANDMEAN
  3930.   PAssert(PAssertNULL(choice)->IsDescendant(H225_AliasAddress::Class()), PInvalidCast);
  3931. #endif
  3932.   return *(H225_AliasAddress *)choice;
  3933. }
  3934.  
  3935.  
  3936. H225_Content::operator const H225_AliasAddress &() const
  3937. #endif
  3938. {
  3939. #ifndef PASN_LEANANDMEAN
  3940.   PAssert(PAssertNULL(choice)->IsDescendant(H225_AliasAddress::Class()), PInvalidCast);
  3941. #endif
  3942.   return *(H225_AliasAddress *)choice;
  3943. }
  3944.  
  3945.  
  3946. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  3947. H225_Content::operator H225_TransportAddress &() const
  3948. #else
  3949. H225_Content::operator H225_TransportAddress &()
  3950. {
  3951. #ifndef PASN_LEANANDMEAN
  3952.   PAssert(PAssertNULL(choice)->IsDescendant(H225_TransportAddress::Class()), PInvalidCast);
  3953. #endif
  3954.   return *(H225_TransportAddress *)choice;
  3955. }
  3956.  
  3957.  
  3958. H225_Content::operator const H225_TransportAddress &() const
  3959. #endif
  3960. {
  3961. #ifndef PASN_LEANANDMEAN
  3962.   PAssert(PAssertNULL(choice)->IsDescendant(H225_TransportAddress::Class()), PInvalidCast);
  3963. #endif
  3964.   return *(H225_TransportAddress *)choice;
  3965. }
  3966.  
  3967.  
  3968. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  3969. H225_Content::operator H225_ArrayOf_EnumeratedParameter &() const
  3970. #else
  3971. H225_Content::operator H225_ArrayOf_EnumeratedParameter &()
  3972. {
  3973. #ifndef PASN_LEANANDMEAN
  3974.   PAssert(PAssertNULL(choice)->IsDescendant(H225_ArrayOf_EnumeratedParameter::Class()), PInvalidCast);
  3975. #endif
  3976.   return *(H225_ArrayOf_EnumeratedParameter *)choice;
  3977. }
  3978.  
  3979.  
  3980. H225_Content::operator const H225_ArrayOf_EnumeratedParameter &() const
  3981. #endif
  3982. {
  3983. #ifndef PASN_LEANANDMEAN
  3984.   PAssert(PAssertNULL(choice)->IsDescendant(H225_ArrayOf_EnumeratedParameter::Class()), PInvalidCast);
  3985. #endif
  3986.   return *(H225_ArrayOf_EnumeratedParameter *)choice;
  3987. }
  3988.  
  3989.  
  3990. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  3991. H225_Content::operator H225_ArrayOf_GenericData &() const
  3992. #else
  3993. H225_Content::operator H225_ArrayOf_GenericData &()
  3994. {
  3995. #ifndef PASN_LEANANDMEAN
  3996.   PAssert(PAssertNULL(choice)->IsDescendant(H225_ArrayOf_GenericData::Class()), PInvalidCast);
  3997. #endif
  3998.   return *(H225_ArrayOf_GenericData *)choice;
  3999. }
  4000.  
  4001.  
  4002. H225_Content::operator const H225_ArrayOf_GenericData &() const
  4003. #endif
  4004. {
  4005. #ifndef PASN_LEANANDMEAN
  4006.   PAssert(PAssertNULL(choice)->IsDescendant(H225_ArrayOf_GenericData::Class()), PInvalidCast);
  4007. #endif
  4008.   return *(H225_ArrayOf_GenericData *)choice;
  4009. }
  4010.  
  4011.  
  4012. BOOL H225_Content::CreateObject()
  4013. {
  4014.   switch (tag) {
  4015.     case e_raw :
  4016.       choice = new PASN_OctetString();
  4017.       return TRUE;
  4018.     case e_text :
  4019.       choice = new PASN_IA5String();
  4020.       return TRUE;
  4021.     case e_unicode :
  4022.       choice = new PASN_BMPString();
  4023.       return TRUE;
  4024.     case e_bool :
  4025.       choice = new PASN_Boolean();
  4026.       return TRUE;
  4027.     case e_number8 :
  4028.       choice = new PASN_Integer();
  4029.       choice->SetConstraints(PASN_Object::FixedConstraint, 0, 255);
  4030.       return TRUE;
  4031.     case e_number16 :
  4032.       choice = new PASN_Integer();
  4033.       choice->SetConstraints(PASN_Object::FixedConstraint, 0, 65535);
  4034.       return TRUE;
  4035.     case e_number32 :
  4036.       choice = new PASN_Integer();
  4037.       choice->SetConstraints(PASN_Object::FixedConstraint, 0, 4294967295U);
  4038.       return TRUE;
  4039.     case e_id :
  4040.       choice = new H225_GenericIdentifier();
  4041.       return TRUE;
  4042.     case e_alias :
  4043.       choice = new H225_AliasAddress();
  4044.       return TRUE;
  4045.     case e_transport :
  4046.       choice = new H225_TransportAddress();
  4047.       return TRUE;
  4048.     case e_compound :
  4049.       choice = new H225_ArrayOf_EnumeratedParameter();
  4050.       choice->SetConstraints(PASN_Object::FixedConstraint, 1, 512);
  4051.       return TRUE;
  4052.     case e_nested :
  4053.       choice = new H225_ArrayOf_GenericData();
  4054.       choice->SetConstraints(PASN_Object::FixedConstraint, 1, 16);
  4055.       return TRUE;
  4056.   }
  4057.  
  4058.   choice = NULL;
  4059.   return FALSE;
  4060. }
  4061.  
  4062.  
  4063. PObject * H225_Content::Clone() const
  4064. {
  4065. #ifndef PASN_LEANANDMEAN
  4066.   PAssert(IsClass(H225_Content::Class()), PInvalidCast);
  4067. #endif
  4068.   return new H225_Content(*this);
  4069. }
  4070.  
  4071.  
  4072. //
  4073. // TransportChannelInfo
  4074. //
  4075.  
  4076. H225_TransportChannelInfo::H225_TransportChannelInfo(unsigned tag, PASN_Object::TagClass tagClass)
  4077.   : PASN_Sequence(tag, tagClass, 2, TRUE, 0)
  4078. {
  4079. }
  4080.  
  4081.  
  4082. #ifndef PASN_NOPRINTON
  4083. void H225_TransportChannelInfo::PrintOn(ostream & strm) const
  4084. {
  4085.   int indent = strm.precision() + 2;
  4086.   strm << "{\n";
  4087.   if (HasOptionalField(e_sendAddress))
  4088.     strm << setw(indent+14) << "sendAddress = " << setprecision(indent) << m_sendAddress << '\n';
  4089.   if (HasOptionalField(e_recvAddress))
  4090.     strm << setw(indent+14) << "recvAddress = " << setprecision(indent) << m_recvAddress << '\n';
  4091.   strm << setw(indent-1) << "}";
  4092. }
  4093. #endif
  4094.  
  4095.  
  4096. PObject::Comparison H225_TransportChannelInfo::Compare(const PObject & obj) const
  4097. {
  4098. #ifndef PASN_LEANANDMEAN
  4099.   PAssert(IsDescendant(H225_TransportChannelInfo::Class()), PInvalidCast);
  4100. #endif
  4101.   const H225_TransportChannelInfo & other = (const H225_TransportChannelInfo &)obj;
  4102.  
  4103.   Comparison result;
  4104.  
  4105.   if ((result = m_sendAddress.Compare(other.m_sendAddress)) != EqualTo)
  4106.     return result;
  4107.   if ((result = m_recvAddress.Compare(other.m_recvAddress)) != EqualTo)
  4108.     return result;
  4109.  
  4110.   return PASN_Sequence::Compare(other);
  4111. }
  4112.  
  4113.  
  4114. PINDEX H225_TransportChannelInfo::GetDataLength() const
  4115. {
  4116.   PINDEX length = 0;
  4117.   if (HasOptionalField(e_sendAddress))
  4118.     length += m_sendAddress.GetObjectLength();
  4119.   if (HasOptionalField(e_recvAddress))
  4120.     length += m_recvAddress.GetObjectLength();
  4121.   return length;
  4122. }
  4123.  
  4124.  
  4125. BOOL H225_TransportChannelInfo::Decode(PASN_Stream & strm)
  4126. {
  4127.   if (!PreambleDecode(strm))
  4128.     return FALSE;
  4129.  
  4130.   if (HasOptionalField(e_sendAddress) && !m_sendAddress.Decode(strm))
  4131.     return FALSE;
  4132.   if (HasOptionalField(e_recvAddress) && !m_recvAddress.Decode(strm))
  4133.     return FALSE;
  4134.  
  4135.   return UnknownExtensionsDecode(strm);
  4136. }
  4137.  
  4138.  
  4139. void H225_TransportChannelInfo::Encode(PASN_Stream & strm) const
  4140. {
  4141.   PreambleEncode(strm);
  4142.  
  4143.   if (HasOptionalField(e_sendAddress))
  4144.     m_sendAddress.Encode(strm);
  4145.   if (HasOptionalField(e_recvAddress))
  4146.     m_recvAddress.Encode(strm);
  4147.  
  4148.   UnknownExtensionsEncode(strm);
  4149. }
  4150.  
  4151.  
  4152. PObject * H225_TransportChannelInfo::Clone() const
  4153. {
  4154. #ifndef PASN_LEANANDMEAN
  4155.   PAssert(IsClass(H225_TransportChannelInfo::Class()), PInvalidCast);
  4156. #endif
  4157.   return new H225_TransportChannelInfo(*this);
  4158. }
  4159.  
  4160.  
  4161. //
  4162. // RasMessage
  4163. //
  4164.  
  4165. H225_RasMessage::H225_RasMessage(unsigned tag, PASN_Object::TagClass tagClass)
  4166.   : PASN_Choice(tag, tagClass, 25, TRUE
  4167. #ifndef PASN_NOPRINTON
  4168.       , "gatekeeperRequest "
  4169.         "gatekeeperConfirm "
  4170.         "gatekeeperReject "
  4171.         "registrationRequest "
  4172.         "registrationConfirm "
  4173.         "registrationReject "
  4174.         "unregistrationRequest "
  4175.         "unregistrationConfirm "
  4176.         "unregistrationReject "
  4177.         "admissionRequest "
  4178.         "admissionConfirm "
  4179.         "admissionReject "
  4180.         "bandwidthRequest "
  4181.         "bandwidthConfirm "
  4182.         "bandwidthReject "
  4183.         "disengageRequest "
  4184.         "disengageConfirm "
  4185.         "disengageReject "
  4186.         "locationRequest "
  4187.         "locationConfirm "
  4188.         "locationReject "
  4189.         "infoRequest "
  4190.         "infoRequestResponse "
  4191.         "nonStandardMessage "
  4192.         "unknownMessageResponse "
  4193.         "requestInProgress "
  4194.         "resourcesAvailableIndicate "
  4195.         "resourcesAvailableConfirm "
  4196.         "infoRequestAck "
  4197.         "infoRequestNak "
  4198.         "serviceControlIndication "
  4199.         "serviceControlResponse "
  4200. #endif
  4201.     )
  4202. {
  4203. }
  4204.  
  4205.  
  4206. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  4207. H225_RasMessage::operator H225_GatekeeperRequest &() const
  4208. #else
  4209. H225_RasMessage::operator H225_GatekeeperRequest &()
  4210. {
  4211. #ifndef PASN_LEANANDMEAN
  4212.   PAssert(PAssertNULL(choice)->IsDescendant(H225_GatekeeperRequest::Class()), PInvalidCast);
  4213. #endif
  4214.   return *(H225_GatekeeperRequest *)choice;
  4215. }
  4216.  
  4217.  
  4218. H225_RasMessage::operator const H225_GatekeeperRequest &() const
  4219. #endif
  4220. {
  4221. #ifndef PASN_LEANANDMEAN
  4222.   PAssert(PAssertNULL(choice)->IsDescendant(H225_GatekeeperRequest::Class()), PInvalidCast);
  4223. #endif
  4224.   return *(H225_GatekeeperRequest *)choice;
  4225. }
  4226.  
  4227.  
  4228. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  4229. H225_RasMessage::operator H225_GatekeeperConfirm &() const
  4230. #else
  4231. H225_RasMessage::operator H225_GatekeeperConfirm &()
  4232. {
  4233. #ifndef PASN_LEANANDMEAN
  4234.   PAssert(PAssertNULL(choice)->IsDescendant(H225_GatekeeperConfirm::Class()), PInvalidCast);
  4235. #endif
  4236.   return *(H225_GatekeeperConfirm *)choice;
  4237. }
  4238.  
  4239.  
  4240. H225_RasMessage::operator const H225_GatekeeperConfirm &() const
  4241. #endif
  4242. {
  4243. #ifndef PASN_LEANANDMEAN
  4244.   PAssert(PAssertNULL(choice)->IsDescendant(H225_GatekeeperConfirm::Class()), PInvalidCast);
  4245. #endif
  4246.   return *(H225_GatekeeperConfirm *)choice;
  4247. }
  4248.  
  4249.  
  4250. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  4251. H225_RasMessage::operator H225_GatekeeperReject &() const
  4252. #else
  4253. H225_RasMessage::operator H225_GatekeeperReject &()
  4254. {
  4255. #ifndef PASN_LEANANDMEAN
  4256.   PAssert(PAssertNULL(choice)->IsDescendant(H225_GatekeeperReject::Class()), PInvalidCast);
  4257. #endif
  4258.   return *(H225_GatekeeperReject *)choice;
  4259. }
  4260.  
  4261.  
  4262. H225_RasMessage::operator const H225_GatekeeperReject &() const
  4263. #endif
  4264. {
  4265. #ifndef PASN_LEANANDMEAN
  4266.   PAssert(PAssertNULL(choice)->IsDescendant(H225_GatekeeperReject::Class()), PInvalidCast);
  4267. #endif
  4268.   return *(H225_GatekeeperReject *)choice;
  4269. }
  4270.  
  4271.  
  4272. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  4273. H225_RasMessage::operator H225_RegistrationRequest &() const
  4274. #else
  4275. H225_RasMessage::operator H225_RegistrationRequest &()
  4276. {
  4277. #ifndef PASN_LEANANDMEAN
  4278.   PAssert(PAssertNULL(choice)->IsDescendant(H225_RegistrationRequest::Class()), PInvalidCast);
  4279. #endif
  4280.   return *(H225_RegistrationRequest *)choice;
  4281. }
  4282.  
  4283.  
  4284. H225_RasMessage::operator const H225_RegistrationRequest &() const
  4285. #endif
  4286. {
  4287. #ifndef PASN_LEANANDMEAN
  4288.   PAssert(PAssertNULL(choice)->IsDescendant(H225_RegistrationRequest::Class()), PInvalidCast);
  4289. #endif
  4290.   return *(H225_RegistrationRequest *)choice;
  4291. }
  4292.  
  4293.  
  4294. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  4295. H225_RasMessage::operator H225_RegistrationConfirm &() const
  4296. #else
  4297. H225_RasMessage::operator H225_RegistrationConfirm &()
  4298. {
  4299. #ifndef PASN_LEANANDMEAN
  4300.   PAssert(PAssertNULL(choice)->IsDescendant(H225_RegistrationConfirm::Class()), PInvalidCast);
  4301. #endif
  4302.   return *(H225_RegistrationConfirm *)choice;
  4303. }
  4304.  
  4305.  
  4306. H225_RasMessage::operator const H225_RegistrationConfirm &() const
  4307. #endif
  4308. {
  4309. #ifndef PASN_LEANANDMEAN
  4310.   PAssert(PAssertNULL(choice)->IsDescendant(H225_RegistrationConfirm::Class()), PInvalidCast);
  4311. #endif
  4312.   return *(H225_RegistrationConfirm *)choice;
  4313. }
  4314.  
  4315.  
  4316. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  4317. H225_RasMessage::operator H225_RegistrationReject &() const
  4318. #else
  4319. H225_RasMessage::operator H225_RegistrationReject &()
  4320. {
  4321. #ifndef PASN_LEANANDMEAN
  4322.   PAssert(PAssertNULL(choice)->IsDescendant(H225_RegistrationReject::Class()), PInvalidCast);
  4323. #endif
  4324.   return *(H225_RegistrationReject *)choice;
  4325. }
  4326.  
  4327.  
  4328. H225_RasMessage::operator const H225_RegistrationReject &() const
  4329. #endif
  4330. {
  4331. #ifndef PASN_LEANANDMEAN
  4332.   PAssert(PAssertNULL(choice)->IsDescendant(H225_RegistrationReject::Class()), PInvalidCast);
  4333. #endif
  4334.   return *(H225_RegistrationReject *)choice;
  4335. }
  4336.  
  4337.  
  4338. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  4339. H225_RasMessage::operator H225_UnregistrationRequest &() const
  4340. #else
  4341. H225_RasMessage::operator H225_UnregistrationRequest &()
  4342. {
  4343. #ifndef PASN_LEANANDMEAN
  4344.   PAssert(PAssertNULL(choice)->IsDescendant(H225_UnregistrationRequest::Class()), PInvalidCast);
  4345. #endif
  4346.   return *(H225_UnregistrationRequest *)choice;
  4347. }
  4348.  
  4349.  
  4350. H225_RasMessage::operator const H225_UnregistrationRequest &() const
  4351. #endif
  4352. {
  4353. #ifndef PASN_LEANANDMEAN
  4354.   PAssert(PAssertNULL(choice)->IsDescendant(H225_UnregistrationRequest::Class()), PInvalidCast);
  4355. #endif
  4356.   return *(H225_UnregistrationRequest *)choice;
  4357. }
  4358.  
  4359.  
  4360. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  4361. H225_RasMessage::operator H225_UnregistrationConfirm &() const
  4362. #else
  4363. H225_RasMessage::operator H225_UnregistrationConfirm &()
  4364. {
  4365. #ifndef PASN_LEANANDMEAN
  4366.   PAssert(PAssertNULL(choice)->IsDescendant(H225_UnregistrationConfirm::Class()), PInvalidCast);
  4367. #endif
  4368.   return *(H225_UnregistrationConfirm *)choice;
  4369. }
  4370.  
  4371.  
  4372. H225_RasMessage::operator const H225_UnregistrationConfirm &() const
  4373. #endif
  4374. {
  4375. #ifndef PASN_LEANANDMEAN
  4376.   PAssert(PAssertNULL(choice)->IsDescendant(H225_UnregistrationConfirm::Class()), PInvalidCast);
  4377. #endif
  4378.   return *(H225_UnregistrationConfirm *)choice;
  4379. }
  4380.  
  4381.  
  4382. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  4383. H225_RasMessage::operator H225_UnregistrationReject &() const
  4384. #else
  4385. H225_RasMessage::operator H225_UnregistrationReject &()
  4386. {
  4387. #ifndef PASN_LEANANDMEAN
  4388.   PAssert(PAssertNULL(choice)->IsDescendant(H225_UnregistrationReject::Class()), PInvalidCast);
  4389. #endif
  4390.   return *(H225_UnregistrationReject *)choice;
  4391. }
  4392.  
  4393.  
  4394. H225_RasMessage::operator const H225_UnregistrationReject &() const
  4395. #endif
  4396. {
  4397. #ifndef PASN_LEANANDMEAN
  4398.   PAssert(PAssertNULL(choice)->IsDescendant(H225_UnregistrationReject::Class()), PInvalidCast);
  4399. #endif
  4400.   return *(H225_UnregistrationReject *)choice;
  4401. }
  4402.  
  4403.  
  4404. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  4405. H225_RasMessage::operator H225_AdmissionRequest &() const
  4406. #else
  4407. H225_RasMessage::operator H225_AdmissionRequest &()
  4408. {
  4409. #ifndef PASN_LEANANDMEAN
  4410.   PAssert(PAssertNULL(choice)->IsDescendant(H225_AdmissionRequest::Class()), PInvalidCast);
  4411. #endif
  4412.   return *(H225_AdmissionRequest *)choice;
  4413. }
  4414.  
  4415.  
  4416. H225_RasMessage::operator const H225_AdmissionRequest &() const
  4417. #endif
  4418. {
  4419. #ifndef PASN_LEANANDMEAN
  4420.   PAssert(PAssertNULL(choice)->IsDescendant(H225_AdmissionRequest::Class()), PInvalidCast);
  4421. #endif
  4422.   return *(H225_AdmissionRequest *)choice;
  4423. }
  4424.  
  4425.  
  4426. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  4427. H225_RasMessage::operator H225_AdmissionConfirm &() const
  4428. #else
  4429. H225_RasMessage::operator H225_AdmissionConfirm &()
  4430. {
  4431. #ifndef PASN_LEANANDMEAN
  4432.   PAssert(PAssertNULL(choice)->IsDescendant(H225_AdmissionConfirm::Class()), PInvalidCast);
  4433. #endif
  4434.   return *(H225_AdmissionConfirm *)choice;
  4435. }
  4436.  
  4437.  
  4438. H225_RasMessage::operator const H225_AdmissionConfirm &() const
  4439. #endif
  4440. {
  4441. #ifndef PASN_LEANANDMEAN
  4442.   PAssert(PAssertNULL(choice)->IsDescendant(H225_AdmissionConfirm::Class()), PInvalidCast);
  4443. #endif
  4444.   return *(H225_AdmissionConfirm *)choice;
  4445. }
  4446.  
  4447.  
  4448. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  4449. H225_RasMessage::operator H225_AdmissionReject &() const
  4450. #else
  4451. H225_RasMessage::operator H225_AdmissionReject &()
  4452. {
  4453. #ifndef PASN_LEANANDMEAN
  4454.   PAssert(PAssertNULL(choice)->IsDescendant(H225_AdmissionReject::Class()), PInvalidCast);
  4455. #endif
  4456.   return *(H225_AdmissionReject *)choice;
  4457. }
  4458.  
  4459.  
  4460. H225_RasMessage::operator const H225_AdmissionReject &() const
  4461. #endif
  4462. {
  4463. #ifndef PASN_LEANANDMEAN
  4464.   PAssert(PAssertNULL(choice)->IsDescendant(H225_AdmissionReject::Class()), PInvalidCast);
  4465. #endif
  4466.   return *(H225_AdmissionReject *)choice;
  4467. }
  4468.  
  4469.  
  4470. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  4471. H225_RasMessage::operator H225_BandwidthRequest &() const
  4472. #else
  4473. H225_RasMessage::operator H225_BandwidthRequest &()
  4474. {
  4475. #ifndef PASN_LEANANDMEAN
  4476.   PAssert(PAssertNULL(choice)->IsDescendant(H225_BandwidthRequest::Class()), PInvalidCast);
  4477. #endif
  4478.   return *(H225_BandwidthRequest *)choice;
  4479. }
  4480.  
  4481.  
  4482. H225_RasMessage::operator const H225_BandwidthRequest &() const
  4483. #endif
  4484. {
  4485. #ifndef PASN_LEANANDMEAN
  4486.   PAssert(PAssertNULL(choice)->IsDescendant(H225_BandwidthRequest::Class()), PInvalidCast);
  4487. #endif
  4488.   return *(H225_BandwidthRequest *)choice;
  4489. }
  4490.  
  4491.  
  4492. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  4493. H225_RasMessage::operator H225_BandwidthConfirm &() const
  4494. #else
  4495. H225_RasMessage::operator H225_BandwidthConfirm &()
  4496. {
  4497. #ifndef PASN_LEANANDMEAN
  4498.   PAssert(PAssertNULL(choice)->IsDescendant(H225_BandwidthConfirm::Class()), PInvalidCast);
  4499. #endif
  4500.   return *(H225_BandwidthConfirm *)choice;
  4501. }
  4502.  
  4503.  
  4504. H225_RasMessage::operator const H225_BandwidthConfirm &() const
  4505. #endif
  4506. {
  4507. #ifndef PASN_LEANANDMEAN
  4508.   PAssert(PAssertNULL(choice)->IsDescendant(H225_BandwidthConfirm::Class()), PInvalidCast);
  4509. #endif
  4510.   return *(H225_BandwidthConfirm *)choice;
  4511. }
  4512.  
  4513.  
  4514. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  4515. H225_RasMessage::operator H225_BandwidthReject &() const
  4516. #else
  4517. H225_RasMessage::operator H225_BandwidthReject &()
  4518. {
  4519. #ifndef PASN_LEANANDMEAN
  4520.   PAssert(PAssertNULL(choice)->IsDescendant(H225_BandwidthReject::Class()), PInvalidCast);
  4521. #endif
  4522.   return *(H225_BandwidthReject *)choice;
  4523. }
  4524.  
  4525.  
  4526. H225_RasMessage::operator const H225_BandwidthReject &() const
  4527. #endif
  4528. {
  4529. #ifndef PASN_LEANANDMEAN
  4530.   PAssert(PAssertNULL(choice)->IsDescendant(H225_BandwidthReject::Class()), PInvalidCast);
  4531. #endif
  4532.   return *(H225_BandwidthReject *)choice;
  4533. }
  4534.  
  4535.  
  4536. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  4537. H225_RasMessage::operator H225_DisengageRequest &() const
  4538. #else
  4539. H225_RasMessage::operator H225_DisengageRequest &()
  4540. {
  4541. #ifndef PASN_LEANANDMEAN
  4542.   PAssert(PAssertNULL(choice)->IsDescendant(H225_DisengageRequest::Class()), PInvalidCast);
  4543. #endif
  4544.   return *(H225_DisengageRequest *)choice;
  4545. }
  4546.  
  4547.  
  4548. H225_RasMessage::operator const H225_DisengageRequest &() const
  4549. #endif
  4550. {
  4551. #ifndef PASN_LEANANDMEAN
  4552.   PAssert(PAssertNULL(choice)->IsDescendant(H225_DisengageRequest::Class()), PInvalidCast);
  4553. #endif
  4554.   return *(H225_DisengageRequest *)choice;
  4555. }
  4556.  
  4557.  
  4558. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  4559. H225_RasMessage::operator H225_DisengageConfirm &() const
  4560. #else
  4561. H225_RasMessage::operator H225_DisengageConfirm &()
  4562. {
  4563. #ifndef PASN_LEANANDMEAN
  4564.   PAssert(PAssertNULL(choice)->IsDescendant(H225_DisengageConfirm::Class()), PInvalidCast);
  4565. #endif
  4566.   return *(H225_DisengageConfirm *)choice;
  4567. }
  4568.  
  4569.  
  4570. H225_RasMessage::operator const H225_DisengageConfirm &() const
  4571. #endif
  4572. {
  4573. #ifndef PASN_LEANANDMEAN
  4574.   PAssert(PAssertNULL(choice)->IsDescendant(H225_DisengageConfirm::Class()), PInvalidCast);
  4575. #endif
  4576.   return *(H225_DisengageConfirm *)choice;
  4577. }
  4578.  
  4579.  
  4580. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  4581. H225_RasMessage::operator H225_DisengageReject &() const
  4582. #else
  4583. H225_RasMessage::operator H225_DisengageReject &()
  4584. {
  4585. #ifndef PASN_LEANANDMEAN
  4586.   PAssert(PAssertNULL(choice)->IsDescendant(H225_DisengageReject::Class()), PInvalidCast);
  4587. #endif
  4588.   return *(H225_DisengageReject *)choice;
  4589. }
  4590.  
  4591.  
  4592. H225_RasMessage::operator const H225_DisengageReject &() const
  4593. #endif
  4594. {
  4595. #ifndef PASN_LEANANDMEAN
  4596.   PAssert(PAssertNULL(choice)->IsDescendant(H225_DisengageReject::Class()), PInvalidCast);
  4597. #endif
  4598.   return *(H225_DisengageReject *)choice;
  4599. }
  4600.  
  4601.  
  4602. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  4603. H225_RasMessage::operator H225_LocationRequest &() const
  4604. #else
  4605. H225_RasMessage::operator H225_LocationRequest &()
  4606. {
  4607. #ifndef PASN_LEANANDMEAN
  4608.   PAssert(PAssertNULL(choice)->IsDescendant(H225_LocationRequest::Class()), PInvalidCast);
  4609. #endif
  4610.   return *(H225_LocationRequest *)choice;
  4611. }
  4612.  
  4613.  
  4614. H225_RasMessage::operator const H225_LocationRequest &() const
  4615. #endif
  4616. {
  4617. #ifndef PASN_LEANANDMEAN
  4618.   PAssert(PAssertNULL(choice)->IsDescendant(H225_LocationRequest::Class()), PInvalidCast);
  4619. #endif
  4620.   return *(H225_LocationRequest *)choice;
  4621. }
  4622.  
  4623.  
  4624. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  4625. H225_RasMessage::operator H225_LocationConfirm &() const
  4626. #else
  4627. H225_RasMessage::operator H225_LocationConfirm &()
  4628. {
  4629. #ifndef PASN_LEANANDMEAN
  4630.   PAssert(PAssertNULL(choice)->IsDescendant(H225_LocationConfirm::Class()), PInvalidCast);
  4631. #endif
  4632.   return *(H225_LocationConfirm *)choice;
  4633. }
  4634.  
  4635.  
  4636. H225_RasMessage::operator const H225_LocationConfirm &() const
  4637. #endif
  4638. {
  4639. #ifndef PASN_LEANANDMEAN
  4640.   PAssert(PAssertNULL(choice)->IsDescendant(H225_LocationConfirm::Class()), PInvalidCast);
  4641. #endif
  4642.   return *(H225_LocationConfirm *)choice;
  4643. }
  4644.  
  4645.  
  4646. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  4647. H225_RasMessage::operator H225_LocationReject &() const
  4648. #else
  4649. H225_RasMessage::operator H225_LocationReject &()
  4650. {
  4651. #ifndef PASN_LEANANDMEAN
  4652.   PAssert(PAssertNULL(choice)->IsDescendant(H225_LocationReject::Class()), PInvalidCast);
  4653. #endif
  4654.   return *(H225_LocationReject *)choice;
  4655. }
  4656.  
  4657.  
  4658. H225_RasMessage::operator const H225_LocationReject &() const
  4659. #endif
  4660. {
  4661. #ifndef PASN_LEANANDMEAN
  4662.   PAssert(PAssertNULL(choice)->IsDescendant(H225_LocationReject::Class()), PInvalidCast);
  4663. #endif
  4664.   return *(H225_LocationReject *)choice;
  4665. }
  4666.  
  4667.  
  4668. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  4669. H225_RasMessage::operator H225_InfoRequest &() const
  4670. #else
  4671. H225_RasMessage::operator H225_InfoRequest &()
  4672. {
  4673. #ifndef PASN_LEANANDMEAN
  4674.   PAssert(PAssertNULL(choice)->IsDescendant(H225_InfoRequest::Class()), PInvalidCast);
  4675. #endif
  4676.   return *(H225_InfoRequest *)choice;
  4677. }
  4678.  
  4679.  
  4680. H225_RasMessage::operator const H225_InfoRequest &() const
  4681. #endif
  4682. {
  4683. #ifndef PASN_LEANANDMEAN
  4684.   PAssert(PAssertNULL(choice)->IsDescendant(H225_InfoRequest::Class()), PInvalidCast);
  4685. #endif
  4686.   return *(H225_InfoRequest *)choice;
  4687. }
  4688.  
  4689.  
  4690. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  4691. H225_RasMessage::operator H225_InfoRequestResponse &() const
  4692. #else
  4693. H225_RasMessage::operator H225_InfoRequestResponse &()
  4694. {
  4695. #ifndef PASN_LEANANDMEAN
  4696.   PAssert(PAssertNULL(choice)->IsDescendant(H225_InfoRequestResponse::Class()), PInvalidCast);
  4697. #endif
  4698.   return *(H225_InfoRequestResponse *)choice;
  4699. }
  4700.  
  4701.  
  4702. H225_RasMessage::operator const H225_InfoRequestResponse &() const
  4703. #endif
  4704. {
  4705. #ifndef PASN_LEANANDMEAN
  4706.   PAssert(PAssertNULL(choice)->IsDescendant(H225_InfoRequestResponse::Class()), PInvalidCast);
  4707. #endif
  4708.   return *(H225_InfoRequestResponse *)choice;
  4709. }
  4710.  
  4711.  
  4712. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  4713. H225_RasMessage::operator H225_NonStandardMessage &() const
  4714. #else
  4715. H225_RasMessage::operator H225_NonStandardMessage &()
  4716. {
  4717. #ifndef PASN_LEANANDMEAN
  4718.   PAssert(PAssertNULL(choice)->IsDescendant(H225_NonStandardMessage::Class()), PInvalidCast);
  4719. #endif
  4720.   return *(H225_NonStandardMessage *)choice;
  4721. }
  4722.  
  4723.  
  4724. H225_RasMessage::operator const H225_NonStandardMessage &() const
  4725. #endif
  4726. {
  4727. #ifndef PASN_LEANANDMEAN
  4728.   PAssert(PAssertNULL(choice)->IsDescendant(H225_NonStandardMessage::Class()), PInvalidCast);
  4729. #endif
  4730.   return *(H225_NonStandardMessage *)choice;
  4731. }
  4732.  
  4733.  
  4734. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  4735. H225_RasMessage::operator H225_UnknownMessageResponse &() const
  4736. #else
  4737. H225_RasMessage::operator H225_UnknownMessageResponse &()
  4738. {
  4739. #ifndef PASN_LEANANDMEAN
  4740.   PAssert(PAssertNULL(choice)->IsDescendant(H225_UnknownMessageResponse::Class()), PInvalidCast);
  4741. #endif
  4742.   return *(H225_UnknownMessageResponse *)choice;
  4743. }
  4744.  
  4745.  
  4746. H225_RasMessage::operator const H225_UnknownMessageResponse &() const
  4747. #endif
  4748. {
  4749. #ifndef PASN_LEANANDMEAN
  4750.   PAssert(PAssertNULL(choice)->IsDescendant(H225_UnknownMessageResponse::Class()), PInvalidCast);
  4751. #endif
  4752.   return *(H225_UnknownMessageResponse *)choice;
  4753. }
  4754.  
  4755.  
  4756. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  4757. H225_RasMessage::operator H225_RequestInProgress &() const
  4758. #else
  4759. H225_RasMessage::operator H225_RequestInProgress &()
  4760. {
  4761. #ifndef PASN_LEANANDMEAN
  4762.   PAssert(PAssertNULL(choice)->IsDescendant(H225_RequestInProgress::Class()), PInvalidCast);
  4763. #endif
  4764.   return *(H225_RequestInProgress *)choice;
  4765. }
  4766.  
  4767.  
  4768. H225_RasMessage::operator const H225_RequestInProgress &() const
  4769. #endif
  4770. {
  4771. #ifndef PASN_LEANANDMEAN
  4772.   PAssert(PAssertNULL(choice)->IsDescendant(H225_RequestInProgress::Class()), PInvalidCast);
  4773. #endif
  4774.   return *(H225_RequestInProgress *)choice;
  4775. }
  4776.  
  4777.  
  4778. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  4779. H225_RasMessage::operator H225_ResourcesAvailableIndicate &() const
  4780. #else
  4781. H225_RasMessage::operator H225_ResourcesAvailableIndicate &()
  4782. {
  4783. #ifndef PASN_LEANANDMEAN
  4784.   PAssert(PAssertNULL(choice)->IsDescendant(H225_ResourcesAvailableIndicate::Class()), PInvalidCast);
  4785. #endif
  4786.   return *(H225_ResourcesAvailableIndicate *)choice;
  4787. }
  4788.  
  4789.  
  4790. H225_RasMessage::operator const H225_ResourcesAvailableIndicate &() const
  4791. #endif
  4792. {
  4793. #ifndef PASN_LEANANDMEAN
  4794.   PAssert(PAssertNULL(choice)->IsDescendant(H225_ResourcesAvailableIndicate::Class()), PInvalidCast);
  4795. #endif
  4796.   return *(H225_ResourcesAvailableIndicate *)choice;
  4797. }
  4798.  
  4799.  
  4800. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  4801. H225_RasMessage::operator H225_ResourcesAvailableConfirm &() const
  4802. #else
  4803. H225_RasMessage::operator H225_ResourcesAvailableConfirm &()
  4804. {
  4805. #ifndef PASN_LEANANDMEAN
  4806.   PAssert(PAssertNULL(choice)->IsDescendant(H225_ResourcesAvailableConfirm::Class()), PInvalidCast);
  4807. #endif
  4808.   return *(H225_ResourcesAvailableConfirm *)choice;
  4809. }
  4810.  
  4811.  
  4812. H225_RasMessage::operator const H225_ResourcesAvailableConfirm &() const
  4813. #endif
  4814. {
  4815. #ifndef PASN_LEANANDMEAN
  4816.   PAssert(PAssertNULL(choice)->IsDescendant(H225_ResourcesAvailableConfirm::Class()), PInvalidCast);
  4817. #endif
  4818.   return *(H225_ResourcesAvailableConfirm *)choice;
  4819. }
  4820.  
  4821.  
  4822. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  4823. H225_RasMessage::operator H225_InfoRequestAck &() const
  4824. #else
  4825. H225_RasMessage::operator H225_InfoRequestAck &()
  4826. {
  4827. #ifndef PASN_LEANANDMEAN
  4828.   PAssert(PAssertNULL(choice)->IsDescendant(H225_InfoRequestAck::Class()), PInvalidCast);
  4829. #endif
  4830.   return *(H225_InfoRequestAck *)choice;
  4831. }
  4832.  
  4833.  
  4834. H225_RasMessage::operator const H225_InfoRequestAck &() const
  4835. #endif
  4836. {
  4837. #ifndef PASN_LEANANDMEAN
  4838.   PAssert(PAssertNULL(choice)->IsDescendant(H225_InfoRequestAck::Class()), PInvalidCast);
  4839. #endif
  4840.   return *(H225_InfoRequestAck *)choice;
  4841. }
  4842.  
  4843.  
  4844. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  4845. H225_RasMessage::operator H225_InfoRequestNak &() const
  4846. #else
  4847. H225_RasMessage::operator H225_InfoRequestNak &()
  4848. {
  4849. #ifndef PASN_LEANANDMEAN
  4850.   PAssert(PAssertNULL(choice)->IsDescendant(H225_InfoRequestNak::Class()), PInvalidCast);
  4851. #endif
  4852.   return *(H225_InfoRequestNak *)choice;
  4853. }
  4854.  
  4855.  
  4856. H225_RasMessage::operator const H225_InfoRequestNak &() const
  4857. #endif
  4858. {
  4859. #ifndef PASN_LEANANDMEAN
  4860.   PAssert(PAssertNULL(choice)->IsDescendant(H225_InfoRequestNak::Class()), PInvalidCast);
  4861. #endif
  4862.   return *(H225_InfoRequestNak *)choice;
  4863. }
  4864.  
  4865.  
  4866. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  4867. H225_RasMessage::operator H225_ServiceControlIndication &() const
  4868. #else
  4869. H225_RasMessage::operator H225_ServiceControlIndication &()
  4870. {
  4871. #ifndef PASN_LEANANDMEAN
  4872.   PAssert(PAssertNULL(choice)->IsDescendant(H225_ServiceControlIndication::Class()), PInvalidCast);
  4873. #endif
  4874.   return *(H225_ServiceControlIndication *)choice;
  4875. }
  4876.  
  4877.  
  4878. H225_RasMessage::operator const H225_ServiceControlIndication &() const
  4879. #endif
  4880. {
  4881. #ifndef PASN_LEANANDMEAN
  4882.   PAssert(PAssertNULL(choice)->IsDescendant(H225_ServiceControlIndication::Class()), PInvalidCast);
  4883. #endif
  4884.   return *(H225_ServiceControlIndication *)choice;
  4885. }
  4886.  
  4887.  
  4888. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  4889. H225_RasMessage::operator H225_ServiceControlResponse &() const
  4890. #else
  4891. H225_RasMessage::operator H225_ServiceControlResponse &()
  4892. {
  4893. #ifndef PASN_LEANANDMEAN
  4894.   PAssert(PAssertNULL(choice)->IsDescendant(H225_ServiceControlResponse::Class()), PInvalidCast);
  4895. #endif
  4896.   return *(H225_ServiceControlResponse *)choice;
  4897. }
  4898.  
  4899.  
  4900. H225_RasMessage::operator const H225_ServiceControlResponse &() const
  4901. #endif
  4902. {
  4903. #ifndef PASN_LEANANDMEAN
  4904.   PAssert(PAssertNULL(choice)->IsDescendant(H225_ServiceControlResponse::Class()), PInvalidCast);
  4905. #endif
  4906.   return *(H225_ServiceControlResponse *)choice;
  4907. }
  4908.  
  4909.  
  4910. BOOL H225_RasMessage::CreateObject()
  4911. {
  4912.   switch (tag) {
  4913.     case e_gatekeeperRequest :
  4914.       choice = new H225_GatekeeperRequest();
  4915.       return TRUE;
  4916.     case e_gatekeeperConfirm :
  4917.       choice = new H225_GatekeeperConfirm();
  4918.       return TRUE;
  4919.     case e_gatekeeperReject :
  4920.       choice = new H225_GatekeeperReject();
  4921.       return TRUE;
  4922.     case e_registrationRequest :
  4923.       choice = new H225_RegistrationRequest();
  4924.       return TRUE;
  4925.     case e_registrationConfirm :
  4926.       choice = new H225_RegistrationConfirm();
  4927.       return TRUE;
  4928.     case e_registrationReject :
  4929.       choice = new H225_RegistrationReject();
  4930.       return TRUE;
  4931.     case e_unregistrationRequest :
  4932.       choice = new H225_UnregistrationRequest();
  4933.       return TRUE;
  4934.     case e_unregistrationConfirm :
  4935.       choice = new H225_UnregistrationConfirm();
  4936.       return TRUE;
  4937.     case e_unregistrationReject :
  4938.       choice = new H225_UnregistrationReject();
  4939.       return TRUE;
  4940.     case e_admissionRequest :
  4941.       choice = new H225_AdmissionRequest();
  4942.       return TRUE;
  4943.     case e_admissionConfirm :
  4944.       choice = new H225_AdmissionConfirm();
  4945.       return TRUE;
  4946.     case e_admissionReject :
  4947.       choice = new H225_AdmissionReject();
  4948.       return TRUE;
  4949.     case e_bandwidthRequest :
  4950.       choice = new H225_BandwidthRequest();
  4951.       return TRUE;
  4952.     case e_bandwidthConfirm :
  4953.       choice = new H225_BandwidthConfirm();
  4954.       return TRUE;
  4955.     case e_bandwidthReject :
  4956.       choice = new H225_BandwidthReject();
  4957.       return TRUE;
  4958.     case e_disengageRequest :
  4959.       choice = new H225_DisengageRequest();
  4960.       return TRUE;
  4961.     case e_disengageConfirm :
  4962.       choice = new H225_DisengageConfirm();
  4963.       return TRUE;
  4964.     case e_disengageReject :
  4965.       choice = new H225_DisengageReject();
  4966.       return TRUE;
  4967.     case e_locationRequest :
  4968.       choice = new H225_LocationRequest();
  4969.       return TRUE;
  4970.     case e_locationConfirm :
  4971.       choice = new H225_LocationConfirm();
  4972.       return TRUE;
  4973.     case e_locationReject :
  4974.       choice = new H225_LocationReject();
  4975.       return TRUE;
  4976.     case e_infoRequest :
  4977.       choice = new H225_InfoRequest();
  4978.       return TRUE;
  4979.     case e_infoRequestResponse :
  4980.       choice = new H225_InfoRequestResponse();
  4981.       return TRUE;
  4982.     case e_nonStandardMessage :
  4983.       choice = new H225_NonStandardMessage();
  4984.       return TRUE;
  4985.     case e_unknownMessageResponse :
  4986.       choice = new H225_UnknownMessageResponse();
  4987.       return TRUE;
  4988.     case e_requestInProgress :
  4989.       choice = new H225_RequestInProgress();
  4990.       return TRUE;
  4991.     case e_resourcesAvailableIndicate :
  4992.       choice = new H225_ResourcesAvailableIndicate();
  4993.       return TRUE;
  4994.     case e_resourcesAvailableConfirm :
  4995.       choice = new H225_ResourcesAvailableConfirm();
  4996.       return TRUE;
  4997.     case e_infoRequestAck :
  4998.       choice = new H225_InfoRequestAck();
  4999.       return TRUE;
  5000.     case e_infoRequestNak :
  5001.       choice = new H225_InfoRequestNak();
  5002.       return TRUE;
  5003.     case e_serviceControlIndication :
  5004.       choice = new H225_ServiceControlIndication();
  5005.       return TRUE;
  5006.     case e_serviceControlResponse :
  5007.       choice = new H225_ServiceControlResponse();
  5008.       return TRUE;
  5009.   }
  5010.  
  5011.   choice = NULL;
  5012.   return FALSE;
  5013. }
  5014.  
  5015.  
  5016. PObject * H225_RasMessage::Clone() const
  5017. {
  5018. #ifndef PASN_LEANANDMEAN
  5019.   PAssert(IsClass(H225_RasMessage::Class()), PInvalidCast);
  5020. #endif
  5021.   return new H225_RasMessage(*this);
  5022. }
  5023.  
  5024.  
  5025. //
  5026. // GatekeeperRejectReason
  5027. //
  5028.  
  5029. H225_GatekeeperRejectReason::H225_GatekeeperRejectReason(unsigned tag, PASN_Object::TagClass tagClass)
  5030.   : PASN_Choice(tag, tagClass, 4, TRUE
  5031. #ifndef PASN_NOPRINTON
  5032.       , "resourceUnavailable "
  5033.         "terminalExcluded "
  5034.         "invalidRevision "
  5035.         "undefinedReason "
  5036.         "securityDenial "
  5037.         "genericDataReason "
  5038.         "neededFeatureNotSupported "
  5039. #endif
  5040.     )
  5041. {
  5042. }
  5043.  
  5044.  
  5045. BOOL H225_GatekeeperRejectReason::CreateObject()
  5046. {
  5047.   choice = (tag <= e_neededFeatureNotSupported) ? new PASN_Null() : NULL;
  5048.   return choice != NULL;
  5049. }
  5050.  
  5051.  
  5052. PObject * H225_GatekeeperRejectReason::Clone() const
  5053. {
  5054. #ifndef PASN_LEANANDMEAN
  5055.   PAssert(IsClass(H225_GatekeeperRejectReason::Class()), PInvalidCast);
  5056. #endif
  5057.   return new H225_GatekeeperRejectReason(*this);
  5058. }
  5059.  
  5060.  
  5061. //
  5062. // RegistrationRejectReason
  5063. //
  5064.  
  5065. H225_RegistrationRejectReason::H225_RegistrationRejectReason(unsigned tag, PASN_Object::TagClass tagClass)
  5066.   : PASN_Choice(tag, tagClass, 8, TRUE
  5067. #ifndef PASN_NOPRINTON
  5068.       , "discoveryRequired "
  5069.         "invalidRevision "
  5070.         "invalidCallSignalAddress "
  5071.         "invalidRASAddress "
  5072.         "duplicateAlias "
  5073.         "invalidTerminalType "
  5074.         "undefinedReason "
  5075.         "transportNotSupported "
  5076.         "transportQOSNotSupported "
  5077.         "resourceUnavailable "
  5078.         "invalidAlias "
  5079.         "securityDenial "
  5080.         "fullRegistrationRequired "
  5081.         "additiveRegistrationNotSupported "
  5082.         "invalidTerminalAliases "
  5083.         "genericDataReason "
  5084.         "neededFeatureNotSupported "
  5085. #endif
  5086.     )
  5087. {
  5088. }
  5089.  
  5090.  
  5091. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  5092. H225_RegistrationRejectReason::operator H225_ArrayOf_AliasAddress &() const
  5093. #else
  5094. H225_RegistrationRejectReason::operator H225_ArrayOf_AliasAddress &()
  5095. {
  5096. #ifndef PASN_LEANANDMEAN
  5097.   PAssert(PAssertNULL(choice)->IsDescendant(H225_ArrayOf_AliasAddress::Class()), PInvalidCast);
  5098. #endif
  5099.   return *(H225_ArrayOf_AliasAddress *)choice;
  5100. }
  5101.  
  5102.  
  5103. H225_RegistrationRejectReason::operator const H225_ArrayOf_AliasAddress &() const
  5104. #endif
  5105. {
  5106. #ifndef PASN_LEANANDMEAN
  5107.   PAssert(PAssertNULL(choice)->IsDescendant(H225_ArrayOf_AliasAddress::Class()), PInvalidCast);
  5108. #endif
  5109.   return *(H225_ArrayOf_AliasAddress *)choice;
  5110. }
  5111.  
  5112.  
  5113. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  5114. H225_RegistrationRejectReason::operator H225_RegistrationRejectReason_invalidTerminalAliases &() const
  5115. #else
  5116. H225_RegistrationRejectReason::operator H225_RegistrationRejectReason_invalidTerminalAliases &()
  5117. {
  5118. #ifndef PASN_LEANANDMEAN
  5119.   PAssert(PAssertNULL(choice)->IsDescendant(H225_RegistrationRejectReason_invalidTerminalAliases::Class()), PInvalidCast);
  5120. #endif
  5121.   return *(H225_RegistrationRejectReason_invalidTerminalAliases *)choice;
  5122. }
  5123.  
  5124.  
  5125. H225_RegistrationRejectReason::operator const H225_RegistrationRejectReason_invalidTerminalAliases &() const
  5126. #endif
  5127. {
  5128. #ifndef PASN_LEANANDMEAN
  5129.   PAssert(PAssertNULL(choice)->IsDescendant(H225_RegistrationRejectReason_invalidTerminalAliases::Class()), PInvalidCast);
  5130. #endif
  5131.   return *(H225_RegistrationRejectReason_invalidTerminalAliases *)choice;
  5132. }
  5133.  
  5134.  
  5135. BOOL H225_RegistrationRejectReason::CreateObject()
  5136. {
  5137.   switch (tag) {
  5138.     case e_discoveryRequired :
  5139.     case e_invalidRevision :
  5140.     case e_invalidCallSignalAddress :
  5141.     case e_invalidRASAddress :
  5142.     case e_invalidTerminalType :
  5143.     case e_undefinedReason :
  5144.     case e_transportNotSupported :
  5145.     case e_transportQOSNotSupported :
  5146.     case e_resourceUnavailable :
  5147.     case e_invalidAlias :
  5148.     case e_securityDenial :
  5149.     case e_fullRegistrationRequired :
  5150.     case e_additiveRegistrationNotSupported :
  5151.     case e_genericDataReason :
  5152.     case e_neededFeatureNotSupported :
  5153.       choice = new PASN_Null();
  5154.       return TRUE;
  5155.     case e_duplicateAlias :
  5156.       choice = new H225_ArrayOf_AliasAddress();
  5157.       return TRUE;
  5158.     case e_invalidTerminalAliases :
  5159.       choice = new H225_RegistrationRejectReason_invalidTerminalAliases();
  5160.       return TRUE;
  5161.   }
  5162.  
  5163.   choice = NULL;
  5164.   return FALSE;
  5165. }
  5166.  
  5167.  
  5168. PObject * H225_RegistrationRejectReason::Clone() const
  5169. {
  5170. #ifndef PASN_LEANANDMEAN
  5171.   PAssert(IsClass(H225_RegistrationRejectReason::Class()), PInvalidCast);
  5172. #endif
  5173.   return new H225_RegistrationRejectReason(*this);
  5174. }
  5175.  
  5176.  
  5177. //
  5178. // UnregRequestReason
  5179. //
  5180.  
  5181. H225_UnregRequestReason::H225_UnregRequestReason(unsigned tag, PASN_Object::TagClass tagClass)
  5182.   : PASN_Choice(tag, tagClass, 4, TRUE
  5183. #ifndef PASN_NOPRINTON
  5184.       , "reregistrationRequired "
  5185.         "ttlExpired "
  5186.         "securityDenial "
  5187.         "undefinedReason "
  5188.         "maintenance "
  5189. #endif
  5190.     )
  5191. {
  5192. }
  5193.  
  5194.  
  5195. BOOL H225_UnregRequestReason::CreateObject()
  5196. {
  5197.   choice = (tag <= e_maintenance) ? new PASN_Null() : NULL;
  5198.   return choice != NULL;
  5199. }
  5200.  
  5201.  
  5202. PObject * H225_UnregRequestReason::Clone() const
  5203. {
  5204. #ifndef PASN_LEANANDMEAN
  5205.   PAssert(IsClass(H225_UnregRequestReason::Class()), PInvalidCast);
  5206. #endif
  5207.   return new H225_UnregRequestReason(*this);
  5208. }
  5209.  
  5210.  
  5211. //
  5212. // UnregRejectReason
  5213. //
  5214.  
  5215. H225_UnregRejectReason::H225_UnregRejectReason(unsigned tag, PASN_Object::TagClass tagClass)
  5216.   : PASN_Choice(tag, tagClass, 3, TRUE
  5217. #ifndef PASN_NOPRINTON
  5218.       , "notCurrentlyRegistered "
  5219.         "callInProgress "
  5220.         "undefinedReason "
  5221.         "permissionDenied "
  5222.         "securityDenial "
  5223. #endif
  5224.     )
  5225. {
  5226. }
  5227.  
  5228.  
  5229. BOOL H225_UnregRejectReason::CreateObject()
  5230. {
  5231.   choice = (tag <= e_securityDenial) ? new PASN_Null() : NULL;
  5232.   return choice != NULL;
  5233. }
  5234.  
  5235.  
  5236. PObject * H225_UnregRejectReason::Clone() const
  5237. {
  5238. #ifndef PASN_LEANANDMEAN
  5239.   PAssert(IsClass(H225_UnregRejectReason::Class()), PInvalidCast);
  5240. #endif
  5241.   return new H225_UnregRejectReason(*this);
  5242. }
  5243.  
  5244.  
  5245. //
  5246. // CallType
  5247. //
  5248.  
  5249. H225_CallType::H225_CallType(unsigned tag, PASN_Object::TagClass tagClass)
  5250.   : PASN_Choice(tag, tagClass, 4, TRUE
  5251. #ifndef PASN_NOPRINTON
  5252.       , "pointToPoint "
  5253.         "oneToN "
  5254.         "nToOne "
  5255.         "nToN "
  5256. #endif
  5257.     )
  5258. {
  5259. }
  5260.  
  5261.  
  5262. BOOL H225_CallType::CreateObject()
  5263. {
  5264.   choice = (tag <= e_nToN) ? new PASN_Null() : NULL;
  5265.   return choice != NULL;
  5266. }
  5267.  
  5268.  
  5269. PObject * H225_CallType::Clone() const
  5270. {
  5271. #ifndef PASN_LEANANDMEAN
  5272.   PAssert(IsClass(H225_CallType::Class()), PInvalidCast);
  5273. #endif
  5274.   return new H225_CallType(*this);
  5275. }
  5276.  
  5277.  
  5278. //
  5279. // CallModel
  5280. //
  5281.  
  5282. H225_CallModel::H225_CallModel(unsigned tag, PASN_Object::TagClass tagClass)
  5283.   : PASN_Choice(tag, tagClass, 2, TRUE
  5284. #ifndef PASN_NOPRINTON
  5285.       , "direct "
  5286.         "gatekeeperRouted "
  5287. #endif
  5288.     )
  5289. {
  5290. }
  5291.  
  5292.  
  5293. BOOL H225_CallModel::CreateObject()
  5294. {
  5295.   choice = (tag <= e_gatekeeperRouted) ? new PASN_Null() : NULL;
  5296.   return choice != NULL;
  5297. }
  5298.  
  5299.  
  5300. PObject * H225_CallModel::Clone() const
  5301. {
  5302. #ifndef PASN_LEANANDMEAN
  5303.   PAssert(IsClass(H225_CallModel::Class()), PInvalidCast);
  5304. #endif
  5305.   return new H225_CallModel(*this);
  5306. }
  5307.  
  5308.  
  5309. //
  5310. // TransportQOS
  5311. //
  5312.  
  5313. H225_TransportQOS::H225_TransportQOS(unsigned tag, PASN_Object::TagClass tagClass)
  5314.   : PASN_Choice(tag, tagClass, 3, TRUE
  5315. #ifndef PASN_NOPRINTON
  5316.       , "endpointControlled "
  5317.         "gatekeeperControlled "
  5318.         "noControl "
  5319. #endif
  5320.     )
  5321. {
  5322. }
  5323.  
  5324.  
  5325. BOOL H225_TransportQOS::CreateObject()
  5326. {
  5327.   choice = (tag <= e_noControl) ? new PASN_Null() : NULL;
  5328.   return choice != NULL;
  5329. }
  5330.  
  5331.  
  5332. PObject * H225_TransportQOS::Clone() const
  5333. {
  5334. #ifndef PASN_LEANANDMEAN
  5335.   PAssert(IsClass(H225_TransportQOS::Class()), PInvalidCast);
  5336. #endif
  5337.   return new H225_TransportQOS(*this);
  5338. }
  5339.  
  5340.  
  5341. //
  5342. // UUIEsRequested
  5343. //
  5344.  
  5345. H225_UUIEsRequested::H225_UUIEsRequested(unsigned tag, PASN_Object::TagClass tagClass)
  5346.   : PASN_Sequence(tag, tagClass, 0, TRUE, 4)
  5347. {
  5348.   IncludeOptionalField(e_status);
  5349.   IncludeOptionalField(e_statusInquiry);
  5350.   IncludeOptionalField(e_setupAcknowledge);
  5351.   IncludeOptionalField(e_notify);
  5352. }
  5353.  
  5354.  
  5355. #ifndef PASN_NOPRINTON
  5356. void H225_UUIEsRequested::PrintOn(ostream & strm) const
  5357. {
  5358.   int indent = strm.precision() + 2;
  5359.   strm << "{\n";
  5360.   strm << setw(indent+8) << "setup = " << setprecision(indent) << m_setup << '\n';
  5361.   strm << setw(indent+17) << "callProceeding = " << setprecision(indent) << m_callProceeding << '\n';
  5362.   strm << setw(indent+10) << "connect = " << setprecision(indent) << m_connect << '\n';
  5363.   strm << setw(indent+11) << "alerting = " << setprecision(indent) << m_alerting << '\n';
  5364.   strm << setw(indent+14) << "information = " << setprecision(indent) << m_information << '\n';
  5365.   strm << setw(indent+18) << "releaseComplete = " << setprecision(indent) << m_releaseComplete << '\n';
  5366.   strm << setw(indent+11) << "facility = " << setprecision(indent) << m_facility << '\n';
  5367.   strm << setw(indent+11) << "progress = " << setprecision(indent) << m_progress << '\n';
  5368.   strm << setw(indent+8) << "empty = " << setprecision(indent) << m_empty << '\n';
  5369.   if (HasOptionalField(e_status))
  5370.     strm << setw(indent+9) << "status = " << setprecision(indent) << m_status << '\n';
  5371.   if (HasOptionalField(e_statusInquiry))
  5372.     strm << setw(indent+16) << "statusInquiry = " << setprecision(indent) << m_statusInquiry << '\n';
  5373.   if (HasOptionalField(e_setupAcknowledge))
  5374.     strm << setw(indent+19) << "setupAcknowledge = " << setprecision(indent) << m_setupAcknowledge << '\n';
  5375.   if (HasOptionalField(e_notify))
  5376.     strm << setw(indent+9) << "notify = " << setprecision(indent) << m_notify << '\n';
  5377.   strm << setw(indent-1) << "}";
  5378. }
  5379. #endif
  5380.  
  5381.  
  5382. PObject::Comparison H225_UUIEsRequested::Compare(const PObject & obj) const
  5383. {
  5384. #ifndef PASN_LEANANDMEAN
  5385.   PAssert(IsDescendant(H225_UUIEsRequested::Class()), PInvalidCast);
  5386. #endif
  5387.   const H225_UUIEsRequested & other = (const H225_UUIEsRequested &)obj;
  5388.  
  5389.   Comparison result;
  5390.  
  5391.   if ((result = m_setup.Compare(other.m_setup)) != EqualTo)
  5392.     return result;
  5393.   if ((result = m_callProceeding.Compare(other.m_callProceeding)) != EqualTo)
  5394.     return result;
  5395.   if ((result = m_connect.Compare(other.m_connect)) != EqualTo)
  5396.     return result;
  5397.   if ((result = m_alerting.Compare(other.m_alerting)) != EqualTo)
  5398.     return result;
  5399.   if ((result = m_information.Compare(other.m_information)) != EqualTo)
  5400.     return result;
  5401.   if ((result = m_releaseComplete.Compare(other.m_releaseComplete)) != EqualTo)
  5402.     return result;
  5403.   if ((result = m_facility.Compare(other.m_facility)) != EqualTo)
  5404.     return result;
  5405.   if ((result = m_progress.Compare(other.m_progress)) != EqualTo)
  5406.     return result;
  5407.   if ((result = m_empty.Compare(other.m_empty)) != EqualTo)
  5408.     return result;
  5409.  
  5410.   return PASN_Sequence::Compare(other);
  5411. }
  5412.  
  5413.  
  5414. PINDEX H225_UUIEsRequested::GetDataLength() const
  5415. {
  5416.   PINDEX length = 0;
  5417.   length += m_setup.GetObjectLength();
  5418.   length += m_callProceeding.GetObjectLength();
  5419.   length += m_connect.GetObjectLength();
  5420.   length += m_alerting.GetObjectLength();
  5421.   length += m_information.GetObjectLength();
  5422.   length += m_releaseComplete.GetObjectLength();
  5423.   length += m_facility.GetObjectLength();
  5424.   length += m_progress.GetObjectLength();
  5425.   length += m_empty.GetObjectLength();
  5426.   return length;
  5427. }
  5428.  
  5429.  
  5430. BOOL H225_UUIEsRequested::Decode(PASN_Stream & strm)
  5431. {
  5432.   if (!PreambleDecode(strm))
  5433.     return FALSE;
  5434.  
  5435.   if (!m_setup.Decode(strm))
  5436.     return FALSE;
  5437.   if (!m_callProceeding.Decode(strm))
  5438.     return FALSE;
  5439.   if (!m_connect.Decode(strm))
  5440.     return FALSE;
  5441.   if (!m_alerting.Decode(strm))
  5442.     return FALSE;
  5443.   if (!m_information.Decode(strm))
  5444.     return FALSE;
  5445.   if (!m_releaseComplete.Decode(strm))
  5446.     return FALSE;
  5447.   if (!m_facility.Decode(strm))
  5448.     return FALSE;
  5449.   if (!m_progress.Decode(strm))
  5450.     return FALSE;
  5451.   if (!m_empty.Decode(strm))
  5452.     return FALSE;
  5453.   if (!KnownExtensionDecode(strm, e_status, m_status))
  5454.     return FALSE;
  5455.   if (!KnownExtensionDecode(strm, e_statusInquiry, m_statusInquiry))
  5456.     return FALSE;
  5457.   if (!KnownExtensionDecode(strm, e_setupAcknowledge, m_setupAcknowledge))
  5458.     return FALSE;
  5459.   if (!KnownExtensionDecode(strm, e_notify, m_notify))
  5460.     return FALSE;
  5461.  
  5462.   return UnknownExtensionsDecode(strm);
  5463. }
  5464.  
  5465.  
  5466. void H225_UUIEsRequested::Encode(PASN_Stream & strm) const
  5467. {
  5468.   PreambleEncode(strm);
  5469.  
  5470.   m_setup.Encode(strm);
  5471.   m_callProceeding.Encode(strm);
  5472.   m_connect.Encode(strm);
  5473.   m_alerting.Encode(strm);
  5474.   m_information.Encode(strm);
  5475.   m_releaseComplete.Encode(strm);
  5476.   m_facility.Encode(strm);
  5477.   m_progress.Encode(strm);
  5478.   m_empty.Encode(strm);
  5479.   KnownExtensionEncode(strm, e_status, m_status);
  5480.   KnownExtensionEncode(strm, e_statusInquiry, m_statusInquiry);
  5481.   KnownExtensionEncode(strm, e_setupAcknowledge, m_setupAcknowledge);
  5482.   KnownExtensionEncode(strm, e_notify, m_notify);
  5483.  
  5484.   UnknownExtensionsEncode(strm);
  5485. }
  5486.  
  5487.  
  5488. PObject * H225_UUIEsRequested::Clone() const
  5489. {
  5490. #ifndef PASN_LEANANDMEAN
  5491.   PAssert(IsClass(H225_UUIEsRequested::Class()), PInvalidCast);
  5492. #endif
  5493.   return new H225_UUIEsRequested(*this);
  5494. }
  5495.  
  5496.  
  5497. //
  5498. // AdmissionRejectReason
  5499. //
  5500.  
  5501. H225_AdmissionRejectReason::H225_AdmissionRejectReason(unsigned tag, PASN_Object::TagClass tagClass)
  5502.   : PASN_Choice(tag, tagClass, 8, TRUE
  5503. #ifndef PASN_NOPRINTON
  5504.       , "calledPartyNotRegistered "
  5505.         "invalidPermission "
  5506.         "requestDenied "
  5507.         "undefinedReason "
  5508.         "callerNotRegistered "
  5509.         "routeCallToGatekeeper "
  5510.         "invalidEndpointIdentifier "
  5511.         "resourceUnavailable "
  5512.         "securityDenial "
  5513.         "qosControlNotSupported "
  5514.         "incompleteAddress "
  5515.         "aliasesInconsistent "
  5516.         "routeCallToSCN "
  5517.         "exceedsCallCapacity "
  5518.         "collectDestination "
  5519.         "collectPIN "
  5520.         "genericDataReason "
  5521.         "neededFeatureNotSupported "
  5522. #endif
  5523.     )
  5524. {
  5525. }
  5526.  
  5527.  
  5528. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  5529. H225_AdmissionRejectReason::operator H225_ArrayOf_PartyNumber &() const
  5530. #else
  5531. H225_AdmissionRejectReason::operator H225_ArrayOf_PartyNumber &()
  5532. {
  5533. #ifndef PASN_LEANANDMEAN
  5534.   PAssert(PAssertNULL(choice)->IsDescendant(H225_ArrayOf_PartyNumber::Class()), PInvalidCast);
  5535. #endif
  5536.   return *(H225_ArrayOf_PartyNumber *)choice;
  5537. }
  5538.  
  5539.  
  5540. H225_AdmissionRejectReason::operator const H225_ArrayOf_PartyNumber &() const
  5541. #endif
  5542. {
  5543. #ifndef PASN_LEANANDMEAN
  5544.   PAssert(PAssertNULL(choice)->IsDescendant(H225_ArrayOf_PartyNumber::Class()), PInvalidCast);
  5545. #endif
  5546.   return *(H225_ArrayOf_PartyNumber *)choice;
  5547. }
  5548.  
  5549.  
  5550. BOOL H225_AdmissionRejectReason::CreateObject()
  5551. {
  5552.   switch (tag) {
  5553.     case e_calledPartyNotRegistered :
  5554.     case e_invalidPermission :
  5555.     case e_requestDenied :
  5556.     case e_undefinedReason :
  5557.     case e_callerNotRegistered :
  5558.     case e_routeCallToGatekeeper :
  5559.     case e_invalidEndpointIdentifier :
  5560.     case e_resourceUnavailable :
  5561.     case e_securityDenial :
  5562.     case e_qosControlNotSupported :
  5563.     case e_incompleteAddress :
  5564.     case e_aliasesInconsistent :
  5565.     case e_exceedsCallCapacity :
  5566.     case e_collectDestination :
  5567.     case e_collectPIN :
  5568.     case e_genericDataReason :
  5569.     case e_neededFeatureNotSupported :
  5570.       choice = new PASN_Null();
  5571.       return TRUE;
  5572.     case e_routeCallToSCN :
  5573.       choice = new H225_ArrayOf_PartyNumber();
  5574.       return TRUE;
  5575.   }
  5576.  
  5577.   choice = NULL;
  5578.   return FALSE;
  5579. }
  5580.  
  5581.  
  5582. PObject * H225_AdmissionRejectReason::Clone() const
  5583. {
  5584. #ifndef PASN_LEANANDMEAN
  5585.   PAssert(IsClass(H225_AdmissionRejectReason::Class()), PInvalidCast);
  5586. #endif
  5587.   return new H225_AdmissionRejectReason(*this);
  5588. }
  5589.  
  5590.  
  5591. //
  5592. // BandRejectReason
  5593. //
  5594.  
  5595. H225_BandRejectReason::H225_BandRejectReason(unsigned tag, PASN_Object::TagClass tagClass)
  5596.   : PASN_Choice(tag, tagClass, 6, TRUE
  5597. #ifndef PASN_NOPRINTON
  5598.       , "notBound "
  5599.         "invalidConferenceID "
  5600.         "invalidPermission "
  5601.         "insufficientResources "
  5602.         "invalidRevision "
  5603.         "undefinedReason "
  5604.         "securityDenial "
  5605. #endif
  5606.     )
  5607. {
  5608. }
  5609.  
  5610.  
  5611. BOOL H225_BandRejectReason::CreateObject()
  5612. {
  5613.   choice = (tag <= e_securityDenial) ? new PASN_Null() : NULL;
  5614.   return choice != NULL;
  5615. }
  5616.  
  5617.  
  5618. PObject * H225_BandRejectReason::Clone() const
  5619. {
  5620. #ifndef PASN_LEANANDMEAN
  5621.   PAssert(IsClass(H225_BandRejectReason::Class()), PInvalidCast);
  5622. #endif
  5623.   return new H225_BandRejectReason(*this);
  5624. }
  5625.  
  5626.  
  5627. //
  5628. // LocationRejectReason
  5629. //
  5630.  
  5631. H225_LocationRejectReason::H225_LocationRejectReason(unsigned tag, PASN_Object::TagClass tagClass)
  5632.   : PASN_Choice(tag, tagClass, 4, TRUE
  5633. #ifndef PASN_NOPRINTON
  5634.       , "notRegistered "
  5635.         "invalidPermission "
  5636.         "requestDenied "
  5637.         "undefinedReason "
  5638.         "securityDenial "
  5639.         "aliasesInconsistent "
  5640.         "routeCalltoSCN "
  5641.         "resourceUnavailable "
  5642.         "genericDataReason "
  5643.         "neededFeatureNotSupported "
  5644. #endif
  5645.     )
  5646. {
  5647. }
  5648.  
  5649.  
  5650. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  5651. H225_LocationRejectReason::operator H225_ArrayOf_PartyNumber &() const
  5652. #else
  5653. H225_LocationRejectReason::operator H225_ArrayOf_PartyNumber &()
  5654. {
  5655. #ifndef PASN_LEANANDMEAN
  5656.   PAssert(PAssertNULL(choice)->IsDescendant(H225_ArrayOf_PartyNumber::Class()), PInvalidCast);
  5657. #endif
  5658.   return *(H225_ArrayOf_PartyNumber *)choice;
  5659. }
  5660.  
  5661.  
  5662. H225_LocationRejectReason::operator const H225_ArrayOf_PartyNumber &() const
  5663. #endif
  5664. {
  5665. #ifndef PASN_LEANANDMEAN
  5666.   PAssert(PAssertNULL(choice)->IsDescendant(H225_ArrayOf_PartyNumber::Class()), PInvalidCast);
  5667. #endif
  5668.   return *(H225_ArrayOf_PartyNumber *)choice;
  5669. }
  5670.  
  5671.  
  5672. BOOL H225_LocationRejectReason::CreateObject()
  5673. {
  5674.   switch (tag) {
  5675.     case e_notRegistered :
  5676.     case e_invalidPermission :
  5677.     case e_requestDenied :
  5678.     case e_undefinedReason :
  5679.     case e_securityDenial :
  5680.     case e_aliasesInconsistent :
  5681.     case e_resourceUnavailable :
  5682.     case e_genericDataReason :
  5683.     case e_neededFeatureNotSupported :
  5684.       choice = new PASN_Null();
  5685.       return TRUE;
  5686.     case e_routeCalltoSCN :
  5687.       choice = new H225_ArrayOf_PartyNumber();
  5688.       return TRUE;
  5689.   }
  5690.  
  5691.   choice = NULL;
  5692.   return FALSE;
  5693. }
  5694.  
  5695.  
  5696. PObject * H225_LocationRejectReason::Clone() const
  5697. {
  5698. #ifndef PASN_LEANANDMEAN
  5699.   PAssert(IsClass(H225_LocationRejectReason::Class()), PInvalidCast);
  5700. #endif
  5701.   return new H225_LocationRejectReason(*this);
  5702. }
  5703.  
  5704.  
  5705. //
  5706. // DisengageReason
  5707. //
  5708.  
  5709. H225_DisengageReason::H225_DisengageReason(unsigned tag, PASN_Object::TagClass tagClass)
  5710.   : PASN_Choice(tag, tagClass, 3, TRUE
  5711. #ifndef PASN_NOPRINTON
  5712.       , "forcedDrop "
  5713.         "normalDrop "
  5714.         "undefinedReason "
  5715. #endif
  5716.     )
  5717. {
  5718. }
  5719.  
  5720.  
  5721. BOOL H225_DisengageReason::CreateObject()
  5722. {
  5723.   choice = (tag <= e_undefinedReason) ? new PASN_Null() : NULL;
  5724.   return choice != NULL;
  5725. }
  5726.  
  5727.  
  5728. PObject * H225_DisengageReason::Clone() const
  5729. {
  5730. #ifndef PASN_LEANANDMEAN
  5731.   PAssert(IsClass(H225_DisengageReason::Class()), PInvalidCast);
  5732. #endif
  5733.   return new H225_DisengageReason(*this);
  5734. }
  5735.  
  5736.  
  5737. //
  5738. // DisengageRejectReason
  5739. //
  5740.  
  5741. H225_DisengageRejectReason::H225_DisengageRejectReason(unsigned tag, PASN_Object::TagClass tagClass)
  5742.   : PASN_Choice(tag, tagClass, 2, TRUE
  5743. #ifndef PASN_NOPRINTON
  5744.       , "notRegistered "
  5745.         "requestToDropOther "
  5746.         "securityDenial "
  5747. #endif
  5748.     )
  5749. {
  5750. }
  5751.  
  5752.  
  5753. BOOL H225_DisengageRejectReason::CreateObject()
  5754. {
  5755.   choice = (tag <= e_securityDenial) ? new PASN_Null() : NULL;
  5756.   return choice != NULL;
  5757. }
  5758.  
  5759.  
  5760. PObject * H225_DisengageRejectReason::Clone() const
  5761. {
  5762. #ifndef PASN_LEANANDMEAN
  5763.   PAssert(IsClass(H225_DisengageRejectReason::Class()), PInvalidCast);
  5764. #endif
  5765.   return new H225_DisengageRejectReason(*this);
  5766. }
  5767.  
  5768.  
  5769. //
  5770. // InfoRequestResponseStatus
  5771. //
  5772.  
  5773. H225_InfoRequestResponseStatus::H225_InfoRequestResponseStatus(unsigned tag, PASN_Object::TagClass tagClass)
  5774.   : PASN_Choice(tag, tagClass, 4, TRUE
  5775. #ifndef PASN_NOPRINTON
  5776.       , "complete "
  5777.         "incomplete "
  5778.         "segment "
  5779.         "invalidCall "
  5780. #endif
  5781.     )
  5782. {
  5783. }
  5784.  
  5785.  
  5786. BOOL H225_InfoRequestResponseStatus::CreateObject()
  5787. {
  5788.   switch (tag) {
  5789.     case e_complete :
  5790.     case e_incomplete :
  5791.     case e_invalidCall :
  5792.       choice = new PASN_Null();
  5793.       return TRUE;
  5794.     case e_segment :
  5795.       choice = new PASN_Integer();
  5796.       choice->SetConstraints(PASN_Object::FixedConstraint, 0, 65535);
  5797.       return TRUE;
  5798.   }
  5799.  
  5800.   choice = NULL;
  5801.   return FALSE;
  5802. }
  5803.  
  5804.  
  5805. PObject * H225_InfoRequestResponseStatus::Clone() const
  5806. {
  5807. #ifndef PASN_LEANANDMEAN
  5808.   PAssert(IsClass(H225_InfoRequestResponseStatus::Class()), PInvalidCast);
  5809. #endif
  5810.   return new H225_InfoRequestResponseStatus(*this);
  5811. }
  5812.  
  5813.  
  5814. //
  5815. // InfoRequestNakReason
  5816. //
  5817.  
  5818. H225_InfoRequestNakReason::H225_InfoRequestNakReason(unsigned tag, PASN_Object::TagClass tagClass)
  5819.   : PASN_Choice(tag, tagClass, 3, TRUE
  5820. #ifndef PASN_NOPRINTON
  5821.       , "notRegistered "
  5822.         "securityDenial "
  5823.         "undefinedReason "
  5824. #endif
  5825.     )
  5826. {
  5827. }
  5828.  
  5829.  
  5830. BOOL H225_InfoRequestNakReason::CreateObject()
  5831. {
  5832.   choice = (tag <= e_undefinedReason) ? new PASN_Null() : NULL;
  5833.   return choice != NULL;
  5834. }
  5835.  
  5836.  
  5837. PObject * H225_InfoRequestNakReason::Clone() const
  5838. {
  5839. #ifndef PASN_LEANANDMEAN
  5840.   PAssert(IsClass(H225_InfoRequestNakReason::Class()), PInvalidCast);
  5841. #endif
  5842.   return new H225_InfoRequestNakReason(*this);
  5843. }
  5844.  
  5845.  
  5846. //
  5847. // H323-UserInformation_user-data
  5848. //
  5849.  
  5850. H225_H323_UserInformation_user_data::H225_H323_UserInformation_user_data(unsigned tag, PASN_Object::TagClass tagClass)
  5851.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  5852. {
  5853.   m_protocol_discriminator.SetConstraints(PASN_Object::FixedConstraint, 0, 255);
  5854.   m_user_information.SetConstraints(PASN_Object::FixedConstraint, 1, 131);
  5855. }
  5856.  
  5857.  
  5858. #ifndef PASN_NOPRINTON
  5859. void H225_H323_UserInformation_user_data::PrintOn(ostream & strm) const
  5860. {
  5861.   int indent = strm.precision() + 2;
  5862.   strm << "{\n";
  5863.   strm << setw(indent+25) << "protocol_discriminator = " << setprecision(indent) << m_protocol_discriminator << '\n';
  5864.   strm << setw(indent+19) << "user_information = " << setprecision(indent) << m_user_information << '\n';
  5865.   strm << setw(indent-1) << "}";
  5866. }
  5867. #endif
  5868.  
  5869.  
  5870. PObject::Comparison H225_H323_UserInformation_user_data::Compare(const PObject & obj) const
  5871. {
  5872. #ifndef PASN_LEANANDMEAN
  5873.   PAssert(IsDescendant(H225_H323_UserInformation_user_data::Class()), PInvalidCast);
  5874. #endif
  5875.   const H225_H323_UserInformation_user_data & other = (const H225_H323_UserInformation_user_data &)obj;
  5876.  
  5877.   Comparison result;
  5878.  
  5879.   if ((result = m_protocol_discriminator.Compare(other.m_protocol_discriminator)) != EqualTo)
  5880.     return result;
  5881.   if ((result = m_user_information.Compare(other.m_user_information)) != EqualTo)
  5882.     return result;
  5883.  
  5884.   return PASN_Sequence::Compare(other);
  5885. }
  5886.  
  5887.  
  5888. PINDEX H225_H323_UserInformation_user_data::GetDataLength() const
  5889. {
  5890.   PINDEX length = 0;
  5891.   length += m_protocol_discriminator.GetObjectLength();
  5892.   length += m_user_information.GetObjectLength();
  5893.   return length;
  5894. }
  5895.  
  5896.  
  5897. BOOL H225_H323_UserInformation_user_data::Decode(PASN_Stream & strm)
  5898. {
  5899.   if (!PreambleDecode(strm))
  5900.     return FALSE;
  5901.  
  5902.   if (!m_protocol_discriminator.Decode(strm))
  5903.     return FALSE;
  5904.   if (!m_user_information.Decode(strm))
  5905.     return FALSE;
  5906.  
  5907.   return UnknownExtensionsDecode(strm);
  5908. }
  5909.  
  5910.  
  5911. void H225_H323_UserInformation_user_data::Encode(PASN_Stream & strm) const
  5912. {
  5913.   PreambleEncode(strm);
  5914.  
  5915.   m_protocol_discriminator.Encode(strm);
  5916.   m_user_information.Encode(strm);
  5917.  
  5918.   UnknownExtensionsEncode(strm);
  5919. }
  5920.  
  5921.  
  5922. PObject * H225_H323_UserInformation_user_data::Clone() const
  5923. {
  5924. #ifndef PASN_LEANANDMEAN
  5925.   PAssert(IsClass(H225_H323_UserInformation_user_data::Class()), PInvalidCast);
  5926. #endif
  5927.   return new H225_H323_UserInformation_user_data(*this);
  5928. }
  5929.  
  5930.  
  5931. //
  5932. // H323-UU-PDU_h323-message-body
  5933. //
  5934.  
  5935. H225_H323_UU_PDU_h323_message_body::H225_H323_UU_PDU_h323_message_body(unsigned tag, PASN_Object::TagClass tagClass)
  5936.   : PASN_Choice(tag, tagClass, 7, TRUE
  5937. #ifndef PASN_NOPRINTON
  5938.       , "setup "
  5939.         "callProceeding "
  5940.         "connect "
  5941.         "alerting "
  5942.         "information "
  5943.         "releaseComplete "
  5944.         "facility "
  5945.         "progress "
  5946.         "empty "
  5947.         "status "
  5948.         "statusInquiry "
  5949.         "setupAcknowledge "
  5950.         "notify "
  5951. #endif
  5952.     )
  5953. {
  5954. }
  5955.  
  5956.  
  5957. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  5958. H225_H323_UU_PDU_h323_message_body::operator H225_Setup_UUIE &() const
  5959. #else
  5960. H225_H323_UU_PDU_h323_message_body::operator H225_Setup_UUIE &()
  5961. {
  5962. #ifndef PASN_LEANANDMEAN
  5963.   PAssert(PAssertNULL(choice)->IsDescendant(H225_Setup_UUIE::Class()), PInvalidCast);
  5964. #endif
  5965.   return *(H225_Setup_UUIE *)choice;
  5966. }
  5967.  
  5968.  
  5969. H225_H323_UU_PDU_h323_message_body::operator const H225_Setup_UUIE &() const
  5970. #endif
  5971. {
  5972. #ifndef PASN_LEANANDMEAN
  5973.   PAssert(PAssertNULL(choice)->IsDescendant(H225_Setup_UUIE::Class()), PInvalidCast);
  5974. #endif
  5975.   return *(H225_Setup_UUIE *)choice;
  5976. }
  5977.  
  5978.  
  5979. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  5980. H225_H323_UU_PDU_h323_message_body::operator H225_CallProceeding_UUIE &() const
  5981. #else
  5982. H225_H323_UU_PDU_h323_message_body::operator H225_CallProceeding_UUIE &()
  5983. {
  5984. #ifndef PASN_LEANANDMEAN
  5985.   PAssert(PAssertNULL(choice)->IsDescendant(H225_CallProceeding_UUIE::Class()), PInvalidCast);
  5986. #endif
  5987.   return *(H225_CallProceeding_UUIE *)choice;
  5988. }
  5989.  
  5990.  
  5991. H225_H323_UU_PDU_h323_message_body::operator const H225_CallProceeding_UUIE &() const
  5992. #endif
  5993. {
  5994. #ifndef PASN_LEANANDMEAN
  5995.   PAssert(PAssertNULL(choice)->IsDescendant(H225_CallProceeding_UUIE::Class()), PInvalidCast);
  5996. #endif
  5997.   return *(H225_CallProceeding_UUIE *)choice;
  5998. }
  5999.  
  6000.  
  6001. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  6002. H225_H323_UU_PDU_h323_message_body::operator H225_Connect_UUIE &() const
  6003. #else
  6004. H225_H323_UU_PDU_h323_message_body::operator H225_Connect_UUIE &()
  6005. {
  6006. #ifndef PASN_LEANANDMEAN
  6007.   PAssert(PAssertNULL(choice)->IsDescendant(H225_Connect_UUIE::Class()), PInvalidCast);
  6008. #endif
  6009.   return *(H225_Connect_UUIE *)choice;
  6010. }
  6011.  
  6012.  
  6013. H225_H323_UU_PDU_h323_message_body::operator const H225_Connect_UUIE &() const
  6014. #endif
  6015. {
  6016. #ifndef PASN_LEANANDMEAN
  6017.   PAssert(PAssertNULL(choice)->IsDescendant(H225_Connect_UUIE::Class()), PInvalidCast);
  6018. #endif
  6019.   return *(H225_Connect_UUIE *)choice;
  6020. }
  6021.  
  6022.  
  6023. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  6024. H225_H323_UU_PDU_h323_message_body::operator H225_Alerting_UUIE &() const
  6025. #else
  6026. H225_H323_UU_PDU_h323_message_body::operator H225_Alerting_UUIE &()
  6027. {
  6028. #ifndef PASN_LEANANDMEAN
  6029.   PAssert(PAssertNULL(choice)->IsDescendant(H225_Alerting_UUIE::Class()), PInvalidCast);
  6030. #endif
  6031.   return *(H225_Alerting_UUIE *)choice;
  6032. }
  6033.  
  6034.  
  6035. H225_H323_UU_PDU_h323_message_body::operator const H225_Alerting_UUIE &() const
  6036. #endif
  6037. {
  6038. #ifndef PASN_LEANANDMEAN
  6039.   PAssert(PAssertNULL(choice)->IsDescendant(H225_Alerting_UUIE::Class()), PInvalidCast);
  6040. #endif
  6041.   return *(H225_Alerting_UUIE *)choice;
  6042. }
  6043.  
  6044.  
  6045. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  6046. H225_H323_UU_PDU_h323_message_body::operator H225_Information_UUIE &() const
  6047. #else
  6048. H225_H323_UU_PDU_h323_message_body::operator H225_Information_UUIE &()
  6049. {
  6050. #ifndef PASN_LEANANDMEAN
  6051.   PAssert(PAssertNULL(choice)->IsDescendant(H225_Information_UUIE::Class()), PInvalidCast);
  6052. #endif
  6053.   return *(H225_Information_UUIE *)choice;
  6054. }
  6055.  
  6056.  
  6057. H225_H323_UU_PDU_h323_message_body::operator const H225_Information_UUIE &() const
  6058. #endif
  6059. {
  6060. #ifndef PASN_LEANANDMEAN
  6061.   PAssert(PAssertNULL(choice)->IsDescendant(H225_Information_UUIE::Class()), PInvalidCast);
  6062. #endif
  6063.   return *(H225_Information_UUIE *)choice;
  6064. }
  6065.  
  6066.  
  6067. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  6068. H225_H323_UU_PDU_h323_message_body::operator H225_ReleaseComplete_UUIE &() const
  6069. #else
  6070. H225_H323_UU_PDU_h323_message_body::operator H225_ReleaseComplete_UUIE &()
  6071. {
  6072. #ifndef PASN_LEANANDMEAN
  6073.   PAssert(PAssertNULL(choice)->IsDescendant(H225_ReleaseComplete_UUIE::Class()), PInvalidCast);
  6074. #endif
  6075.   return *(H225_ReleaseComplete_UUIE *)choice;
  6076. }
  6077.  
  6078.  
  6079. H225_H323_UU_PDU_h323_message_body::operator const H225_ReleaseComplete_UUIE &() const
  6080. #endif
  6081. {
  6082. #ifndef PASN_LEANANDMEAN
  6083.   PAssert(PAssertNULL(choice)->IsDescendant(H225_ReleaseComplete_UUIE::Class()), PInvalidCast);
  6084. #endif
  6085.   return *(H225_ReleaseComplete_UUIE *)choice;
  6086. }
  6087.  
  6088.  
  6089. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  6090. H225_H323_UU_PDU_h323_message_body::operator H225_Facility_UUIE &() const
  6091. #else
  6092. H225_H323_UU_PDU_h323_message_body::operator H225_Facility_UUIE &()
  6093. {
  6094. #ifndef PASN_LEANANDMEAN
  6095.   PAssert(PAssertNULL(choice)->IsDescendant(H225_Facility_UUIE::Class()), PInvalidCast);
  6096. #endif
  6097.   return *(H225_Facility_UUIE *)choice;
  6098. }
  6099.  
  6100.  
  6101. H225_H323_UU_PDU_h323_message_body::operator const H225_Facility_UUIE &() const
  6102. #endif
  6103. {
  6104. #ifndef PASN_LEANANDMEAN
  6105.   PAssert(PAssertNULL(choice)->IsDescendant(H225_Facility_UUIE::Class()), PInvalidCast);
  6106. #endif
  6107.   return *(H225_Facility_UUIE *)choice;
  6108. }
  6109.  
  6110.  
  6111. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  6112. H225_H323_UU_PDU_h323_message_body::operator H225_Progress_UUIE &() const
  6113. #else
  6114. H225_H323_UU_PDU_h323_message_body::operator H225_Progress_UUIE &()
  6115. {
  6116. #ifndef PASN_LEANANDMEAN
  6117.   PAssert(PAssertNULL(choice)->IsDescendant(H225_Progress_UUIE::Class()), PInvalidCast);
  6118. #endif
  6119.   return *(H225_Progress_UUIE *)choice;
  6120. }
  6121.  
  6122.  
  6123. H225_H323_UU_PDU_h323_message_body::operator const H225_Progress_UUIE &() const
  6124. #endif
  6125. {
  6126. #ifndef PASN_LEANANDMEAN
  6127.   PAssert(PAssertNULL(choice)->IsDescendant(H225_Progress_UUIE::Class()), PInvalidCast);
  6128. #endif
  6129.   return *(H225_Progress_UUIE *)choice;
  6130. }
  6131.  
  6132.  
  6133. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  6134. H225_H323_UU_PDU_h323_message_body::operator H225_Status_UUIE &() const
  6135. #else
  6136. H225_H323_UU_PDU_h323_message_body::operator H225_Status_UUIE &()
  6137. {
  6138. #ifndef PASN_LEANANDMEAN
  6139.   PAssert(PAssertNULL(choice)->IsDescendant(H225_Status_UUIE::Class()), PInvalidCast);
  6140. #endif
  6141.   return *(H225_Status_UUIE *)choice;
  6142. }
  6143.  
  6144.  
  6145. H225_H323_UU_PDU_h323_message_body::operator const H225_Status_UUIE &() const
  6146. #endif
  6147. {
  6148. #ifndef PASN_LEANANDMEAN
  6149.   PAssert(PAssertNULL(choice)->IsDescendant(H225_Status_UUIE::Class()), PInvalidCast);
  6150. #endif
  6151.   return *(H225_Status_UUIE *)choice;
  6152. }
  6153.  
  6154.  
  6155. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  6156. H225_H323_UU_PDU_h323_message_body::operator H225_StatusInquiry_UUIE &() const
  6157. #else
  6158. H225_H323_UU_PDU_h323_message_body::operator H225_StatusInquiry_UUIE &()
  6159. {
  6160. #ifndef PASN_LEANANDMEAN
  6161.   PAssert(PAssertNULL(choice)->IsDescendant(H225_StatusInquiry_UUIE::Class()), PInvalidCast);
  6162. #endif
  6163.   return *(H225_StatusInquiry_UUIE *)choice;
  6164. }
  6165.  
  6166.  
  6167. H225_H323_UU_PDU_h323_message_body::operator const H225_StatusInquiry_UUIE &() const
  6168. #endif
  6169. {
  6170. #ifndef PASN_LEANANDMEAN
  6171.   PAssert(PAssertNULL(choice)->IsDescendant(H225_StatusInquiry_UUIE::Class()), PInvalidCast);
  6172. #endif
  6173.   return *(H225_StatusInquiry_UUIE *)choice;
  6174. }
  6175.  
  6176.  
  6177. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  6178. H225_H323_UU_PDU_h323_message_body::operator H225_SetupAcknowledge_UUIE &() const
  6179. #else
  6180. H225_H323_UU_PDU_h323_message_body::operator H225_SetupAcknowledge_UUIE &()
  6181. {
  6182. #ifndef PASN_LEANANDMEAN
  6183.   PAssert(PAssertNULL(choice)->IsDescendant(H225_SetupAcknowledge_UUIE::Class()), PInvalidCast);
  6184. #endif
  6185.   return *(H225_SetupAcknowledge_UUIE *)choice;
  6186. }
  6187.  
  6188.  
  6189. H225_H323_UU_PDU_h323_message_body::operator const H225_SetupAcknowledge_UUIE &() const
  6190. #endif
  6191. {
  6192. #ifndef PASN_LEANANDMEAN
  6193.   PAssert(PAssertNULL(choice)->IsDescendant(H225_SetupAcknowledge_UUIE::Class()), PInvalidCast);
  6194. #endif
  6195.   return *(H225_SetupAcknowledge_UUIE *)choice;
  6196. }
  6197.  
  6198.  
  6199. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  6200. H225_H323_UU_PDU_h323_message_body::operator H225_Notify_UUIE &() const
  6201. #else
  6202. H225_H323_UU_PDU_h323_message_body::operator H225_Notify_UUIE &()
  6203. {
  6204. #ifndef PASN_LEANANDMEAN
  6205.   PAssert(PAssertNULL(choice)->IsDescendant(H225_Notify_UUIE::Class()), PInvalidCast);
  6206. #endif
  6207.   return *(H225_Notify_UUIE *)choice;
  6208. }
  6209.  
  6210.  
  6211. H225_H323_UU_PDU_h323_message_body::operator const H225_Notify_UUIE &() const
  6212. #endif
  6213. {
  6214. #ifndef PASN_LEANANDMEAN
  6215.   PAssert(PAssertNULL(choice)->IsDescendant(H225_Notify_UUIE::Class()), PInvalidCast);
  6216. #endif
  6217.   return *(H225_Notify_UUIE *)choice;
  6218. }
  6219.  
  6220.  
  6221. BOOL H225_H323_UU_PDU_h323_message_body::CreateObject()
  6222. {
  6223.   switch (tag) {
  6224.     case e_setup :
  6225.       choice = new H225_Setup_UUIE();
  6226.       return TRUE;
  6227.     case e_callProceeding :
  6228.       choice = new H225_CallProceeding_UUIE();
  6229.       return TRUE;
  6230.     case e_connect :
  6231.       choice = new H225_Connect_UUIE();
  6232.       return TRUE;
  6233.     case e_alerting :
  6234.       choice = new H225_Alerting_UUIE();
  6235.       return TRUE;
  6236.     case e_information :
  6237.       choice = new H225_Information_UUIE();
  6238.       return TRUE;
  6239.     case e_releaseComplete :
  6240.       choice = new H225_ReleaseComplete_UUIE();
  6241.       return TRUE;
  6242.     case e_facility :
  6243.       choice = new H225_Facility_UUIE();
  6244.       return TRUE;
  6245.     case e_progress :
  6246.       choice = new H225_Progress_UUIE();
  6247.       return TRUE;
  6248.     case e_empty :
  6249.       choice = new PASN_Null();
  6250.       return TRUE;
  6251.     case e_status :
  6252.       choice = new H225_Status_UUIE();
  6253.       return TRUE;
  6254.     case e_statusInquiry :
  6255.       choice = new H225_StatusInquiry_UUIE();
  6256.       return TRUE;
  6257.     case e_setupAcknowledge :
  6258.       choice = new H225_SetupAcknowledge_UUIE();
  6259.       return TRUE;
  6260.     case e_notify :
  6261.       choice = new H225_Notify_UUIE();
  6262.       return TRUE;
  6263.   }
  6264.  
  6265.   choice = NULL;
  6266.   return FALSE;
  6267. }
  6268.  
  6269.  
  6270. PObject * H225_H323_UU_PDU_h323_message_body::Clone() const
  6271. {
  6272. #ifndef PASN_LEANANDMEAN
  6273.   PAssert(IsClass(H225_H323_UU_PDU_h323_message_body::Class()), PInvalidCast);
  6274. #endif
  6275.   return new H225_H323_UU_PDU_h323_message_body(*this);
  6276. }
  6277.  
  6278.  
  6279. //
  6280. // ArrayOf_PASN_OctetString
  6281. //
  6282.  
  6283. H225_ArrayOf_PASN_OctetString::H225_ArrayOf_PASN_OctetString(unsigned tag, PASN_Object::TagClass tagClass)
  6284.   : PASN_Array(tag, tagClass)
  6285. {
  6286. }
  6287.  
  6288.  
  6289. PASN_Object * H225_ArrayOf_PASN_OctetString::CreateObject() const
  6290. {
  6291.   return new PASN_OctetString;
  6292. }
  6293.  
  6294.  
  6295. PASN_OctetString & H225_ArrayOf_PASN_OctetString::operator[](PINDEX i) const
  6296. {
  6297.   return (PASN_OctetString &)array[i];
  6298. }
  6299.  
  6300.  
  6301. PObject * H225_ArrayOf_PASN_OctetString::Clone() const
  6302. {
  6303. #ifndef PASN_LEANANDMEAN
  6304.   PAssert(IsClass(H225_ArrayOf_PASN_OctetString::Class()), PInvalidCast);
  6305. #endif
  6306.   return new H225_ArrayOf_PASN_OctetString(*this);
  6307. }
  6308.  
  6309.  
  6310. //
  6311. // ArrayOf_NonStandardParameter
  6312. //
  6313.  
  6314. H225_ArrayOf_NonStandardParameter::H225_ArrayOf_NonStandardParameter(unsigned tag, PASN_Object::TagClass tagClass)
  6315.   : PASN_Array(tag, tagClass)
  6316. {
  6317. }
  6318.  
  6319.  
  6320. PASN_Object * H225_ArrayOf_NonStandardParameter::CreateObject() const
  6321. {
  6322.   return new H225_NonStandardParameter;
  6323. }
  6324.  
  6325.  
  6326. H225_NonStandardParameter & H225_ArrayOf_NonStandardParameter::operator[](PINDEX i) const
  6327. {
  6328.   return (H225_NonStandardParameter &)array[i];
  6329. }
  6330.  
  6331.  
  6332. PObject * H225_ArrayOf_NonStandardParameter::Clone() const
  6333. {
  6334. #ifndef PASN_LEANANDMEAN
  6335.   PAssert(IsClass(H225_ArrayOf_NonStandardParameter::Class()), PInvalidCast);
  6336. #endif
  6337.   return new H225_ArrayOf_NonStandardParameter(*this);
  6338. }
  6339.  
  6340.  
  6341. //
  6342. // ArrayOf_GenericData
  6343. //
  6344.  
  6345. H225_ArrayOf_GenericData::H225_ArrayOf_GenericData(unsigned tag, PASN_Object::TagClass tagClass)
  6346.   : PASN_Array(tag, tagClass)
  6347. {
  6348. }
  6349.  
  6350.  
  6351. PASN_Object * H225_ArrayOf_GenericData::CreateObject() const
  6352. {
  6353.   return new H225_GenericData;
  6354. }
  6355.  
  6356.  
  6357. H225_GenericData & H225_ArrayOf_GenericData::operator[](PINDEX i) const
  6358. {
  6359.   return (H225_GenericData &)array[i];
  6360. }
  6361.  
  6362.  
  6363. PObject * H225_ArrayOf_GenericData::Clone() const
  6364. {
  6365. #ifndef PASN_LEANANDMEAN
  6366.   PAssert(IsClass(H225_ArrayOf_GenericData::Class()), PInvalidCast);
  6367. #endif
  6368.   return new H225_ArrayOf_GenericData(*this);
  6369. }
  6370.  
  6371.  
  6372. //
  6373. // ArrayOf_ClearToken
  6374. //
  6375.  
  6376. H225_ArrayOf_ClearToken::H225_ArrayOf_ClearToken(unsigned tag, PASN_Object::TagClass tagClass)
  6377.   : PASN_Array(tag, tagClass)
  6378. {
  6379. }
  6380.  
  6381.  
  6382. PASN_Object * H225_ArrayOf_ClearToken::CreateObject() const
  6383. {
  6384.   return new H235_ClearToken;
  6385. }
  6386.  
  6387.  
  6388. H235_ClearToken & H225_ArrayOf_ClearToken::operator[](PINDEX i) const
  6389. {
  6390.   return (H235_ClearToken &)array[i];
  6391. }
  6392.  
  6393.  
  6394. PObject * H225_ArrayOf_ClearToken::Clone() const
  6395. {
  6396. #ifndef PASN_LEANANDMEAN
  6397.   PAssert(IsClass(H225_ArrayOf_ClearToken::Class()), PInvalidCast);
  6398. #endif
  6399.   return new H225_ArrayOf_ClearToken(*this);
  6400. }
  6401.  
  6402.  
  6403. //
  6404. // ArrayOf_CryptoH323Token
  6405. //
  6406.  
  6407. H225_ArrayOf_CryptoH323Token::H225_ArrayOf_CryptoH323Token(unsigned tag, PASN_Object::TagClass tagClass)
  6408.   : PASN_Array(tag, tagClass)
  6409. {
  6410. }
  6411.  
  6412.  
  6413. PASN_Object * H225_ArrayOf_CryptoH323Token::CreateObject() const
  6414. {
  6415.   return new H225_CryptoH323Token;
  6416. }
  6417.  
  6418.  
  6419. H225_CryptoH323Token & H225_ArrayOf_CryptoH323Token::operator[](PINDEX i) const
  6420. {
  6421.   return (H225_CryptoH323Token &)array[i];
  6422. }
  6423.  
  6424.  
  6425. PObject * H225_ArrayOf_CryptoH323Token::Clone() const
  6426. {
  6427. #ifndef PASN_LEANANDMEAN
  6428.   PAssert(IsClass(H225_ArrayOf_CryptoH323Token::Class()), PInvalidCast);
  6429. #endif
  6430.   return new H225_ArrayOf_CryptoH323Token(*this);
  6431. }
  6432.  
  6433.  
  6434. //
  6435. // ArrayOf_AliasAddress
  6436. //
  6437.  
  6438. H225_ArrayOf_AliasAddress::H225_ArrayOf_AliasAddress(unsigned tag, PASN_Object::TagClass tagClass)
  6439.   : PASN_Array(tag, tagClass)
  6440. {
  6441. }
  6442.  
  6443.  
  6444. PASN_Object * H225_ArrayOf_AliasAddress::CreateObject() const
  6445. {
  6446.   return new H225_AliasAddress;
  6447. }
  6448.  
  6449.  
  6450. H225_AliasAddress & H225_ArrayOf_AliasAddress::operator[](PINDEX i) const
  6451. {
  6452.   return (H225_AliasAddress &)array[i];
  6453. }
  6454.  
  6455.  
  6456. PObject * H225_ArrayOf_AliasAddress::Clone() const
  6457. {
  6458. #ifndef PASN_LEANANDMEAN
  6459.   PAssert(IsClass(H225_ArrayOf_AliasAddress::Class()), PInvalidCast);
  6460. #endif
  6461.   return new H225_ArrayOf_AliasAddress(*this);
  6462. }
  6463.  
  6464.  
  6465. //
  6466. // ArrayOf_ServiceControlSession
  6467. //
  6468.  
  6469. H225_ArrayOf_ServiceControlSession::H225_ArrayOf_ServiceControlSession(unsigned tag, PASN_Object::TagClass tagClass)
  6470.   : PASN_Array(tag, tagClass)
  6471. {
  6472. }
  6473.  
  6474.  
  6475. PASN_Object * H225_ArrayOf_ServiceControlSession::CreateObject() const
  6476. {
  6477.   return new H225_ServiceControlSession;
  6478. }
  6479.  
  6480.  
  6481. H225_ServiceControlSession & H225_ArrayOf_ServiceControlSession::operator[](PINDEX i) const
  6482. {
  6483.   return (H225_ServiceControlSession &)array[i];
  6484. }
  6485.  
  6486.  
  6487. PObject * H225_ArrayOf_ServiceControlSession::Clone() const
  6488. {
  6489. #ifndef PASN_LEANANDMEAN
  6490.   PAssert(IsClass(H225_ArrayOf_ServiceControlSession::Class()), PInvalidCast);
  6491. #endif
  6492.   return new H225_ArrayOf_ServiceControlSession(*this);
  6493. }
  6494.  
  6495.  
  6496. //
  6497. // Connect-UUIE_language
  6498. //
  6499.  
  6500. H225_Connect_UUIE_language::H225_Connect_UUIE_language(unsigned tag, PASN_Object::TagClass tagClass)
  6501.   : PASN_Array(tag, tagClass)
  6502. {
  6503. }
  6504.  
  6505.  
  6506. PASN_Object * H225_Connect_UUIE_language::CreateObject() const
  6507. {
  6508.   PASN_IA5String * obj = new PASN_IA5String;
  6509.   obj->SetConstraints(PASN_Object::FixedConstraint, 1, 32);
  6510.   return obj;
  6511. }
  6512.  
  6513.  
  6514. PASN_IA5String & H225_Connect_UUIE_language::operator[](PINDEX i) const
  6515. {
  6516.   return (PASN_IA5String &)array[i];
  6517. }
  6518.  
  6519.  
  6520. PObject * H225_Connect_UUIE_language::Clone() const
  6521. {
  6522. #ifndef PASN_LEANANDMEAN
  6523.   PAssert(IsClass(H225_Connect_UUIE_language::Class()), PInvalidCast);
  6524. #endif
  6525.   return new H225_Connect_UUIE_language(*this);
  6526. }
  6527.  
  6528.  
  6529. //
  6530. // ArrayOf_CallReferenceValue
  6531. //
  6532.  
  6533. H225_ArrayOf_CallReferenceValue::H225_ArrayOf_CallReferenceValue(unsigned tag, PASN_Object::TagClass tagClass)
  6534.   : PASN_Array(tag, tagClass)
  6535. {
  6536. }
  6537.  
  6538.  
  6539. PASN_Object * H225_ArrayOf_CallReferenceValue::CreateObject() const
  6540. {
  6541.   return new H225_CallReferenceValue;
  6542. }
  6543.  
  6544.  
  6545. H225_CallReferenceValue & H225_ArrayOf_CallReferenceValue::operator[](PINDEX i) const
  6546. {
  6547.   return (H225_CallReferenceValue &)array[i];
  6548. }
  6549.  
  6550.  
  6551. PObject * H225_ArrayOf_CallReferenceValue::Clone() const
  6552. {
  6553. #ifndef PASN_LEANANDMEAN
  6554.   PAssert(IsClass(H225_ArrayOf_CallReferenceValue::Class()), PInvalidCast);
  6555. #endif
  6556.   return new H225_ArrayOf_CallReferenceValue(*this);
  6557. }
  6558.  
  6559.  
  6560. //
  6561. // Setup-UUIE_conferenceGoal
  6562. //
  6563.  
  6564. H225_Setup_UUIE_conferenceGoal::H225_Setup_UUIE_conferenceGoal(unsigned tag, PASN_Object::TagClass tagClass)
  6565.   : PASN_Choice(tag, tagClass, 3, TRUE
  6566. #ifndef PASN_NOPRINTON
  6567.       , "create "
  6568.         "join "
  6569.         "invite "
  6570.         "capability_negotiation "
  6571.         "callIndependentSupplementaryService "
  6572. #endif
  6573.     )
  6574. {
  6575. }
  6576.  
  6577.  
  6578. BOOL H225_Setup_UUIE_conferenceGoal::CreateObject()
  6579. {
  6580.   choice = (tag <= e_callIndependentSupplementaryService) ? new PASN_Null() : NULL;
  6581.   return choice != NULL;
  6582. }
  6583.  
  6584.  
  6585. PObject * H225_Setup_UUIE_conferenceGoal::Clone() const
  6586. {
  6587. #ifndef PASN_LEANANDMEAN
  6588.   PAssert(IsClass(H225_Setup_UUIE_conferenceGoal::Class()), PInvalidCast);
  6589. #endif
  6590.   return new H225_Setup_UUIE_conferenceGoal(*this);
  6591. }
  6592.  
  6593.  
  6594. //
  6595. // ArrayOf_H245Security
  6596. //
  6597.  
  6598. H225_ArrayOf_H245Security::H225_ArrayOf_H245Security(unsigned tag, PASN_Object::TagClass tagClass)
  6599.   : PASN_Array(tag, tagClass)
  6600. {
  6601. }
  6602.  
  6603.  
  6604. PASN_Object * H225_ArrayOf_H245Security::CreateObject() const
  6605. {
  6606.   return new H225_H245Security;
  6607. }
  6608.  
  6609.  
  6610. H225_H245Security & H225_ArrayOf_H245Security::operator[](PINDEX i) const
  6611. {
  6612.   return (H225_H245Security &)array[i];
  6613. }
  6614.  
  6615.  
  6616. PObject * H225_ArrayOf_H245Security::Clone() const
  6617. {
  6618. #ifndef PASN_LEANANDMEAN
  6619.   PAssert(IsClass(H225_ArrayOf_H245Security::Class()), PInvalidCast);
  6620. #endif
  6621.   return new H225_ArrayOf_H245Security(*this);
  6622. }
  6623.  
  6624.  
  6625. //
  6626. // Setup-UUIE_connectionParameters
  6627. //
  6628.  
  6629. H225_Setup_UUIE_connectionParameters::H225_Setup_UUIE_connectionParameters(unsigned tag, PASN_Object::TagClass tagClass)
  6630.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  6631. {
  6632.   m_numberOfScnConnections.SetConstraints(PASN_Object::FixedConstraint, 0, 65535);
  6633. }
  6634.  
  6635.  
  6636. #ifndef PASN_NOPRINTON
  6637. void H225_Setup_UUIE_connectionParameters::PrintOn(ostream & strm) const
  6638. {
  6639.   int indent = strm.precision() + 2;
  6640.   strm << "{\n";
  6641.   strm << setw(indent+17) << "connectionType = " << setprecision(indent) << m_connectionType << '\n';
  6642.   strm << setw(indent+25) << "numberOfScnConnections = " << setprecision(indent) << m_numberOfScnConnections << '\n';
  6643.   strm << setw(indent+24) << "connectionAggregation = " << setprecision(indent) << m_connectionAggregation << '\n';
  6644.   strm << setw(indent-1) << "}";
  6645. }
  6646. #endif
  6647.  
  6648.  
  6649. PObject::Comparison H225_Setup_UUIE_connectionParameters::Compare(const PObject & obj) const
  6650. {
  6651. #ifndef PASN_LEANANDMEAN
  6652.   PAssert(IsDescendant(H225_Setup_UUIE_connectionParameters::Class()), PInvalidCast);
  6653. #endif
  6654.   const H225_Setup_UUIE_connectionParameters & other = (const H225_Setup_UUIE_connectionParameters &)obj;
  6655.  
  6656.   Comparison result;
  6657.  
  6658.   if ((result = m_connectionType.Compare(other.m_connectionType)) != EqualTo)
  6659.     return result;
  6660.   if ((result = m_numberOfScnConnections.Compare(other.m_numberOfScnConnections)) != EqualTo)
  6661.     return result;
  6662.   if ((result = m_connectionAggregation.Compare(other.m_connectionAggregation)) != EqualTo)
  6663.     return result;
  6664.  
  6665.   return PASN_Sequence::Compare(other);
  6666. }
  6667.  
  6668.  
  6669. PINDEX H225_Setup_UUIE_connectionParameters::GetDataLength() const
  6670. {
  6671.   PINDEX length = 0;
  6672.   length += m_connectionType.GetObjectLength();
  6673.   length += m_numberOfScnConnections.GetObjectLength();
  6674.   length += m_connectionAggregation.GetObjectLength();
  6675.   return length;
  6676. }
  6677.  
  6678.  
  6679. BOOL H225_Setup_UUIE_connectionParameters::Decode(PASN_Stream & strm)
  6680. {
  6681.   if (!PreambleDecode(strm))
  6682.     return FALSE;
  6683.  
  6684.   if (!m_connectionType.Decode(strm))
  6685.     return FALSE;
  6686.   if (!m_numberOfScnConnections.Decode(strm))
  6687.     return FALSE;
  6688.   if (!m_connectionAggregation.Decode(strm))
  6689.     return FALSE;
  6690.  
  6691.   return UnknownExtensionsDecode(strm);
  6692. }
  6693.  
  6694.  
  6695. void H225_Setup_UUIE_connectionParameters::Encode(PASN_Stream & strm) const
  6696. {
  6697.   PreambleEncode(strm);
  6698.  
  6699.   m_connectionType.Encode(strm);
  6700.   m_numberOfScnConnections.Encode(strm);
  6701.   m_connectionAggregation.Encode(strm);
  6702.  
  6703.   UnknownExtensionsEncode(strm);
  6704. }
  6705.  
  6706.  
  6707. PObject * H225_Setup_UUIE_connectionParameters::Clone() const
  6708. {
  6709. #ifndef PASN_LEANANDMEAN
  6710.   PAssert(IsClass(H225_Setup_UUIE_connectionParameters::Class()), PInvalidCast);
  6711. #endif
  6712.   return new H225_Setup_UUIE_connectionParameters(*this);
  6713. }
  6714.  
  6715.  
  6716. //
  6717. // Setup-UUIE_language
  6718. //
  6719.  
  6720. H225_Setup_UUIE_language::H225_Setup_UUIE_language(unsigned tag, PASN_Object::TagClass tagClass)
  6721.   : PASN_Array(tag, tagClass)
  6722. {
  6723. }
  6724.  
  6725.  
  6726. PASN_Object * H225_Setup_UUIE_language::CreateObject() const
  6727. {
  6728.   PASN_IA5String * obj = new PASN_IA5String;
  6729.   obj->SetConstraints(PASN_Object::FixedConstraint, 1, 32);
  6730.   return obj;
  6731. }
  6732.  
  6733.  
  6734. PASN_IA5String & H225_Setup_UUIE_language::operator[](PINDEX i) const
  6735. {
  6736.   return (PASN_IA5String &)array[i];
  6737. }
  6738.  
  6739.  
  6740. PObject * H225_Setup_UUIE_language::Clone() const
  6741. {
  6742. #ifndef PASN_LEANANDMEAN
  6743.   PAssert(IsClass(H225_Setup_UUIE_language::Class()), PInvalidCast);
  6744. #endif
  6745.   return new H225_Setup_UUIE_language(*this);
  6746. }
  6747.  
  6748.  
  6749. //
  6750. // ArrayOf_SupportedProtocols
  6751. //
  6752.  
  6753. H225_ArrayOf_SupportedProtocols::H225_ArrayOf_SupportedProtocols(unsigned tag, PASN_Object::TagClass tagClass)
  6754.   : PASN_Array(tag, tagClass)
  6755. {
  6756. }
  6757.  
  6758.  
  6759. PASN_Object * H225_ArrayOf_SupportedProtocols::CreateObject() const
  6760. {
  6761.   return new H225_SupportedProtocols;
  6762. }
  6763.  
  6764.  
  6765. H225_SupportedProtocols & H225_ArrayOf_SupportedProtocols::operator[](PINDEX i) const
  6766. {
  6767.   return (H225_SupportedProtocols &)array[i];
  6768. }
  6769.  
  6770.  
  6771. PObject * H225_ArrayOf_SupportedProtocols::Clone() const
  6772. {
  6773. #ifndef PASN_LEANANDMEAN
  6774.   PAssert(IsClass(H225_ArrayOf_SupportedProtocols::Class()), PInvalidCast);
  6775. #endif
  6776.   return new H225_ArrayOf_SupportedProtocols(*this);
  6777. }
  6778.  
  6779.  
  6780. //
  6781. // ArrayOf_FeatureDescriptor
  6782. //
  6783.  
  6784. H225_ArrayOf_FeatureDescriptor::H225_ArrayOf_FeatureDescriptor(unsigned tag, PASN_Object::TagClass tagClass)
  6785.   : PASN_Array(tag, tagClass)
  6786. {
  6787. }
  6788.  
  6789.  
  6790. PASN_Object * H225_ArrayOf_FeatureDescriptor::CreateObject() const
  6791. {
  6792.   return new H225_FeatureDescriptor;
  6793. }
  6794.  
  6795.  
  6796. H225_FeatureDescriptor & H225_ArrayOf_FeatureDescriptor::operator[](PINDEX i) const
  6797. {
  6798.   return (H225_FeatureDescriptor &)array[i];
  6799. }
  6800.  
  6801.  
  6802. PObject * H225_ArrayOf_FeatureDescriptor::Clone() const
  6803. {
  6804. #ifndef PASN_LEANANDMEAN
  6805.   PAssert(IsClass(H225_ArrayOf_FeatureDescriptor::Class()), PInvalidCast);
  6806. #endif
  6807.   return new H225_ArrayOf_FeatureDescriptor(*this);
  6808. }
  6809.  
  6810.  
  6811. //
  6812. // ArrayOf_ExtendedAliasAddress
  6813. //
  6814.  
  6815. H225_ArrayOf_ExtendedAliasAddress::H225_ArrayOf_ExtendedAliasAddress(unsigned tag, PASN_Object::TagClass tagClass)
  6816.   : PASN_Array(tag, tagClass)
  6817. {
  6818. }
  6819.  
  6820.  
  6821. PASN_Object * H225_ArrayOf_ExtendedAliasAddress::CreateObject() const
  6822. {
  6823.   return new H225_ExtendedAliasAddress;
  6824. }
  6825.  
  6826.  
  6827. H225_ExtendedAliasAddress & H225_ArrayOf_ExtendedAliasAddress::operator[](PINDEX i) const
  6828. {
  6829.   return (H225_ExtendedAliasAddress &)array[i];
  6830. }
  6831.  
  6832.  
  6833. PObject * H225_ArrayOf_ExtendedAliasAddress::Clone() const
  6834. {
  6835. #ifndef PASN_LEANANDMEAN
  6836.   PAssert(IsClass(H225_ArrayOf_ExtendedAliasAddress::Class()), PInvalidCast);
  6837. #endif
  6838.   return new H225_ArrayOf_ExtendedAliasAddress(*this);
  6839. }
  6840.  
  6841.  
  6842. //
  6843. // ArrayOf_ConferenceList
  6844. //
  6845.  
  6846. H225_ArrayOf_ConferenceList::H225_ArrayOf_ConferenceList(unsigned tag, PASN_Object::TagClass tagClass)
  6847.   : PASN_Array(tag, tagClass)
  6848. {
  6849. }
  6850.  
  6851.  
  6852. PASN_Object * H225_ArrayOf_ConferenceList::CreateObject() const
  6853. {
  6854.   return new H225_ConferenceList;
  6855. }
  6856.  
  6857.  
  6858. H225_ConferenceList & H225_ArrayOf_ConferenceList::operator[](PINDEX i) const
  6859. {
  6860.   return (H225_ConferenceList &)array[i];
  6861. }
  6862.  
  6863.  
  6864. PObject * H225_ArrayOf_ConferenceList::Clone() const
  6865. {
  6866. #ifndef PASN_LEANANDMEAN
  6867.   PAssert(IsClass(H225_ArrayOf_ConferenceList::Class()), PInvalidCast);
  6868. #endif
  6869.   return new H225_ArrayOf_ConferenceList(*this);
  6870. }
  6871.  
  6872.  
  6873. //
  6874. // TransportAddress_ipAddress
  6875. //
  6876.  
  6877. H225_TransportAddress_ipAddress::H225_TransportAddress_ipAddress(unsigned tag, PASN_Object::TagClass tagClass)
  6878.   : PASN_Sequence(tag, tagClass, 0, FALSE, 0)
  6879. {
  6880.   m_ip.SetConstraints(PASN_Object::FixedConstraint, 4);
  6881.   m_port.SetConstraints(PASN_Object::FixedConstraint, 0, 65535);
  6882. }
  6883.  
  6884.  
  6885. #ifndef PASN_NOPRINTON
  6886. void H225_TransportAddress_ipAddress::PrintOn(ostream & strm) const
  6887. {
  6888.   int indent = strm.precision() + 2;
  6889.   strm << "{\n";
  6890.   strm << setw(indent+5) << "ip = " << setprecision(indent) << m_ip << '\n';
  6891.   strm << setw(indent+7) << "port = " << setprecision(indent) << m_port << '\n';
  6892.   strm << setw(indent-1) << "}";
  6893. }
  6894. #endif
  6895.  
  6896.  
  6897. PObject::Comparison H225_TransportAddress_ipAddress::Compare(const PObject & obj) const
  6898. {
  6899. #ifndef PASN_LEANANDMEAN
  6900.   PAssert(IsDescendant(H225_TransportAddress_ipAddress::Class()), PInvalidCast);
  6901. #endif
  6902.   const H225_TransportAddress_ipAddress & other = (const H225_TransportAddress_ipAddress &)obj;
  6903.  
  6904.   Comparison result;
  6905.  
  6906.   if ((result = m_ip.Compare(other.m_ip)) != EqualTo)
  6907.     return result;
  6908.   if ((result = m_port.Compare(other.m_port)) != EqualTo)
  6909.     return result;
  6910.  
  6911.   return PASN_Sequence::Compare(other);
  6912. }
  6913.  
  6914.  
  6915. PINDEX H225_TransportAddress_ipAddress::GetDataLength() const
  6916. {
  6917.   PINDEX length = 0;
  6918.   length += m_ip.GetObjectLength();
  6919.   length += m_port.GetObjectLength();
  6920.   return length;
  6921. }
  6922.  
  6923.  
  6924. BOOL H225_TransportAddress_ipAddress::Decode(PASN_Stream & strm)
  6925. {
  6926.   if (!PreambleDecode(strm))
  6927.     return FALSE;
  6928.  
  6929.   if (!m_ip.Decode(strm))
  6930.     return FALSE;
  6931.   if (!m_port.Decode(strm))
  6932.     return FALSE;
  6933.  
  6934.   return UnknownExtensionsDecode(strm);
  6935. }
  6936.  
  6937.  
  6938. void H225_TransportAddress_ipAddress::Encode(PASN_Stream & strm) const
  6939. {
  6940.   PreambleEncode(strm);
  6941.  
  6942.   m_ip.Encode(strm);
  6943.   m_port.Encode(strm);
  6944.  
  6945.   UnknownExtensionsEncode(strm);
  6946. }
  6947.  
  6948.  
  6949. PObject * H225_TransportAddress_ipAddress::Clone() const
  6950. {
  6951. #ifndef PASN_LEANANDMEAN
  6952.   PAssert(IsClass(H225_TransportAddress_ipAddress::Class()), PInvalidCast);
  6953. #endif
  6954.   return new H225_TransportAddress_ipAddress(*this);
  6955. }
  6956.  
  6957.  
  6958. //
  6959. // TransportAddress_ipxAddress
  6960. //
  6961.  
  6962. H225_TransportAddress_ipxAddress::H225_TransportAddress_ipxAddress(unsigned tag, PASN_Object::TagClass tagClass)
  6963.   : PASN_Sequence(tag, tagClass, 0, FALSE, 0)
  6964. {
  6965.   m_node.SetConstraints(PASN_Object::FixedConstraint, 6);
  6966.   m_netnum.SetConstraints(PASN_Object::FixedConstraint, 4);
  6967.   m_port.SetConstraints(PASN_Object::FixedConstraint, 2);
  6968. }
  6969.  
  6970.  
  6971. #ifndef PASN_NOPRINTON
  6972. void H225_TransportAddress_ipxAddress::PrintOn(ostream & strm) const
  6973. {
  6974.   int indent = strm.precision() + 2;
  6975.   strm << "{\n";
  6976.   strm << setw(indent+7) << "node = " << setprecision(indent) << m_node << '\n';
  6977.   strm << setw(indent+9) << "netnum = " << setprecision(indent) << m_netnum << '\n';
  6978.   strm << setw(indent+7) << "port = " << setprecision(indent) << m_port << '\n';
  6979.   strm << setw(indent-1) << "}";
  6980. }
  6981. #endif
  6982.  
  6983.  
  6984. PObject::Comparison H225_TransportAddress_ipxAddress::Compare(const PObject & obj) const
  6985. {
  6986. #ifndef PASN_LEANANDMEAN
  6987.   PAssert(IsDescendant(H225_TransportAddress_ipxAddress::Class()), PInvalidCast);
  6988. #endif
  6989.   const H225_TransportAddress_ipxAddress & other = (const H225_TransportAddress_ipxAddress &)obj;
  6990.  
  6991.   Comparison result;
  6992.  
  6993.   if ((result = m_node.Compare(other.m_node)) != EqualTo)
  6994.     return result;
  6995.   if ((result = m_netnum.Compare(other.m_netnum)) != EqualTo)
  6996.     return result;
  6997.   if ((result = m_port.Compare(other.m_port)) != EqualTo)
  6998.     return result;
  6999.  
  7000.   return PASN_Sequence::Compare(other);
  7001. }
  7002.  
  7003.  
  7004. PINDEX H225_TransportAddress_ipxAddress::GetDataLength() const
  7005. {
  7006.   PINDEX length = 0;
  7007.   length += m_node.GetObjectLength();
  7008.   length += m_netnum.GetObjectLength();
  7009.   length += m_port.GetObjectLength();
  7010.   return length;
  7011. }
  7012.  
  7013.  
  7014. BOOL H225_TransportAddress_ipxAddress::Decode(PASN_Stream & strm)
  7015. {
  7016.   if (!PreambleDecode(strm))
  7017.     return FALSE;
  7018.  
  7019.   if (!m_node.Decode(strm))
  7020.     return FALSE;
  7021.   if (!m_netnum.Decode(strm))
  7022.     return FALSE;
  7023.   if (!m_port.Decode(strm))
  7024.     return FALSE;
  7025.  
  7026.   return UnknownExtensionsDecode(strm);
  7027. }
  7028.  
  7029.  
  7030. void H225_TransportAddress_ipxAddress::Encode(PASN_Stream & strm) const
  7031. {
  7032.   PreambleEncode(strm);
  7033.  
  7034.   m_node.Encode(strm);
  7035.   m_netnum.Encode(strm);
  7036.   m_port.Encode(strm);
  7037.  
  7038.   UnknownExtensionsEncode(strm);
  7039. }
  7040.  
  7041.  
  7042. PObject * H225_TransportAddress_ipxAddress::Clone() const
  7043. {
  7044. #ifndef PASN_LEANANDMEAN
  7045.   PAssert(IsClass(H225_TransportAddress_ipxAddress::Class()), PInvalidCast);
  7046. #endif
  7047.   return new H225_TransportAddress_ipxAddress(*this);
  7048. }
  7049.  
  7050.  
  7051. //
  7052. // TransportAddress_ip6Address
  7053. //
  7054.  
  7055. H225_TransportAddress_ip6Address::H225_TransportAddress_ip6Address(unsigned tag, PASN_Object::TagClass tagClass)
  7056.   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
  7057. {
  7058.   m_ip.SetConstraints(PASN_Object::FixedConstraint, 16);
  7059.   m_port.SetConstraints(PASN_Object::FixedConstraint, 0, 65535);
  7060. }
  7061.  
  7062.  
  7063. #ifndef PASN_NOPRINTON
  7064. void H225_TransportAddress_ip6Address::PrintOn(ostream & strm) const
  7065. {
  7066.   int indent = strm.precision() + 2;
  7067.   strm << "{\n";
  7068.   strm << setw(indent+5) << "ip = " << setprecision(indent) << m_ip << '\n';
  7069.   strm << setw(indent+7) << "port = " << setprecision(indent) << m_port << '\n';
  7070.   strm << setw(indent-1) << "}";
  7071. }
  7072. #endif
  7073.  
  7074.  
  7075. PObject::Comparison H225_TransportAddress_ip6Address::Compare(const PObject & obj) const
  7076. {
  7077. #ifndef PASN_LEANANDMEAN
  7078.   PAssert(IsDescendant(H225_TransportAddress_ip6Address::Class()), PInvalidCast);
  7079. #endif
  7080.   const H225_TransportAddress_ip6Address & other = (const H225_TransportAddress_ip6Address &)obj;
  7081.  
  7082.   Comparison result;
  7083.  
  7084.   if ((result = m_ip.Compare(other.m_ip)) != EqualTo)
  7085.     return result;
  7086.   if ((result = m_port.Compare(other.m_port)) != EqualTo)
  7087.     return result;
  7088.  
  7089.   return PASN_Sequence::Compare(other);
  7090. }
  7091.  
  7092.  
  7093. PINDEX H225_TransportAddress_ip6Address::GetDataLength() const
  7094. {
  7095.   PINDEX length = 0;
  7096.   length += m_ip.GetObjectLength();
  7097.   length += m_port.GetObjectLength();
  7098.   return length;
  7099. }
  7100.  
  7101.  
  7102. BOOL H225_TransportAddress_ip6Address::Decode(PASN_Stream & strm)
  7103. {
  7104.   if (!PreambleDecode(strm))
  7105.     return FALSE;
  7106.  
  7107.   if (!m_ip.Decode(strm))
  7108.     return FALSE;
  7109.   if (!m_port.Decode(strm))
  7110.     return FALSE;
  7111.  
  7112.   return UnknownExtensionsDecode(strm);
  7113. }
  7114.  
  7115.  
  7116. void H225_TransportAddress_ip6Address::Encode(PASN_Stream & strm) const
  7117. {
  7118.   PreambleEncode(strm);
  7119.  
  7120.   m_ip.Encode(strm);
  7121.   m_port.Encode(strm);
  7122.  
  7123.   UnknownExtensionsEncode(strm);
  7124. }
  7125.  
  7126.  
  7127. PObject * H225_TransportAddress_ip6Address::Clone() const
  7128. {
  7129. #ifndef PASN_LEANANDMEAN
  7130.   PAssert(IsClass(H225_TransportAddress_ip6Address::Class()), PInvalidCast);
  7131. #endif
  7132.   return new H225_TransportAddress_ip6Address(*this);
  7133. }
  7134.  
  7135.  
  7136. //
  7137. // ArrayOf_TunnelledProtocol
  7138. //
  7139.  
  7140. H225_ArrayOf_TunnelledProtocol::H225_ArrayOf_TunnelledProtocol(unsigned tag, PASN_Object::TagClass tagClass)
  7141.   : PASN_Array(tag, tagClass)
  7142. {
  7143. }
  7144.  
  7145.  
  7146. PASN_Object * H225_ArrayOf_TunnelledProtocol::CreateObject() const
  7147. {
  7148.   return new H225_TunnelledProtocol;
  7149. }
  7150.  
  7151.  
  7152. H225_TunnelledProtocol & H225_ArrayOf_TunnelledProtocol::operator[](PINDEX i) const
  7153. {
  7154.   return (H225_TunnelledProtocol &)array[i];
  7155. }
  7156.  
  7157.  
  7158. PObject * H225_ArrayOf_TunnelledProtocol::Clone() const
  7159. {
  7160. #ifndef PASN_LEANANDMEAN
  7161.   PAssert(IsClass(H225_ArrayOf_TunnelledProtocol::Class()), PInvalidCast);
  7162. #endif
  7163.   return new H225_ArrayOf_TunnelledProtocol(*this);
  7164. }
  7165.  
  7166.  
  7167. //
  7168. // ArrayOf_DataRate
  7169. //
  7170.  
  7171. H225_ArrayOf_DataRate::H225_ArrayOf_DataRate(unsigned tag, PASN_Object::TagClass tagClass)
  7172.   : PASN_Array(tag, tagClass)
  7173. {
  7174. }
  7175.  
  7176.  
  7177. PASN_Object * H225_ArrayOf_DataRate::CreateObject() const
  7178. {
  7179.   return new H225_DataRate;
  7180. }
  7181.  
  7182.  
  7183. H225_DataRate & H225_ArrayOf_DataRate::operator[](PINDEX i) const
  7184. {
  7185.   return (H225_DataRate &)array[i];
  7186. }
  7187.  
  7188.  
  7189. PObject * H225_ArrayOf_DataRate::Clone() const
  7190. {
  7191. #ifndef PASN_LEANANDMEAN
  7192.   PAssert(IsClass(H225_ArrayOf_DataRate::Class()), PInvalidCast);
  7193. #endif
  7194.   return new H225_ArrayOf_DataRate(*this);
  7195. }
  7196.  
  7197.  
  7198. //
  7199. // ArrayOf_SupportedPrefix
  7200. //
  7201.  
  7202. H225_ArrayOf_SupportedPrefix::H225_ArrayOf_SupportedPrefix(unsigned tag, PASN_Object::TagClass tagClass)
  7203.   : PASN_Array(tag, tagClass)
  7204. {
  7205. }
  7206.  
  7207.  
  7208. PASN_Object * H225_ArrayOf_SupportedPrefix::CreateObject() const
  7209. {
  7210.   return new H225_SupportedPrefix;
  7211. }
  7212.  
  7213.  
  7214. H225_SupportedPrefix & H225_ArrayOf_SupportedPrefix::operator[](PINDEX i) const
  7215. {
  7216.   return (H225_SupportedPrefix &)array[i];
  7217. }
  7218.  
  7219.  
  7220. PObject * H225_ArrayOf_SupportedPrefix::Clone() const
  7221. {
  7222. #ifndef PASN_LEANANDMEAN
  7223.   PAssert(IsClass(H225_ArrayOf_SupportedPrefix::Class()), PInvalidCast);
  7224. #endif
  7225.   return new H225_ArrayOf_SupportedPrefix(*this);
  7226. }
  7227.  
  7228.  
  7229. //
  7230. // TunnelledProtocol_id
  7231. //
  7232.  
  7233. H225_TunnelledProtocol_id::H225_TunnelledProtocol_id(unsigned tag, PASN_Object::TagClass tagClass)
  7234.   : PASN_Choice(tag, tagClass, 2, TRUE
  7235. #ifndef PASN_NOPRINTON
  7236.       , "tunnelledProtocolObjectID "
  7237.         "tunnelledProtocolAlternateID "
  7238. #endif
  7239.     )
  7240. {
  7241. }
  7242.  
  7243.  
  7244. #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
  7245. H225_TunnelledProtocol_id::operator H225_TunnelledProtocolAlternateIdentifier &() const
  7246. #else
  7247. H225_TunnelledProtocol_id::operator H225_TunnelledProtocolAlternateIdentifier &()
  7248. {
  7249. #ifndef PASN_LEANANDMEAN
  7250.   PAssert(PAssertNULL(choice)->IsDescendant(H225_TunnelledProtocolAlternateIdentifier::Class()), PInvalidCast);
  7251. #endif
  7252.   return *(H225_TunnelledProtocolAlternateIdentifier *)choice;
  7253. }
  7254.  
  7255.  
  7256. H225_TunnelledProtocol_id::operator const H225_TunnelledProtocolAlternateIdentifier &() const
  7257. #endif
  7258. {
  7259. #ifndef PASN_LEANANDMEAN
  7260.   PAssert(PAssertNULL(choice)->IsDescendant(H225_TunnelledProtocolAlternateIdentifier::Class()), PInvalidCast);
  7261. #endif
  7262.   return *(H225_TunnelledProtocolAlternateIdentifier *)choice;
  7263. }
  7264.  
  7265.  
  7266. BOOL H225_TunnelledProtocol_id::CreateObject()
  7267. {
  7268.   switch (tag) {
  7269.     case e_tunnelledProtocolObjectID :
  7270.       choice = new PASN_ObjectId();
  7271.       return TRUE;
  7272.     case e_tunnelledProtocolAlternateID :
  7273.       choice = new H225_TunnelledProtocolAlternateIdentifier();
  7274.       return TRUE;
  7275.   }
  7276.  
  7277.   choice = NULL;
  7278.   return FALSE;
  7279. }
  7280.  
  7281.  
  7282. PObject * H225_TunnelledProtocol_id::Clone() const
  7283. {
  7284. #ifndef PASN_LEANANDMEAN
  7285.   PAssert(IsClass(H225_TunnelledProtocol_id::Class()), PInvalidCast);
  7286. #endif
  7287.   return new H225_TunnelledProtocol_id(*this);
  7288. }
  7289.  
  7290.  
  7291. //
  7292. // AddressPattern_range
  7293. //
  7294.  
  7295. H225_AddressPattern_range::H225_AddressPattern_range(unsigned tag, PASN_Object::TagClass tagClass)
  7296.   : PASN_Sequence(tag, tagClass, 0, FALSE, 0)
  7297. {
  7298. }
  7299.  
  7300.  
  7301. #ifndef PASN_NOPRINTON
  7302. void H225_AddressPattern_range::PrintOn(ostream & strm) const
  7303. {
  7304.   int indent = strm.precision() + 2;
  7305.   strm << "{\n";
  7306.   strm << setw(indent+15) << "startOfRange = " << setprecision(indent) << m_startOfRange << '\n';
  7307.   strm << setw(indent+13) << "endOfRange = " << setprecision(indent) << m_endOfRange << '\n';
  7308.   strm << setw(indent-1) << "}";
  7309. }
  7310. #endif
  7311.  
  7312.  
  7313. PObject::Comparison H225_AddressPattern_range::Compare(const PObject & obj) const
  7314. {
  7315. #ifndef PASN_LEANANDMEAN
  7316.   PAssert(IsDescendant(H225_AddressPattern_range::Class()), PInvalidCast);
  7317. #endif
  7318.   const H225_AddressPattern_range & other = (const H225_AddressPattern_range &)obj;
  7319.  
  7320.   Comparison result;
  7321.  
  7322.   if ((result = m_startOfRange.Compare(other.m_startOfRange)) != EqualTo)
  7323.     return result;
  7324.   if ((result = m_endOfRange.Compare(other.m_endOfRange)) != EqualTo)
  7325.     return result;
  7326.  
  7327.   return PASN_Sequence::Compare(other);
  7328. }
  7329.  
  7330.  
  7331. PINDEX H225_AddressPattern_range::GetDataLength() const
  7332. {
  7333.   PINDEX length = 0;
  7334.   length += m_startOfRange.GetObjectLength();
  7335.   length += m_endOfRange.GetObjectLength();
  7336.   return length;
  7337. }
  7338.  
  7339.  
  7340. BOOL H225_AddressPattern_range::Decode(PASN_Stream & strm)
  7341. {
  7342.   if (!PreambleDecode(strm))
  7343.     return FALSE;
  7344.  
  7345.   if (!m_startOfRange.Decode(strm))
  7346.     return FALSE;
  7347.   if (!m_endOfRange.Decode(strm))
  7348.     return FALSE;
  7349.  
  7350.   return UnknownExtensionsDecode(strm);
  7351. }
  7352.  
  7353.  
  7354. void H225_AddressPattern_range::Encode(PASN_Stream & strm) const
  7355. {
  7356.   PreambleEncode(strm);
  7357.  
  7358.   m_startOfRange.Encode(strm);
  7359.   m_endOfRange.Encode(strm);
  7360.  
  7361.   UnknownExtensionsEncode(strm);
  7362. }
  7363.  
  7364.  
  7365. PObject * H225_AddressPattern_range::Clone() const
  7366. {
  7367. #ifndef PASN_LEANANDMEAN
  7368.   PAssert(IsClass(H225_AddressPattern_range::Class()), PInvalidCast);
  7369. #endif
  7370.   return new H225_AddressPattern_range(*this);
  7371. }
  7372.  
  7373.  
  7374. //
  7375. // ANSI-41-UIM_system-id
  7376. //
  7377.  
  7378. H225_ANSI_41_UIM_system_id::H225_ANSI_41_UIM_system_id(unsigned tag, PASN_Object::TagClass tagClass)
  7379.   : PASN_Choice(tag, tagClass, 2, TRUE
  7380. #ifndef PASN_NOPRINTON
  7381.       , "sid "
  7382.         "mid "
  7383. #endif
  7384.     )
  7385. {
  7386. }
  7387.  
  7388.  
  7389. BOOL H225_ANSI_41_UIM_system_id::CreateObject()
  7390. {
  7391.   switch (tag) {
  7392.     case e_sid :
  7393.       choice = new PASN_IA5String();
  7394.       choice->SetConstraints(PASN_Object::FixedConstraint, 1, 4);
  7395.       return TRUE;
  7396.     case e_mid :
  7397.       choice = new PASN_IA5String();
  7398.       choice->SetConstraints(PASN_Object::FixedConstraint, 1, 4);
  7399.       return TRUE;
  7400.   }
  7401.  
  7402.   choice = NULL;
  7403.   return FALSE;
  7404. }
  7405.  
  7406.  
  7407. PObject * H225_ANSI_41_UIM_system_id::Clone() const
  7408. {
  7409. #ifndef PASN_LEANANDMEAN
  7410.   PAssert(IsClass(H225_ANSI_41_UIM_system_id::Class()), PInvalidCast);
  7411. #endif
  7412.   return new H225_ANSI_41_UIM_system_id(*this);
  7413. }
  7414.  
  7415.  
  7416. //
  7417. // ArrayOf_TransportAddress
  7418. //
  7419.  
  7420. H225_ArrayOf_TransportAddress::H225_ArrayOf_TransportAddress(unsigned tag, PASN_Object::TagClass tagClass)
  7421.   : PASN_Array(tag, tagClass)
  7422. {
  7423. }
  7424.  
  7425.  
  7426. PASN_Object * H225_ArrayOf_TransportAddress::CreateObject() const
  7427. {
  7428.   return new H225_TransportAddress;
  7429. }
  7430.  
  7431.  
  7432. H225_TransportAddress & H225_ArrayOf_TransportAddress::operator[](PINDEX i) const
  7433. {
  7434.   return (H225_TransportAddress &)array[i];
  7435. }
  7436.  
  7437.  
  7438. PObject * H225_ArrayOf_TransportAddress::Clone() const
  7439. {
  7440. #ifndef PASN_LEANANDMEAN
  7441.   PAssert(IsClass(H225_ArrayOf_TransportAddress::Class()), PInvalidCast);
  7442. #endif
  7443.   return new H225_ArrayOf_TransportAddress(*this);
  7444. }
  7445.  
  7446.  
  7447. //
  7448. // ArrayOf_AlternateGK
  7449. //
  7450.  
  7451. H225_ArrayOf_AlternateGK::H225_ArrayOf_AlternateGK(unsigned tag, PASN_Object::TagClass tagClass)
  7452.   : PASN_Array(tag, tagClass)
  7453. {
  7454. }
  7455.  
  7456.  
  7457. PASN_Object * H225_ArrayOf_AlternateGK::CreateObject() const
  7458. {
  7459.   return new H225_AlternateGK;
  7460. }
  7461.  
  7462.  
  7463. H225_AlternateGK & H225_ArrayOf_AlternateGK::operator[](PINDEX i) const
  7464. {
  7465.   return (H225_AlternateGK &)array[i];
  7466. }
  7467.  
  7468.  
  7469. PObject * H225_ArrayOf_AlternateGK::Clone() const
  7470. {
  7471. #ifndef PASN_LEANANDMEAN
  7472.   PAssert(IsClass(H225_ArrayOf_AlternateGK::Class()), PInvalidCast);
  7473. #endif
  7474.   return new H225_ArrayOf_AlternateGK(*this);
  7475. }
  7476.  
  7477.  
  7478. //
  7479. // CryptoH323Token_cryptoEPPwdHash
  7480. //
  7481.  
  7482. H225_CryptoH323Token_cryptoEPPwdHash::H225_CryptoH323Token_cryptoEPPwdHash(unsigned tag, PASN_Object::TagClass tagClass)
  7483.   : PASN_Sequence(tag, tagClass, 0, FALSE, 0)
  7484. {
  7485. }
  7486.  
  7487.  
  7488. #ifndef PASN_NOPRINTON
  7489. void H225_CryptoH323Token_cryptoEPPwdHash::PrintOn(ostream & strm) const
  7490. {
  7491.   int indent = strm.precision() + 2;
  7492.   strm << "{\n";
  7493.   strm << setw(indent+8) << "alias = " << setprecision(indent) << m_alias << '\n';
  7494.   strm << setw(indent+12) << "timeStamp = " << setprecision(indent) << m_timeStamp << '\n';
  7495.   strm << setw(indent+8) << "token = " << setprecision(indent) << m_token << '\n';
  7496.   strm << setw(indent-1) << "}";
  7497. }
  7498. #endif
  7499.  
  7500.  
  7501. PObject::Comparison H225_CryptoH323Token_cryptoEPPwdHash::Compare(const PObject & obj) const
  7502. {
  7503. #ifndef PASN_LEANANDMEAN
  7504.   PAssert(IsDescendant(H225_CryptoH323Token_cryptoEPPwdHash::Class()), PInvalidCast);
  7505. #endif
  7506.   const H225_CryptoH323Token_cryptoEPPwdHash & other = (const H225_CryptoH323Token_cryptoEPPwdHash &)obj;
  7507.  
  7508.   Comparison result;
  7509.  
  7510.   if ((result = m_alias.Compare(other.m_alias)) != EqualTo)
  7511.     return result;
  7512.   if ((result = m_timeStamp.Compare(other.m_timeStamp)) != EqualTo)
  7513.     return result;
  7514.   if ((result = m_token.Compare(other.m_token)) != EqualTo)
  7515.     return result;
  7516.  
  7517.   return PASN_Sequence::Compare(other);
  7518. }
  7519.  
  7520.  
  7521. PINDEX H225_CryptoH323Token_cryptoEPPwdHash::GetDataLength() const
  7522. {
  7523.   PINDEX length = 0;
  7524.   length += m_alias.GetObjectLength();
  7525.   length += m_timeStamp.GetObjectLength();
  7526.   length += m_token.GetObjectLength();
  7527.   return length;
  7528. }
  7529.  
  7530.  
  7531. BOOL H225_CryptoH323Token_cryptoEPPwdHash::Decode(PASN_Stream & strm)
  7532. {
  7533.   if (!PreambleDecode(strm))
  7534.     return FALSE;
  7535.  
  7536.   if (!m_alias.Decode(strm))
  7537.     return FALSE;
  7538.   if (!m_timeStamp.Decode(strm))
  7539.     return FALSE;
  7540.   if (!m_token.Decode(strm))
  7541.     return FALSE;
  7542.  
  7543.   return UnknownExtensionsDecode(strm);
  7544. }
  7545.  
  7546.  
  7547. void H225_CryptoH323Token_cryptoEPPwdHash::Encode(PASN_Stream & strm) const
  7548. {
  7549.   PreambleEncode(strm);
  7550.  
  7551.   m_alias.Encode(strm);
  7552.   m_timeStamp.Encode(strm);
  7553.   m_token.Encode(strm);
  7554.  
  7555.   UnknownExtensionsEncode(strm);
  7556. }
  7557.  
  7558.  
  7559. PObject * H225_CryptoH323Token_cryptoEPPwdHash::Clone() const
  7560. {
  7561. #ifndef PASN_LEANANDMEAN
  7562.   PAssert(IsClass(H225_CryptoH323Token_cryptoEPPwdHash::Class()), PInvalidCast);
  7563. #endif
  7564.   return new H225_CryptoH323Token_cryptoEPPwdHash(*this);
  7565. }
  7566.  
  7567.  
  7568. //
  7569. // CryptoH323Token_cryptoGKPwdHash
  7570. //
  7571.  
  7572. H225_CryptoH323Token_cryptoGKPwdHash::H225_CryptoH323Token_cryptoGKPwdHash(unsigned tag, PASN_Object::TagClass tagClass)
  7573.   : PASN_Sequence(tag, tagClass, 0, FALSE, 0)
  7574. {
  7575. }
  7576.  
  7577.  
  7578. #ifndef PASN_NOPRINTON
  7579. void H225_CryptoH323Token_cryptoGKPwdHash::PrintOn(ostream & strm) const
  7580. {
  7581.   int indent = strm.precision() + 2;
  7582.   strm << "{\n";
  7583.   strm << setw(indent+15) << "gatekeeperId = " << setprecision(indent) << m_gatekeeperId << '\n';
  7584.   strm << setw(indent+12) << "timeStamp = " << setprecision(indent) << m_timeStamp << '\n';
  7585.   strm << setw(indent+8) << "token = " << setprecision(indent) << m_token << '\n';
  7586.   strm << setw(indent-1) << "}";
  7587. }
  7588. #endif
  7589.  
  7590.  
  7591. PObject::Comparison H225_CryptoH323Token_cryptoGKPwdHash::Compare(const PObject & obj) const
  7592. {
  7593. #ifndef PASN_LEANANDMEAN
  7594.   PAssert(IsDescendant(H225_CryptoH323Token_cryptoGKPwdHash::Class()), PInvalidCast);
  7595. #endif
  7596.   const H225_CryptoH323Token_cryptoGKPwdHash & other = (const H225_CryptoH323Token_cryptoGKPwdHash &)obj;
  7597.  
  7598.   Comparison result;
  7599.  
  7600.   if ((result = m_gatekeeperId.Compare(other.m_gatekeeperId)) != EqualTo)
  7601.     return result;
  7602.   if ((result = m_timeStamp.Compare(other.m_timeStamp)) != EqualTo)
  7603.     return result;
  7604.   if ((result = m_token.Compare(other.m_token)) != EqualTo)
  7605.     return result;
  7606.  
  7607.   return PASN_Sequence::Compare(other);
  7608. }
  7609.  
  7610.  
  7611. PINDEX H225_CryptoH323Token_cryptoGKPwdHash::GetDataLength() const
  7612. {
  7613.   PINDEX length = 0;
  7614.   length += m_gatekeeperId.GetObjectLength();
  7615.   length += m_timeStamp.GetObjectLength();
  7616.   length += m_token.GetObjectLength();
  7617.   return length;
  7618. }
  7619.  
  7620.  
  7621. BOOL H225_CryptoH323Token_cryptoGKPwdHash::Decode(PASN_Stream & strm)
  7622. {
  7623.   if (!PreambleDecode(strm))
  7624.     return FALSE;
  7625.  
  7626.   if (!m_gatekeeperId.Decode(strm))
  7627.     return FALSE;
  7628.   if (!m_timeStamp.Decode(strm))
  7629.     return FALSE;
  7630.   if (!m_token.Decode(strm))
  7631.     return FALSE;
  7632.  
  7633.   return UnknownExtensionsDecode(strm);
  7634. }
  7635.  
  7636.  
  7637. void H225_CryptoH323Token_cryptoGKPwdHash::Encode(PASN_Stream & strm) const
  7638. {
  7639.   PreambleEncode(strm);
  7640.  
  7641.   m_gatekeeperId.Encode(strm);
  7642.   m_timeStamp.Encode(strm);
  7643.   m_token.Encode(strm);
  7644.  
  7645.   UnknownExtensionsEncode(strm);
  7646. }
  7647.  
  7648.  
  7649. PObject * H225_CryptoH323Token_cryptoGKPwdHash::Clone() const
  7650. {
  7651. #ifndef PASN_LEANANDMEAN
  7652.   PAssert(IsClass(H225_CryptoH323Token_cryptoGKPwdHash::Class()), PInvalidCast);
  7653. #endif
  7654.   return new H225_CryptoH323Token_cryptoGKPwdHash(*this);
  7655. }
  7656.  
  7657.  
  7658. //
  7659. // CapacityReportingSpecification_when
  7660. //
  7661.  
  7662. H225_CapacityReportingSpecification_when::H225_CapacityReportingSpecification_when(unsigned tag, PASN_Object::TagClass tagClass)
  7663.   : PASN_Sequence(tag, tagClass, 2, TRUE, 0)
  7664. {
  7665. }
  7666.  
  7667.  
  7668. #ifndef PASN_NOPRINTON
  7669. void H225_CapacityReportingSpecification_when::PrintOn(ostream & strm) const
  7670. {
  7671.   int indent = strm.precision() + 2;
  7672.   strm << "{\n";
  7673.   if (HasOptionalField(e_callStart))
  7674.     strm << setw(indent+12) << "callStart = " << setprecision(indent) << m_callStart << '\n';
  7675.   if (HasOptionalField(e_callEnd))
  7676.     strm << setw(indent+10) << "callEnd = " << setprecision(indent) << m_callEnd << '\n';
  7677.   strm << setw(indent-1) << "}";
  7678. }
  7679. #endif
  7680.  
  7681.  
  7682. PObject::Comparison H225_CapacityReportingSpecification_when::Compare(const PObject & obj) const
  7683. {
  7684. #ifndef PASN_LEANANDMEAN
  7685.   PAssert(IsDescendant(H225_CapacityReportingSpecification_when::Class()), PInvalidCast);
  7686. #endif
  7687.   const H225_CapacityReportingSpecification_when & other = (const H225_CapacityReportingSpecification_when &)obj;
  7688.  
  7689.   Comparison result;
  7690.  
  7691.   if ((result = m_callStart.Compare(other.m_callStart)) != EqualTo)
  7692.     return result;
  7693.   if ((result = m_callEnd.Compare(other.m_callEnd)) != EqualTo)
  7694.     return result;
  7695.  
  7696.   return PASN_Sequence::Compare(other);
  7697. }
  7698.  
  7699.  
  7700. PINDEX H225_CapacityReportingSpecification_when::GetDataLength() const
  7701. {
  7702.   PINDEX length = 0;
  7703.   if (HasOptionalField(e_callStart))
  7704.     length += m_callStart.GetObjectLength();
  7705.   if (HasOptionalField(e_callEnd))
  7706.     length += m_callEnd.GetObjectLength();
  7707.   return length;
  7708. }
  7709.  
  7710.  
  7711. BOOL H225_CapacityReportingSpecification_when::Decode(PASN_Stream & strm)
  7712. {
  7713.   if (!PreambleDecode(strm))
  7714.     return FALSE;
  7715.  
  7716.   if (HasOptionalField(e_callStart) && !m_callStart.Decode(strm))
  7717.     return FALSE;
  7718.   if (HasOptionalField(e_callEnd) && !m_callEnd.Decode(strm))
  7719.     return FALSE;
  7720.  
  7721.   return UnknownExtensionsDecode(strm);
  7722. }
  7723.  
  7724.  
  7725. void H225_CapacityReportingSpecification_when::Encode(PASN_Stream & strm) const
  7726. {
  7727.   PreambleEncode(strm);
  7728.  
  7729.   if (HasOptionalField(e_callStart))
  7730.     m_callStart.Encode(strm);
  7731.   if (HasOptionalField(e_callEnd))
  7732.     m_callEnd.Encode(strm);
  7733.  
  7734.   UnknownExtensionsEncode(strm);
  7735. }
  7736.  
  7737.  
  7738. PObject * H225_CapacityReportingSpecification_when::Clone() const
  7739. {
  7740. #ifndef PASN_LEANANDMEAN
  7741.   PAssert(IsClass(H225_CapacityReportingSpecification_when::Class()), PInvalidCast);
  7742. #endif
  7743.   return new H225_CapacityReportingSpecification_when(*this);
  7744. }
  7745.  
  7746.  
  7747. //
  7748. // ArrayOf_CallsAvailable
  7749. //
  7750.  
  7751. H225_ArrayOf_CallsAvailable::H225_ArrayOf_CallsAvailable(unsigned tag, PASN_Object::TagClass tagClass)
  7752.   : PASN_Array(tag, tagClass)
  7753. {
  7754. }
  7755.  
  7756.  
  7757. PASN_Object * H225_ArrayOf_CallsAvailable::CreateObject() const
  7758. {
  7759.   return new H225_CallsAvailable;
  7760. }
  7761.  
  7762.  
  7763. H225_CallsAvailable & H225_ArrayOf_CallsAvailable::operator[](PINDEX i) const
  7764. {
  7765.   return (H225_CallsAvailable &)array[i];
  7766. }
  7767.  
  7768.  
  7769. PObject * H225_ArrayOf_CallsAvailable::Clone() const
  7770. {
  7771. #ifndef PASN_LEANANDMEAN
  7772.   PAssert(IsClass(H225_ArrayOf_CallsAvailable::Class()), PInvalidCast);
  7773. #endif
  7774.   return new H225_ArrayOf_CallsAvailable(*this);
  7775. }
  7776.  
  7777.  
  7778. //
  7779. // CicInfo_cic
  7780. //
  7781.  
  7782. H225_CicInfo_cic::H225_CicInfo_cic(unsigned tag, PASN_Object::TagClass tagClass)
  7783.   : PASN_Array(tag, tagClass)
  7784. {
  7785. }
  7786.  
  7787.  
  7788. PASN_Object * H225_CicInfo_cic::CreateObject() const
  7789. {
  7790.   PASN_OctetString * obj = new PASN_OctetString;
  7791.   obj->SetConstraints(PASN_Object::FixedConstraint, 2, 4);
  7792.   return obj;
  7793. }
  7794.  
  7795.  
  7796. PASN_OctetString & H225_CicInfo_cic::operator[](PINDEX i) const
  7797. {
  7798.   return (PASN_OctetString &)array[i];
  7799. }
  7800.  
  7801.  
  7802. PObject * H225_CicInfo_cic::Clone() const
  7803. {
  7804. #ifndef PASN_LEANANDMEAN
  7805.   PAssert(IsClass(H225_CicInfo_cic::Class()), PInvalidCast);
  7806. #endif
  7807.   return new H225_CicInfo_cic(*this);
  7808. }
  7809.  
  7810.  
  7811. //
  7812. // GroupID_member
  7813. //
  7814.  
  7815. H225_GroupID_member::H225_GroupID_member(unsigned tag, PASN_Object::TagClass tagClass)
  7816.   : PASN_Array(tag, tagClass)
  7817. {
  7818. }
  7819.  
  7820.  
  7821. PASN_Object * H225_GroupID_member::CreateObject() const
  7822. {
  7823.   PASN_Integer * obj = new PASN_Integer;
  7824.   obj->SetConstraints(PASN_Object::FixedConstraint, 0, 65535);
  7825.   return obj;
  7826. }
  7827.  
  7828.  
  7829. PASN_Integer & H225_GroupID_member::operator[](PINDEX i) const
  7830. {
  7831.   return (PASN_Integer &)array[i];
  7832. }
  7833.  
  7834.  
  7835. PObject * H225_GroupID_member::Clone() const
  7836. {
  7837. #ifndef PASN_LEANANDMEAN
  7838.   PAssert(IsClass(H225_GroupID_member::Class()), PInvalidCast);
  7839. #endif
  7840.   return new H225_GroupID_member(*this);
  7841. }
  7842.  
  7843.  
  7844. //
  7845. // ServiceControlSession_reason
  7846. //
  7847.  
  7848. H225_ServiceControlSession_reason::H225_ServiceControlSession_reason(unsigned tag, PASN_Object::TagClass tagClass)
  7849.   : PASN_Choice(tag, tagClass, 3, TRUE
  7850. #ifndef PASN_NOPRINTON
  7851.       , "open "
  7852.         "refresh "
  7853.         "close "
  7854. #endif
  7855.     )
  7856. {
  7857. }
  7858.  
  7859.  
  7860. BOOL H225_ServiceControlSession_reason::CreateObject()
  7861. {
  7862.   choice = (tag <= e_close) ? new PASN_Null() : NULL;
  7863.   return choice != NULL;
  7864. }
  7865.  
  7866.  
  7867. PObject * H225_ServiceControlSession_reason::Clone() const
  7868. {
  7869. #ifndef PASN_LEANANDMEAN
  7870.   PAssert(IsClass(H225_ServiceControlSession_reason::Class()), PInvalidCast);
  7871. #endif
  7872.   return new H225_ServiceControlSession_reason(*this);
  7873. }
  7874.  
  7875.  
  7876. //
  7877. // RasUsageSpecification_when
  7878. //
  7879.  
  7880. H225_RasUsageSpecification_when::H225_RasUsageSpecification_when(unsigned tag, PASN_Object::TagClass tagClass)
  7881.   : PASN_Sequence(tag, tagClass, 3, TRUE, 0)
  7882. {
  7883. }
  7884.  
  7885.  
  7886. #ifndef PASN_NOPRINTON
  7887. void H225_RasUsageSpecification_when::PrintOn(ostream & strm) const
  7888. {
  7889.   int indent = strm.precision() + 2;
  7890.   strm << "{\n";
  7891.   if (HasOptionalField(e_start))
  7892.     strm << setw(indent+8) << "start = " << setprecision(indent) << m_start << '\n';
  7893.   if (HasOptionalField(e_end))
  7894.     strm << setw(indent+6) << "end = " << setprecision(indent) << m_end << '\n';
  7895.   if (HasOptionalField(e_inIrr))
  7896.     strm << setw(indent+8) << "inIrr = " << setprecision(indent) << m_inIrr << '\n';
  7897.   strm << setw(indent-1) << "}";
  7898. }
  7899. #endif
  7900.  
  7901.  
  7902. PObject::Comparison H225_RasUsageSpecification_when::Compare(const PObject & obj) const
  7903. {
  7904. #ifndef PASN_LEANANDMEAN
  7905.   PAssert(IsDescendant(H225_RasUsageSpecification_when::Class()), PInvalidCast);
  7906. #endif
  7907.   const H225_RasUsageSpecification_when & other = (const H225_RasUsageSpecification_when &)obj;
  7908.  
  7909.   Comparison result;
  7910.  
  7911.   if ((result = m_start.Compare(other.m_start)) != EqualTo)
  7912.     return result;
  7913.   if ((result = m_end.Compare(other.m_end)) != EqualTo)
  7914.     return result;
  7915.   if ((result = m_inIrr.Compare(other.m_inIrr)) != EqualTo)
  7916.     return result;
  7917.  
  7918.   return PASN_Sequence::Compare(other);
  7919. }
  7920.  
  7921.  
  7922. PINDEX H225_RasUsageSpecification_when::GetDataLength() const
  7923. {
  7924.   PINDEX length = 0;
  7925.   if (HasOptionalField(e_start))
  7926.     length += m_start.GetObjectLength();
  7927.   if (HasOptionalField(e_end))
  7928.     length += m_end.GetObjectLength();
  7929.   if (HasOptionalField(e_inIrr))
  7930.     length += m_inIrr.GetObjectLength();
  7931.   return length;
  7932. }
  7933.  
  7934.  
  7935. BOOL H225_RasUsageSpecification_when::Decode(PASN_Stream & strm)
  7936. {
  7937.   if (!PreambleDecode(strm))
  7938.     return FALSE;
  7939.  
  7940.   if (HasOptionalField(e_start) && !m_start.Decode(strm))
  7941.     return FALSE;
  7942.   if (HasOptionalField(e_end) && !m_end.Decode(strm))
  7943.     return FALSE;
  7944.   if (HasOptionalField(e_inIrr) && !m_inIrr.Decode(strm))
  7945.     return FALSE;
  7946.  
  7947.   return UnknownExtensionsDecode(strm);
  7948. }
  7949.  
  7950.  
  7951. void H225_RasUsageSpecification_when::Encode(PASN_Stream & strm) const
  7952. {
  7953.   PreambleEncode(strm);
  7954.  
  7955.   if (HasOptionalField(e_start))
  7956.     m_start.Encode(strm);
  7957.   if (HasOptionalField(e_end))
  7958.     m_end.Encode(strm);
  7959.   if (HasOptionalField(e_inIrr))
  7960.     m_inIrr.Encode(strm);
  7961.  
  7962.   UnknownExtensionsEncode(strm);
  7963. }
  7964.  
  7965.  
  7966. PObject * H225_RasUsageSpecification_when::Clone() const
  7967. {
  7968. #ifndef PASN_LEANANDMEAN
  7969.   PAssert(IsClass(H225_RasUsageSpecification_when::Class()), PInvalidCast);
  7970. #endif
  7971.   return new H225_RasUsageSpecification_when(*this);
  7972. }
  7973.  
  7974.  
  7975. //
  7976. // RasUsageSpecification_callStartingPoint
  7977. //
  7978.  
  7979. H225_RasUsageSpecification_callStartingPoint::H225_RasUsageSpecification_callStartingPoint(unsigned tag, PASN_Object::TagClass tagClass)
  7980.   : PASN_Sequence(tag, tagClass, 2, TRUE, 0)
  7981. {
  7982. }
  7983.  
  7984.  
  7985. #ifndef PASN_NOPRINTON
  7986. void H225_RasUsageSpecification_callStartingPoint::PrintOn(ostream & strm) const
  7987. {
  7988.   int indent = strm.precision() + 2;
  7989.   strm << "{\n";
  7990.   if (HasOptionalField(e_alerting))
  7991.     strm << setw(indent+11) << "alerting = " << setprecision(indent) << m_alerting << '\n';
  7992.   if (HasOptionalField(e_connect))
  7993.     strm << setw(indent+10) << "connect = " << setprecision(indent) << m_connect << '\n';
  7994.   strm << setw(indent-1) << "}";
  7995. }
  7996. #endif
  7997.  
  7998.  
  7999. PObject::Comparison H225_RasUsageSpecification_callStartingPoint::Compare(const PObject & obj) const
  8000. {
  8001. #ifndef PASN_LEANANDMEAN
  8002.   PAssert(IsDescendant(H225_RasUsageSpecification_callStartingPoint::Class()), PInvalidCast);
  8003. #endif
  8004.   const H225_RasUsageSpecification_callStartingPoint & other = (const H225_RasUsageSpecification_callStartingPoint &)obj;
  8005.  
  8006.   Comparison result;
  8007.  
  8008.   if ((result = m_alerting.Compare(other.m_alerting)) != EqualTo)
  8009.     return result;
  8010.   if ((result = m_connect.Compare(other.m_connect)) != EqualTo)
  8011.     return result;
  8012.  
  8013.   return PASN_Sequence::Compare(other);
  8014. }
  8015.  
  8016.  
  8017. PINDEX H225_RasUsageSpecification_callStartingPoint::GetDataLength() const
  8018. {
  8019.   PINDEX length = 0;
  8020.   if (HasOptionalField(e_alerting))
  8021.     length += m_alerting.GetObjectLength();
  8022.   if (HasOptionalField(e_connect))
  8023.     length += m_connect.GetObjectLength();
  8024.   return length;
  8025. }
  8026.  
  8027.  
  8028. BOOL H225_RasUsageSpecification_callStartingPoint::Decode(PASN_Stream & strm)
  8029. {
  8030.   if (!PreambleDecode(strm))
  8031.     return FALSE;
  8032.  
  8033.   if (HasOptionalField(e_alerting) && !m_alerting.Decode(strm))
  8034.     return FALSE;
  8035.   if (HasOptionalField(e_connect) && !m_connect.Decode(strm))
  8036.     return FALSE;
  8037.  
  8038.   return UnknownExtensionsDecode(strm);
  8039. }
  8040.  
  8041.  
  8042. void H225_RasUsageSpecification_callStartingPoint::Encode(PASN_Stream & strm) const
  8043. {
  8044.   PreambleEncode(strm);
  8045.  
  8046.   if (HasOptionalField(e_alerting))
  8047.     m_alerting.Encode(strm);
  8048.   if (HasOptionalField(e_connect))
  8049.     m_connect.Encode(strm);
  8050.  
  8051.   UnknownExtensionsEncode(strm);
  8052. }
  8053.  
  8054.  
  8055. PObject * H225_RasUsageSpecification_callStartingPoint::Clone() const
  8056. {
  8057. #ifndef PASN_LEANANDMEAN
  8058.   PAssert(IsClass(H225_RasUsageSpecification_callStartingPoint::Class()), PInvalidCast);
  8059. #endif
  8060.   return new H225_RasUsageSpecification_callStartingPoint(*this);
  8061. }
  8062.  
  8063.  
  8064. //
  8065. // CallCreditServiceControl_billingMode
  8066. //
  8067.  
  8068. H225_CallCreditServiceControl_billingMode::H225_CallCreditServiceControl_billingMode(unsigned tag, PASN_Object::TagClass tagClass)
  8069.   : PASN_Choice(tag, tagClass, 2, TRUE
  8070. #ifndef PASN_NOPRINTON
  8071.       , "credit "
  8072.         "debit "
  8073. #endif
  8074.     )
  8075. {
  8076. }
  8077.  
  8078.  
  8079. BOOL H225_CallCreditServiceControl_billingMode::CreateObject()
  8080. {
  8081.   choice = (tag <= e_debit) ? new PASN_Null() : NULL;
  8082.   return choice != NULL;
  8083. }
  8084.  
  8085.  
  8086. PObject * H225_CallCreditServiceControl_billingMode::Clone() const
  8087. {
  8088. #ifndef PASN_LEANANDMEAN
  8089.   PAssert(IsClass(H225_CallCreditServiceControl_billingMode::Class()), PInvalidCast);
  8090. #endif
  8091.   return new H225_CallCreditServiceControl_billingMode(*this);
  8092. }
  8093.  
  8094.  
  8095. #endif // if ! H323_DISABLE_H225
  8096.  
  8097.  
  8098. // End of h225_1.cxx
  8099.