4 // Code automatically generated by asnparse.
8 #pragma implementation "h4501.h"
17 #if ! H323_DISABLE_H4501
22 #ifndef PASN_NOPRINTON
23 const static PASN_Names Names_H4501_EntityType
[]={
32 H4501_EntityType::H4501_EntityType(unsigned tag
, PASN_Object::TagClass tagClass
)
33 : PASN_Choice(tag
, tagClass
, 2, TRUE
34 #ifndef PASN_NOPRINTON
35 ,(const PASN_Names
*)Names_H4501_EntityType
,2
42 BOOL
H4501_EntityType::CreateObject()
44 choice
= (tag
<= e_anyEntity
) ? new PASN_Null() : NULL
;
45 return choice
!= NULL
;
49 PObject
* H4501_EntityType::Clone() const
51 #ifndef PASN_LEANANDMEAN
52 PAssert(IsClass(H4501_EntityType::Class()), PInvalidCast
);
54 return new H4501_EntityType(*this);
62 H4501_AddressInformation::H4501_AddressInformation(unsigned tag
, PASN_Object::TagClass tagClass
)
63 : H225_AliasAddress(tag
, tagClass
)
68 PObject
* H4501_AddressInformation::Clone() const
70 #ifndef PASN_LEANANDMEAN
71 PAssert(IsClass(H4501_AddressInformation::Class()), PInvalidCast
);
73 return new H4501_AddressInformation(*this);
78 #ifndef PASN_NOPRINTON
79 const static PASN_Names Names_H4501_InterpretationApdu
[]={
80 {"discardAnyUnrecognizedInvokePdu",0}
81 ,{"clearCallIfAnyInvokePduNotRecognized",1}
82 ,{"rejectAnyUnrecognizedInvokePdu",2}
89 H4501_InterpretationApdu::H4501_InterpretationApdu(unsigned tag
, PASN_Object::TagClass tagClass
)
90 : PASN_Choice(tag
, tagClass
, 3, TRUE
91 #ifndef PASN_NOPRINTON
92 ,(const PASN_Names
*)Names_H4501_InterpretationApdu
,3
99 BOOL
H4501_InterpretationApdu::CreateObject()
101 choice
= (tag
<= e_rejectAnyUnrecognizedInvokePdu
) ? new PASN_Null() : NULL
;
102 return choice
!= NULL
;
106 PObject
* H4501_InterpretationApdu::Clone() const
108 #ifndef PASN_LEANANDMEAN
109 PAssert(IsClass(H4501_InterpretationApdu::Class()), PInvalidCast
);
111 return new H4501_InterpretationApdu(*this);
116 #ifndef PASN_NOPRINTON
117 const static PASN_Names Names_H4501_ServiceApdus
[]={
125 H4501_ServiceApdus::H4501_ServiceApdus(unsigned tag
, PASN_Object::TagClass tagClass
)
126 : PASN_Choice(tag
, tagClass
, 1, TRUE
127 #ifndef PASN_NOPRINTON
128 ,(const PASN_Names
*)Names_H4501_ServiceApdus
,1
135 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
136 H4501_ServiceApdus::operator H4501_ArrayOf_ROS
&() const
138 H4501_ServiceApdus::operator H4501_ArrayOf_ROS
&()
140 #ifndef PASN_LEANANDMEAN
141 PAssert(PIsDescendant(PAssertNULL(choice
), H4501_ArrayOf_ROS
), PInvalidCast
);
143 return *(H4501_ArrayOf_ROS
*)choice
;
147 H4501_ServiceApdus::operator const H4501_ArrayOf_ROS
&() const
150 #ifndef PASN_LEANANDMEAN
151 PAssert(PIsDescendant(PAssertNULL(choice
), H4501_ArrayOf_ROS
), PInvalidCast
);
153 return *(H4501_ArrayOf_ROS
*)choice
;
157 BOOL
H4501_ServiceApdus::CreateObject()
161 choice
= new H4501_ArrayOf_ROS();
162 choice
->SetConstraints(PASN_Object::FixedConstraint
, 1, MaximumValue
);
171 PObject
* H4501_ServiceApdus::Clone() const
173 #ifndef PASN_LEANANDMEAN
174 PAssert(IsClass(H4501_ServiceApdus::Class()), PInvalidCast
);
176 return new H4501_ServiceApdus(*this);
184 H4501_InvokeIdSet::H4501_InvokeIdSet(unsigned tag
, PASN_Object::TagClass tagClass
)
185 : PASN_Integer(tag
, tagClass
)
190 H4501_InvokeIdSet
& H4501_InvokeIdSet::operator=(int v
)
197 H4501_InvokeIdSet
& H4501_InvokeIdSet::operator=(unsigned v
)
204 PObject
* H4501_InvokeIdSet::Clone() const
206 #ifndef PASN_LEANANDMEAN
207 PAssert(IsClass(H4501_InvokeIdSet::Class()), PInvalidCast
);
209 return new H4501_InvokeIdSet(*this);
217 H4501_InvokeIDs::H4501_InvokeIDs(unsigned tag
, PASN_Object::TagClass tagClass
)
218 : PASN_Integer(tag
, tagClass
)
220 SetConstraints(PASN_Object::FixedConstraint
, 0, 65535);
224 H4501_InvokeIDs
& H4501_InvokeIDs::operator=(int v
)
231 H4501_InvokeIDs
& H4501_InvokeIDs::operator=(unsigned v
)
238 PObject
* H4501_InvokeIDs::Clone() const
240 #ifndef PASN_LEANANDMEAN
241 PAssert(IsClass(H4501_InvokeIDs::Class()), PInvalidCast
);
243 return new H4501_InvokeIDs(*this);
248 #ifndef PASN_NOPRINTON
249 const static PASN_Names Names_H4501_PresentedAddressScreened
[]={
250 {"presentationAllowedAddress",0}
251 ,{"presentationRestricted",1}
252 ,{"numberNotAvailableDueToInterworking",2}
253 ,{"presentationRestrictedAddress",3}
257 // PresentedAddressScreened
260 H4501_PresentedAddressScreened::H4501_PresentedAddressScreened(unsigned tag
, PASN_Object::TagClass tagClass
)
261 : PASN_Choice(tag
, tagClass
, 4, TRUE
262 #ifndef PASN_NOPRINTON
263 ,(const PASN_Names
*)Names_H4501_PresentedAddressScreened
,4
270 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
271 H4501_PresentedAddressScreened::operator H4501_AddressScreened
&() const
273 H4501_PresentedAddressScreened::operator H4501_AddressScreened
&()
275 #ifndef PASN_LEANANDMEAN
276 PAssert(PIsDescendant(PAssertNULL(choice
), H4501_AddressScreened
), PInvalidCast
);
278 return *(H4501_AddressScreened
*)choice
;
282 H4501_PresentedAddressScreened::operator const H4501_AddressScreened
&() const
285 #ifndef PASN_LEANANDMEAN
286 PAssert(PIsDescendant(PAssertNULL(choice
), H4501_AddressScreened
), PInvalidCast
);
288 return *(H4501_AddressScreened
*)choice
;
292 BOOL
H4501_PresentedAddressScreened::CreateObject()
295 case e_presentationAllowedAddress
:
296 case e_presentationRestrictedAddress
:
297 choice
= new H4501_AddressScreened();
299 case e_presentationRestricted
:
300 case e_numberNotAvailableDueToInterworking
:
301 choice
= new PASN_Null();
310 PObject
* H4501_PresentedAddressScreened::Clone() const
312 #ifndef PASN_LEANANDMEAN
313 PAssert(IsClass(H4501_PresentedAddressScreened::Class()), PInvalidCast
);
315 return new H4501_PresentedAddressScreened(*this);
320 #ifndef PASN_NOPRINTON
321 const static PASN_Names Names_H4501_PresentedAddressUnscreened
[]={
322 {"presentationAllowedAddress",0}
323 ,{"presentationRestricted",1}
324 ,{"numberNotAvailableDueToInterworking",2}
325 ,{"presentationRestrictedAddress",3}
329 // PresentedAddressUnscreened
332 H4501_PresentedAddressUnscreened::H4501_PresentedAddressUnscreened(unsigned tag
, PASN_Object::TagClass tagClass
)
333 : PASN_Choice(tag
, tagClass
, 4, TRUE
334 #ifndef PASN_NOPRINTON
335 ,(const PASN_Names
*)Names_H4501_PresentedAddressUnscreened
,4
342 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
343 H4501_PresentedAddressUnscreened::operator H4501_Address
&() const
345 H4501_PresentedAddressUnscreened::operator H4501_Address
&()
347 #ifndef PASN_LEANANDMEAN
348 PAssert(PIsDescendant(PAssertNULL(choice
), H4501_Address
), PInvalidCast
);
350 return *(H4501_Address
*)choice
;
354 H4501_PresentedAddressUnscreened::operator const H4501_Address
&() const
357 #ifndef PASN_LEANANDMEAN
358 PAssert(PIsDescendant(PAssertNULL(choice
), H4501_Address
), PInvalidCast
);
360 return *(H4501_Address
*)choice
;
364 BOOL
H4501_PresentedAddressUnscreened::CreateObject()
367 case e_presentationAllowedAddress
:
368 case e_presentationRestrictedAddress
:
369 choice
= new H4501_Address();
371 case e_presentationRestricted
:
372 case e_numberNotAvailableDueToInterworking
:
373 choice
= new PASN_Null();
382 PObject
* H4501_PresentedAddressUnscreened::Clone() const
384 #ifndef PASN_LEANANDMEAN
385 PAssert(IsClass(H4501_PresentedAddressUnscreened::Class()), PInvalidCast
);
387 return new H4501_PresentedAddressUnscreened(*this);
392 #ifndef PASN_NOPRINTON
393 const static PASN_Names Names_H4501_PresentedNumberScreened
[]={
394 {"presentationAllowedAddress",0}
395 ,{"presentationRestricted",1}
396 ,{"numberNotAvailableDueToInterworking",2}
397 ,{"presentationRestrictedAddress",3}
401 // PresentedNumberScreened
404 H4501_PresentedNumberScreened::H4501_PresentedNumberScreened(unsigned tag
, PASN_Object::TagClass tagClass
)
405 : PASN_Choice(tag
, tagClass
, 4, TRUE
406 #ifndef PASN_NOPRINTON
407 ,(const PASN_Names
*)Names_H4501_PresentedNumberScreened
,4
414 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
415 H4501_PresentedNumberScreened::operator H4501_NumberScreened
&() const
417 H4501_PresentedNumberScreened::operator H4501_NumberScreened
&()
419 #ifndef PASN_LEANANDMEAN
420 PAssert(PIsDescendant(PAssertNULL(choice
), H4501_NumberScreened
), PInvalidCast
);
422 return *(H4501_NumberScreened
*)choice
;
426 H4501_PresentedNumberScreened::operator const H4501_NumberScreened
&() const
429 #ifndef PASN_LEANANDMEAN
430 PAssert(PIsDescendant(PAssertNULL(choice
), H4501_NumberScreened
), PInvalidCast
);
432 return *(H4501_NumberScreened
*)choice
;
436 BOOL
H4501_PresentedNumberScreened::CreateObject()
439 case e_presentationAllowedAddress
:
440 case e_presentationRestrictedAddress
:
441 choice
= new H4501_NumberScreened();
443 case e_presentationRestricted
:
444 case e_numberNotAvailableDueToInterworking
:
445 choice
= new PASN_Null();
454 PObject
* H4501_PresentedNumberScreened::Clone() const
456 #ifndef PASN_LEANANDMEAN
457 PAssert(IsClass(H4501_PresentedNumberScreened::Class()), PInvalidCast
);
459 return new H4501_PresentedNumberScreened(*this);
464 #ifndef PASN_NOPRINTON
465 const static PASN_Names Names_H4501_PresentedNumberUnscreened
[]={
466 {"presentationAllowedAddress",0}
467 ,{"presentationRestricted",1}
468 ,{"numberNotAvailableDueToInterworking",2}
469 ,{"presentationRestrictedAddress",3}
473 // PresentedNumberUnscreened
476 H4501_PresentedNumberUnscreened::H4501_PresentedNumberUnscreened(unsigned tag
, PASN_Object::TagClass tagClass
)
477 : PASN_Choice(tag
, tagClass
, 4, TRUE
478 #ifndef PASN_NOPRINTON
479 ,(const PASN_Names
*)Names_H4501_PresentedNumberUnscreened
,4
486 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
487 H4501_PresentedNumberUnscreened::operator H225_PartyNumber
&() const
489 H4501_PresentedNumberUnscreened::operator H225_PartyNumber
&()
491 #ifndef PASN_LEANANDMEAN
492 PAssert(PIsDescendant(PAssertNULL(choice
), H225_PartyNumber
), PInvalidCast
);
494 return *(H225_PartyNumber
*)choice
;
498 H4501_PresentedNumberUnscreened::operator const H225_PartyNumber
&() const
501 #ifndef PASN_LEANANDMEAN
502 PAssert(PIsDescendant(PAssertNULL(choice
), H225_PartyNumber
), PInvalidCast
);
504 return *(H225_PartyNumber
*)choice
;
508 BOOL
H4501_PresentedNumberUnscreened::CreateObject()
511 case e_presentationAllowedAddress
:
512 case e_presentationRestrictedAddress
:
513 choice
= new H225_PartyNumber();
515 case e_presentationRestricted
:
516 case e_numberNotAvailableDueToInterworking
:
517 choice
= new PASN_Null();
526 PObject
* H4501_PresentedNumberUnscreened::Clone() const
528 #ifndef PASN_LEANANDMEAN
529 PAssert(IsClass(H4501_PresentedNumberUnscreened::Class()), PInvalidCast
);
531 return new H4501_PresentedNumberUnscreened(*this);
536 #ifndef PASN_NOPRINTON
537 const static PASN_Names Names_H4501_PartySubaddress
[]={
538 {"userSpecifiedSubaddress",0}
539 ,{"nsapSubaddress",1}
546 H4501_PartySubaddress::H4501_PartySubaddress(unsigned tag
, PASN_Object::TagClass tagClass
)
547 : PASN_Choice(tag
, tagClass
, 2, TRUE
548 #ifndef PASN_NOPRINTON
549 ,(const PASN_Names
*)Names_H4501_PartySubaddress
,2
556 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
557 H4501_PartySubaddress::operator H4501_UserSpecifiedSubaddress
&() const
559 H4501_PartySubaddress::operator H4501_UserSpecifiedSubaddress
&()
561 #ifndef PASN_LEANANDMEAN
562 PAssert(PIsDescendant(PAssertNULL(choice
), H4501_UserSpecifiedSubaddress
), PInvalidCast
);
564 return *(H4501_UserSpecifiedSubaddress
*)choice
;
568 H4501_PartySubaddress::operator const H4501_UserSpecifiedSubaddress
&() const
571 #ifndef PASN_LEANANDMEAN
572 PAssert(PIsDescendant(PAssertNULL(choice
), H4501_UserSpecifiedSubaddress
), PInvalidCast
);
574 return *(H4501_UserSpecifiedSubaddress
*)choice
;
578 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
579 H4501_PartySubaddress::operator H4501_NSAPSubaddress
&() const
581 H4501_PartySubaddress::operator H4501_NSAPSubaddress
&()
583 #ifndef PASN_LEANANDMEAN
584 PAssert(PIsDescendant(PAssertNULL(choice
), H4501_NSAPSubaddress
), PInvalidCast
);
586 return *(H4501_NSAPSubaddress
*)choice
;
590 H4501_PartySubaddress::operator const H4501_NSAPSubaddress
&() const
593 #ifndef PASN_LEANANDMEAN
594 PAssert(PIsDescendant(PAssertNULL(choice
), H4501_NSAPSubaddress
), PInvalidCast
);
596 return *(H4501_NSAPSubaddress
*)choice
;
600 BOOL
H4501_PartySubaddress::CreateObject()
603 case e_userSpecifiedSubaddress
:
604 choice
= new H4501_UserSpecifiedSubaddress();
606 case e_nsapSubaddress
:
607 choice
= new H4501_NSAPSubaddress();
616 PObject
* H4501_PartySubaddress::Clone() const
618 #ifndef PASN_LEANANDMEAN
619 PAssert(IsClass(H4501_PartySubaddress::Class()), PInvalidCast
);
621 return new H4501_PartySubaddress(*this);
629 H4501_NSAPSubaddress::H4501_NSAPSubaddress(unsigned tag
, PASN_Object::TagClass tagClass
)
630 : PASN_OctetString(tag
, tagClass
)
632 SetConstraints(PASN_Object::FixedConstraint
, 1, 20);
636 H4501_NSAPSubaddress::H4501_NSAPSubaddress(const char * v
)
642 H4501_NSAPSubaddress::H4501_NSAPSubaddress(const PString
& v
)
648 H4501_NSAPSubaddress::H4501_NSAPSubaddress(const PBYTEArray
& v
)
654 H4501_NSAPSubaddress
& H4501_NSAPSubaddress::operator=(const char * v
)
661 H4501_NSAPSubaddress
& H4501_NSAPSubaddress::operator=(const PString
& v
)
668 H4501_NSAPSubaddress
& H4501_NSAPSubaddress::operator=(const PBYTEArray
& v
)
675 PObject
* H4501_NSAPSubaddress::Clone() const
677 #ifndef PASN_LEANANDMEAN
678 PAssert(IsClass(H4501_NSAPSubaddress::Class()), PInvalidCast
);
680 return new H4501_NSAPSubaddress(*this);
685 // SubaddressInformation
688 H4501_SubaddressInformation::H4501_SubaddressInformation(unsigned tag
, PASN_Object::TagClass tagClass
)
689 : PASN_OctetString(tag
, tagClass
)
691 SetConstraints(PASN_Object::FixedConstraint
, 1, 20);
695 H4501_SubaddressInformation::H4501_SubaddressInformation(const char * v
)
701 H4501_SubaddressInformation::H4501_SubaddressInformation(const PString
& v
)
707 H4501_SubaddressInformation::H4501_SubaddressInformation(const PBYTEArray
& v
)
713 H4501_SubaddressInformation
& H4501_SubaddressInformation::operator=(const char * v
)
720 H4501_SubaddressInformation
& H4501_SubaddressInformation::operator=(const PString
& v
)
727 H4501_SubaddressInformation
& H4501_SubaddressInformation::operator=(const PBYTEArray
& v
)
734 PObject
* H4501_SubaddressInformation::Clone() const
736 #ifndef PASN_LEANANDMEAN
737 PAssert(IsClass(H4501_SubaddressInformation::Class()), PInvalidCast
);
739 return new H4501_SubaddressInformation(*this);
743 #ifndef PASN_NOPRINTON
744 const static PASN_Names Names_H4501_ScreeningIndicator
[]={
745 {"userProvidedNotScreened",0}
746 ,{"userProvidedVerifiedAndPassed",1}
747 ,{"userProvidedVerifiedAndFailed",2}
748 ,{"networkProvided",3}
752 // ScreeningIndicator
755 H4501_ScreeningIndicator::H4501_ScreeningIndicator(unsigned tag
, PASN_Object::TagClass tagClass
)
756 : PASN_Enumeration(tag
, tagClass
, 3, TRUE
757 #ifndef PASN_NOPRINTON
758 ,(const PASN_Names
*)Names_H4501_ScreeningIndicator
,4
765 H4501_ScreeningIndicator
& H4501_ScreeningIndicator::operator=(unsigned v
)
772 PObject
* H4501_ScreeningIndicator::Clone() const
774 #ifndef PASN_LEANANDMEAN
775 PAssert(IsClass(H4501_ScreeningIndicator::Class()), PInvalidCast
);
777 return new H4501_ScreeningIndicator(*this);
782 // PresentationAllowedIndicator
785 H4501_PresentationAllowedIndicator::H4501_PresentationAllowedIndicator(unsigned tag
, PASN_Object::TagClass tagClass
)
786 : PASN_Boolean(tag
, tagClass
)
791 H4501_PresentationAllowedIndicator
& H4501_PresentationAllowedIndicator::operator=(BOOL v
)
798 PObject
* H4501_PresentationAllowedIndicator::Clone() const
800 #ifndef PASN_LEANANDMEAN
801 PAssert(IsClass(H4501_PresentationAllowedIndicator::Class()), PInvalidCast
);
803 return new H4501_PresentationAllowedIndicator(*this);
807 #ifndef PASN_NOPRINTON
808 const static PASN_Names Names_H4501_GeneralErrorList
[]={
809 {"userNotSubscribed",0}
810 ,{"rejectedByNetwork",1}
811 ,{"rejectedByUser",2}
813 ,{"insufficientInformation",5}
814 ,{"invalidServedUserNumber",6}
815 ,{"invalidCallState",7}
816 ,{"basicServiceNotProvided",8}
817 ,{"notIncomingCall",9}
818 ,{"supplementaryServiceInteractionNotAllowed",10}
819 ,{"resourceUnavailable",11}
821 ,{"proceduralError",43}
828 H4501_GeneralErrorList::H4501_GeneralErrorList(unsigned tag
, PASN_Object::TagClass tagClass
)
829 : PASN_Enumeration(tag
, tagClass
, 43, FALSE
830 #ifndef PASN_NOPRINTON
831 ,(const PASN_Names
*)Names_H4501_GeneralErrorList
,13
838 H4501_GeneralErrorList
& H4501_GeneralErrorList::operator=(unsigned v
)
845 PObject
* H4501_GeneralErrorList::Clone() const
847 #ifndef PASN_LEANANDMEAN
848 PAssert(IsClass(H4501_GeneralErrorList::Class()), PInvalidCast
);
850 return new H4501_GeneralErrorList(*this);
855 // H225InformationElement
858 H4501_H225InformationElement::H4501_H225InformationElement(unsigned tag
, PASN_Object::TagClass tagClass
)
859 : PASN_OctetString(tag
, tagClass
)
864 H4501_H225InformationElement::H4501_H225InformationElement(const char * v
)
870 H4501_H225InformationElement::H4501_H225InformationElement(const PString
& v
)
876 H4501_H225InformationElement::H4501_H225InformationElement(const PBYTEArray
& v
)
882 H4501_H225InformationElement
& H4501_H225InformationElement::operator=(const char * v
)
889 H4501_H225InformationElement
& H4501_H225InformationElement::operator=(const PString
& v
)
896 H4501_H225InformationElement
& H4501_H225InformationElement::operator=(const PBYTEArray
& v
)
903 PObject
* H4501_H225InformationElement::Clone() const
905 #ifndef PASN_LEANANDMEAN
906 PAssert(IsClass(H4501_H225InformationElement::Class()), PInvalidCast
);
908 return new H4501_H225InformationElement(*this);
916 H4501_Extension::H4501_Extension(unsigned tag
, PASN_Object::TagClass tagClass
)
917 : PASN_Sequence(tag
, tagClass
, 0, FALSE
, 0)
922 #ifndef PASN_NOPRINTON
923 void H4501_Extension::PrintOn(ostream
& strm
) const
925 int indent
= strm
.precision() + 2;
927 strm
<< setw(indent
+14) << "extensionId = " << setprecision(indent
) << m_extensionId
<< '\n';
928 strm
<< setw(indent
+20) << "extensionArgument = " << setprecision(indent
) << m_extensionArgument
<< '\n';
929 strm
<< setw(indent
-1) << setprecision(indent
-2) << "}";
934 PObject::Comparison
H4501_Extension::Compare(const PObject
& obj
) const
936 #ifndef PASN_LEANANDMEAN
937 PAssert(PIsDescendant(&obj
, H4501_Extension
), PInvalidCast
);
939 const H4501_Extension
& other
= (const H4501_Extension
&)obj
;
943 if ((result
= m_extensionId
.Compare(other
.m_extensionId
)) != EqualTo
)
945 if ((result
= m_extensionArgument
.Compare(other
.m_extensionArgument
)) != EqualTo
)
948 return PASN_Sequence::Compare(other
);
952 PINDEX
H4501_Extension::GetDataLength() const
955 length
+= m_extensionId
.GetObjectLength();
956 length
+= m_extensionArgument
.GetObjectLength();
961 BOOL
H4501_Extension::Decode(PASN_Stream
& strm
)
963 if (!PreambleDecode(strm
))
966 if (!m_extensionId
.Decode(strm
))
968 if (!m_extensionArgument
.Decode(strm
))
971 return UnknownExtensionsDecode(strm
);
975 void H4501_Extension::Encode(PASN_Stream
& strm
) const
977 PreambleEncode(strm
);
979 m_extensionId
.Encode(strm
);
980 m_extensionArgument
.Encode(strm
);
982 UnknownExtensionsEncode(strm
);
986 PObject
* H4501_Extension::Clone() const
988 #ifndef PASN_LEANANDMEAN
989 PAssert(IsClass(H4501_Extension::Class()), PInvalidCast
);
991 return new H4501_Extension(*this);
999 H4501_ArrayOf_ROS::H4501_ArrayOf_ROS(unsigned tag
, PASN_Object::TagClass tagClass
)
1000 : PASN_Array(tag
, tagClass
)
1005 PASN_Object
* H4501_ArrayOf_ROS::CreateObject() const
1007 return new X880_ROS
;
1011 X880_ROS
& H4501_ArrayOf_ROS::operator[](PINDEX i
) const
1013 return (X880_ROS
&)array
[i
];
1017 PObject
* H4501_ArrayOf_ROS::Clone() const
1019 #ifndef PASN_LEANANDMEAN
1020 PAssert(IsClass(H4501_ArrayOf_ROS::Class()), PInvalidCast
);
1022 return new H4501_ArrayOf_ROS(*this);
1027 // ArrayOf_AliasAddress
1030 H4501_ArrayOf_AliasAddress::H4501_ArrayOf_AliasAddress(unsigned tag
, PASN_Object::TagClass tagClass
)
1031 : PASN_Array(tag
, tagClass
)
1036 PASN_Object
* H4501_ArrayOf_AliasAddress::CreateObject() const
1038 return new H225_AliasAddress
;
1042 H225_AliasAddress
& H4501_ArrayOf_AliasAddress::operator[](PINDEX i
) const
1044 return (H225_AliasAddress
&)array
[i
];
1048 PObject
* H4501_ArrayOf_AliasAddress::Clone() const
1050 #ifndef PASN_LEANANDMEAN
1051 PAssert(IsClass(H4501_ArrayOf_AliasAddress::Class()), PInvalidCast
);
1053 return new H4501_ArrayOf_AliasAddress(*this);
1058 // NetworkFacilityExtension
1061 H4501_NetworkFacilityExtension::H4501_NetworkFacilityExtension(unsigned tag
, PASN_Object::TagClass tagClass
)
1062 : PASN_Sequence(tag
, tagClass
, 2, TRUE
, 0)
1067 #ifndef PASN_NOPRINTON
1068 void H4501_NetworkFacilityExtension::PrintOn(ostream
& strm
) const
1070 int indent
= strm
.precision() + 2;
1072 strm
<< setw(indent
+15) << "sourceEntity = " << setprecision(indent
) << m_sourceEntity
<< '\n';
1073 if (HasOptionalField(e_sourceEntityAddress
))
1074 strm
<< setw(indent
+22) << "sourceEntityAddress = " << setprecision(indent
) << m_sourceEntityAddress
<< '\n';
1075 strm
<< setw(indent
+20) << "destinationEntity = " << setprecision(indent
) << m_destinationEntity
<< '\n';
1076 if (HasOptionalField(e_destinationEntityAddress
))
1077 strm
<< setw(indent
+27) << "destinationEntityAddress = " << setprecision(indent
) << m_destinationEntityAddress
<< '\n';
1078 strm
<< setw(indent
-1) << setprecision(indent
-2) << "}";
1083 PObject::Comparison
H4501_NetworkFacilityExtension::Compare(const PObject
& obj
) const
1085 #ifndef PASN_LEANANDMEAN
1086 PAssert(PIsDescendant(&obj
, H4501_NetworkFacilityExtension
), PInvalidCast
);
1088 const H4501_NetworkFacilityExtension
& other
= (const H4501_NetworkFacilityExtension
&)obj
;
1092 if ((result
= m_sourceEntity
.Compare(other
.m_sourceEntity
)) != EqualTo
)
1094 if ((result
= m_sourceEntityAddress
.Compare(other
.m_sourceEntityAddress
)) != EqualTo
)
1096 if ((result
= m_destinationEntity
.Compare(other
.m_destinationEntity
)) != EqualTo
)
1098 if ((result
= m_destinationEntityAddress
.Compare(other
.m_destinationEntityAddress
)) != EqualTo
)
1101 return PASN_Sequence::Compare(other
);
1105 PINDEX
H4501_NetworkFacilityExtension::GetDataLength() const
1108 length
+= m_sourceEntity
.GetObjectLength();
1109 if (HasOptionalField(e_sourceEntityAddress
))
1110 length
+= m_sourceEntityAddress
.GetObjectLength();
1111 length
+= m_destinationEntity
.GetObjectLength();
1112 if (HasOptionalField(e_destinationEntityAddress
))
1113 length
+= m_destinationEntityAddress
.GetObjectLength();
1118 BOOL
H4501_NetworkFacilityExtension::Decode(PASN_Stream
& strm
)
1120 if (!PreambleDecode(strm
))
1123 if (!m_sourceEntity
.Decode(strm
))
1125 if (HasOptionalField(e_sourceEntityAddress
) && !m_sourceEntityAddress
.Decode(strm
))
1127 if (!m_destinationEntity
.Decode(strm
))
1129 if (HasOptionalField(e_destinationEntityAddress
) && !m_destinationEntityAddress
.Decode(strm
))
1132 return UnknownExtensionsDecode(strm
);
1136 void H4501_NetworkFacilityExtension::Encode(PASN_Stream
& strm
) const
1138 PreambleEncode(strm
);
1140 m_sourceEntity
.Encode(strm
);
1141 if (HasOptionalField(e_sourceEntityAddress
))
1142 m_sourceEntityAddress
.Encode(strm
);
1143 m_destinationEntity
.Encode(strm
);
1144 if (HasOptionalField(e_destinationEntityAddress
))
1145 m_destinationEntityAddress
.Encode(strm
);
1147 UnknownExtensionsEncode(strm
);
1151 PObject
* H4501_NetworkFacilityExtension::Clone() const
1153 #ifndef PASN_LEANANDMEAN
1154 PAssert(IsClass(H4501_NetworkFacilityExtension::Class()), PInvalidCast
);
1156 return new H4501_NetworkFacilityExtension(*this);
1164 H4501_AddressScreened::H4501_AddressScreened(unsigned tag
, PASN_Object::TagClass tagClass
)
1165 : PASN_Sequence(tag
, tagClass
, 1, TRUE
, 0)
1170 #ifndef PASN_NOPRINTON
1171 void H4501_AddressScreened::PrintOn(ostream
& strm
) const
1173 int indent
= strm
.precision() + 2;
1175 strm
<< setw(indent
+14) << "partyNumber = " << setprecision(indent
) << m_partyNumber
<< '\n';
1176 strm
<< setw(indent
+21) << "screeningIndicator = " << setprecision(indent
) << m_screeningIndicator
<< '\n';
1177 if (HasOptionalField(e_partySubaddress
))
1178 strm
<< setw(indent
+18) << "partySubaddress = " << setprecision(indent
) << m_partySubaddress
<< '\n';
1179 strm
<< setw(indent
-1) << setprecision(indent
-2) << "}";
1184 PObject::Comparison
H4501_AddressScreened::Compare(const PObject
& obj
) const
1186 #ifndef PASN_LEANANDMEAN
1187 PAssert(PIsDescendant(&obj
, H4501_AddressScreened
), PInvalidCast
);
1189 const H4501_AddressScreened
& other
= (const H4501_AddressScreened
&)obj
;
1193 if ((result
= m_partyNumber
.Compare(other
.m_partyNumber
)) != EqualTo
)
1195 if ((result
= m_screeningIndicator
.Compare(other
.m_screeningIndicator
)) != EqualTo
)
1197 if ((result
= m_partySubaddress
.Compare(other
.m_partySubaddress
)) != EqualTo
)
1200 return PASN_Sequence::Compare(other
);
1204 PINDEX
H4501_AddressScreened::GetDataLength() const
1207 length
+= m_partyNumber
.GetObjectLength();
1208 length
+= m_screeningIndicator
.GetObjectLength();
1209 if (HasOptionalField(e_partySubaddress
))
1210 length
+= m_partySubaddress
.GetObjectLength();
1215 BOOL
H4501_AddressScreened::Decode(PASN_Stream
& strm
)
1217 if (!PreambleDecode(strm
))
1220 if (!m_partyNumber
.Decode(strm
))
1222 if (!m_screeningIndicator
.Decode(strm
))
1224 if (HasOptionalField(e_partySubaddress
) && !m_partySubaddress
.Decode(strm
))
1227 return UnknownExtensionsDecode(strm
);
1231 void H4501_AddressScreened::Encode(PASN_Stream
& strm
) const
1233 PreambleEncode(strm
);
1235 m_partyNumber
.Encode(strm
);
1236 m_screeningIndicator
.Encode(strm
);
1237 if (HasOptionalField(e_partySubaddress
))
1238 m_partySubaddress
.Encode(strm
);
1240 UnknownExtensionsEncode(strm
);
1244 PObject
* H4501_AddressScreened::Clone() const
1246 #ifndef PASN_LEANANDMEAN
1247 PAssert(IsClass(H4501_AddressScreened::Class()), PInvalidCast
);
1249 return new H4501_AddressScreened(*this);
1257 H4501_NumberScreened::H4501_NumberScreened(unsigned tag
, PASN_Object::TagClass tagClass
)
1258 : PASN_Sequence(tag
, tagClass
, 0, TRUE
, 0)
1263 #ifndef PASN_NOPRINTON
1264 void H4501_NumberScreened::PrintOn(ostream
& strm
) const
1266 int indent
= strm
.precision() + 2;
1268 strm
<< setw(indent
+14) << "partyNumber = " << setprecision(indent
) << m_partyNumber
<< '\n';
1269 strm
<< setw(indent
+21) << "screeningIndicator = " << setprecision(indent
) << m_screeningIndicator
<< '\n';
1270 strm
<< setw(indent
-1) << setprecision(indent
-2) << "}";
1275 PObject::Comparison
H4501_NumberScreened::Compare(const PObject
& obj
) const
1277 #ifndef PASN_LEANANDMEAN
1278 PAssert(PIsDescendant(&obj
, H4501_NumberScreened
), PInvalidCast
);
1280 const H4501_NumberScreened
& other
= (const H4501_NumberScreened
&)obj
;
1284 if ((result
= m_partyNumber
.Compare(other
.m_partyNumber
)) != EqualTo
)
1286 if ((result
= m_screeningIndicator
.Compare(other
.m_screeningIndicator
)) != EqualTo
)
1289 return PASN_Sequence::Compare(other
);
1293 PINDEX
H4501_NumberScreened::GetDataLength() const
1296 length
+= m_partyNumber
.GetObjectLength();
1297 length
+= m_screeningIndicator
.GetObjectLength();
1302 BOOL
H4501_NumberScreened::Decode(PASN_Stream
& strm
)
1304 if (!PreambleDecode(strm
))
1307 if (!m_partyNumber
.Decode(strm
))
1309 if (!m_screeningIndicator
.Decode(strm
))
1312 return UnknownExtensionsDecode(strm
);
1316 void H4501_NumberScreened::Encode(PASN_Stream
& strm
) const
1318 PreambleEncode(strm
);
1320 m_partyNumber
.Encode(strm
);
1321 m_screeningIndicator
.Encode(strm
);
1323 UnknownExtensionsEncode(strm
);
1327 PObject
* H4501_NumberScreened::Clone() const
1329 #ifndef PASN_LEANANDMEAN
1330 PAssert(IsClass(H4501_NumberScreened::Class()), PInvalidCast
);
1332 return new H4501_NumberScreened(*this);
1340 H4501_Address::H4501_Address(unsigned tag
, PASN_Object::TagClass tagClass
)
1341 : PASN_Sequence(tag
, tagClass
, 1, TRUE
, 0)
1346 #ifndef PASN_NOPRINTON
1347 void H4501_Address::PrintOn(ostream
& strm
) const
1349 int indent
= strm
.precision() + 2;
1351 strm
<< setw(indent
+14) << "partyNumber = " << setprecision(indent
) << m_partyNumber
<< '\n';
1352 if (HasOptionalField(e_partySubaddress
))
1353 strm
<< setw(indent
+18) << "partySubaddress = " << setprecision(indent
) << m_partySubaddress
<< '\n';
1354 strm
<< setw(indent
-1) << setprecision(indent
-2) << "}";
1359 PObject::Comparison
H4501_Address::Compare(const PObject
& obj
) const
1361 #ifndef PASN_LEANANDMEAN
1362 PAssert(PIsDescendant(&obj
, H4501_Address
), PInvalidCast
);
1364 const H4501_Address
& other
= (const H4501_Address
&)obj
;
1368 if ((result
= m_partyNumber
.Compare(other
.m_partyNumber
)) != EqualTo
)
1370 if ((result
= m_partySubaddress
.Compare(other
.m_partySubaddress
)) != EqualTo
)
1373 return PASN_Sequence::Compare(other
);
1377 PINDEX
H4501_Address::GetDataLength() const
1380 length
+= m_partyNumber
.GetObjectLength();
1381 if (HasOptionalField(e_partySubaddress
))
1382 length
+= m_partySubaddress
.GetObjectLength();
1387 BOOL
H4501_Address::Decode(PASN_Stream
& strm
)
1389 if (!PreambleDecode(strm
))
1392 if (!m_partyNumber
.Decode(strm
))
1394 if (HasOptionalField(e_partySubaddress
) && !m_partySubaddress
.Decode(strm
))
1397 return UnknownExtensionsDecode(strm
);
1401 void H4501_Address::Encode(PASN_Stream
& strm
) const
1403 PreambleEncode(strm
);
1405 m_partyNumber
.Encode(strm
);
1406 if (HasOptionalField(e_partySubaddress
))
1407 m_partySubaddress
.Encode(strm
);
1409 UnknownExtensionsEncode(strm
);
1413 PObject
* H4501_Address::Clone() const
1415 #ifndef PASN_LEANANDMEAN
1416 PAssert(IsClass(H4501_Address::Class()), PInvalidCast
);
1418 return new H4501_Address(*this);
1426 H4501_EndpointAddress::H4501_EndpointAddress(unsigned tag
, PASN_Object::TagClass tagClass
)
1427 : PASN_Sequence(tag
, tagClass
, 1, TRUE
, 0)
1432 #ifndef PASN_NOPRINTON
1433 void H4501_EndpointAddress::PrintOn(ostream
& strm
) const
1435 int indent
= strm
.precision() + 2;
1437 strm
<< setw(indent
+21) << "destinationAddress = " << setprecision(indent
) << m_destinationAddress
<< '\n';
1438 if (HasOptionalField(e_remoteExtensionAddress
))
1439 strm
<< setw(indent
+25) << "remoteExtensionAddress = " << setprecision(indent
) << m_remoteExtensionAddress
<< '\n';
1440 strm
<< setw(indent
-1) << setprecision(indent
-2) << "}";
1445 PObject::Comparison
H4501_EndpointAddress::Compare(const PObject
& obj
) const
1447 #ifndef PASN_LEANANDMEAN
1448 PAssert(PIsDescendant(&obj
, H4501_EndpointAddress
), PInvalidCast
);
1450 const H4501_EndpointAddress
& other
= (const H4501_EndpointAddress
&)obj
;
1454 if ((result
= m_destinationAddress
.Compare(other
.m_destinationAddress
)) != EqualTo
)
1456 if ((result
= m_remoteExtensionAddress
.Compare(other
.m_remoteExtensionAddress
)) != EqualTo
)
1459 return PASN_Sequence::Compare(other
);
1463 PINDEX
H4501_EndpointAddress::GetDataLength() const
1466 length
+= m_destinationAddress
.GetObjectLength();
1467 if (HasOptionalField(e_remoteExtensionAddress
))
1468 length
+= m_remoteExtensionAddress
.GetObjectLength();
1473 BOOL
H4501_EndpointAddress::Decode(PASN_Stream
& strm
)
1475 if (!PreambleDecode(strm
))
1478 if (!m_destinationAddress
.Decode(strm
))
1480 if (HasOptionalField(e_remoteExtensionAddress
) && !m_remoteExtensionAddress
.Decode(strm
))
1483 return UnknownExtensionsDecode(strm
);
1487 void H4501_EndpointAddress::Encode(PASN_Stream
& strm
) const
1489 PreambleEncode(strm
);
1491 m_destinationAddress
.Encode(strm
);
1492 if (HasOptionalField(e_remoteExtensionAddress
))
1493 m_remoteExtensionAddress
.Encode(strm
);
1495 UnknownExtensionsEncode(strm
);
1499 PObject
* H4501_EndpointAddress::Clone() const
1501 #ifndef PASN_LEANANDMEAN
1502 PAssert(IsClass(H4501_EndpointAddress::Class()), PInvalidCast
);
1504 return new H4501_EndpointAddress(*this);
1509 // UserSpecifiedSubaddress
1512 H4501_UserSpecifiedSubaddress::H4501_UserSpecifiedSubaddress(unsigned tag
, PASN_Object::TagClass tagClass
)
1513 : PASN_Sequence(tag
, tagClass
, 1, TRUE
, 0)
1518 #ifndef PASN_NOPRINTON
1519 void H4501_UserSpecifiedSubaddress::PrintOn(ostream
& strm
) const
1521 int indent
= strm
.precision() + 2;
1523 strm
<< setw(indent
+24) << "subaddressInformation = " << setprecision(indent
) << m_subaddressInformation
<< '\n';
1524 if (HasOptionalField(e_oddCountIndicator
))
1525 strm
<< setw(indent
+20) << "oddCountIndicator = " << setprecision(indent
) << m_oddCountIndicator
<< '\n';
1526 strm
<< setw(indent
-1) << setprecision(indent
-2) << "}";
1531 PObject::Comparison
H4501_UserSpecifiedSubaddress::Compare(const PObject
& obj
) const
1533 #ifndef PASN_LEANANDMEAN
1534 PAssert(PIsDescendant(&obj
, H4501_UserSpecifiedSubaddress
), PInvalidCast
);
1536 const H4501_UserSpecifiedSubaddress
& other
= (const H4501_UserSpecifiedSubaddress
&)obj
;
1540 if ((result
= m_subaddressInformation
.Compare(other
.m_subaddressInformation
)) != EqualTo
)
1542 if ((result
= m_oddCountIndicator
.Compare(other
.m_oddCountIndicator
)) != EqualTo
)
1545 return PASN_Sequence::Compare(other
);
1549 PINDEX
H4501_UserSpecifiedSubaddress::GetDataLength() const
1552 length
+= m_subaddressInformation
.GetObjectLength();
1553 if (HasOptionalField(e_oddCountIndicator
))
1554 length
+= m_oddCountIndicator
.GetObjectLength();
1559 BOOL
H4501_UserSpecifiedSubaddress::Decode(PASN_Stream
& strm
)
1561 if (!PreambleDecode(strm
))
1564 if (!m_subaddressInformation
.Decode(strm
))
1566 if (HasOptionalField(e_oddCountIndicator
) && !m_oddCountIndicator
.Decode(strm
))
1569 return UnknownExtensionsDecode(strm
);
1573 void H4501_UserSpecifiedSubaddress::Encode(PASN_Stream
& strm
) const
1575 PreambleEncode(strm
);
1577 m_subaddressInformation
.Encode(strm
);
1578 if (HasOptionalField(e_oddCountIndicator
))
1579 m_oddCountIndicator
.Encode(strm
);
1581 UnknownExtensionsEncode(strm
);
1585 PObject
* H4501_UserSpecifiedSubaddress::Clone() const
1587 #ifndef PASN_LEANANDMEAN
1588 PAssert(IsClass(H4501_UserSpecifiedSubaddress::Class()), PInvalidCast
);
1590 return new H4501_UserSpecifiedSubaddress(*this);
1595 // SupplementaryService
1598 H4501_SupplementaryService::H4501_SupplementaryService(unsigned tag
, PASN_Object::TagClass tagClass
)
1599 : PASN_Sequence(tag
, tagClass
, 2, TRUE
, 0)
1604 #ifndef PASN_NOPRINTON
1605 void H4501_SupplementaryService::PrintOn(ostream
& strm
) const
1607 int indent
= strm
.precision() + 2;
1609 if (HasOptionalField(e_networkFacilityExtension
))
1610 strm
<< setw(indent
+27) << "networkFacilityExtension = " << setprecision(indent
) << m_networkFacilityExtension
<< '\n';
1611 if (HasOptionalField(e_interpretationApdu
))
1612 strm
<< setw(indent
+21) << "interpretationApdu = " << setprecision(indent
) << m_interpretationApdu
<< '\n';
1613 strm
<< setw(indent
+14) << "serviceApdu = " << setprecision(indent
) << m_serviceApdu
<< '\n';
1614 strm
<< setw(indent
-1) << setprecision(indent
-2) << "}";
1619 PObject::Comparison
H4501_SupplementaryService::Compare(const PObject
& obj
) const
1621 #ifndef PASN_LEANANDMEAN
1622 PAssert(PIsDescendant(&obj
, H4501_SupplementaryService
), PInvalidCast
);
1624 const H4501_SupplementaryService
& other
= (const H4501_SupplementaryService
&)obj
;
1628 if ((result
= m_networkFacilityExtension
.Compare(other
.m_networkFacilityExtension
)) != EqualTo
)
1630 if ((result
= m_interpretationApdu
.Compare(other
.m_interpretationApdu
)) != EqualTo
)
1632 if ((result
= m_serviceApdu
.Compare(other
.m_serviceApdu
)) != EqualTo
)
1635 return PASN_Sequence::Compare(other
);
1639 PINDEX
H4501_SupplementaryService::GetDataLength() const
1642 if (HasOptionalField(e_networkFacilityExtension
))
1643 length
+= m_networkFacilityExtension
.GetObjectLength();
1644 if (HasOptionalField(e_interpretationApdu
))
1645 length
+= m_interpretationApdu
.GetObjectLength();
1646 length
+= m_serviceApdu
.GetObjectLength();
1651 BOOL
H4501_SupplementaryService::Decode(PASN_Stream
& strm
)
1653 if (!PreambleDecode(strm
))
1656 if (HasOptionalField(e_networkFacilityExtension
) && !m_networkFacilityExtension
.Decode(strm
))
1658 if (HasOptionalField(e_interpretationApdu
) && !m_interpretationApdu
.Decode(strm
))
1660 if (!m_serviceApdu
.Decode(strm
))
1663 return UnknownExtensionsDecode(strm
);
1667 void H4501_SupplementaryService::Encode(PASN_Stream
& strm
) const
1669 PreambleEncode(strm
);
1671 if (HasOptionalField(e_networkFacilityExtension
))
1672 m_networkFacilityExtension
.Encode(strm
);
1673 if (HasOptionalField(e_interpretationApdu
))
1674 m_interpretationApdu
.Encode(strm
);
1675 m_serviceApdu
.Encode(strm
);
1677 UnknownExtensionsEncode(strm
);
1681 PObject
* H4501_SupplementaryService::Clone() const
1683 #ifndef PASN_LEANANDMEAN
1684 PAssert(IsClass(H4501_SupplementaryService::Class()), PInvalidCast
);
1686 return new H4501_SupplementaryService(*this);
1690 #endif // if ! H323_DISABLE_H4501