1 //
2 // h4609.cxx
3 //
4 // Code automatically generated by asnparse.
5 //
6 
7 #ifdef P_USE_PRAGMA
8 #pragma implementation "h4609.h"
9 #endif
10 
11 #include <ptlib.h>
12 
13 #include <opal/buildopts.h>
14 
15 #include "h460/h4609.h"
16 
17 #if OPAL_H460
18 
19 #define new PNEW
20 
21 
22 //
23 // EstimatedEnd2EndDelay
24 //
25 
H4609_EstimatedEnd2EndDelay(unsigned tag,PASN_Object::TagClass tagClass)26 H4609_EstimatedEnd2EndDelay::H4609_EstimatedEnd2EndDelay(unsigned tag, PASN_Object::TagClass tagClass)
27   : PASN_Integer(tag, tagClass)
28 {
29   SetConstraints(PASN_Object::FixedConstraint, 0, 4294967295U);
30 }
31 
32 
operator =(int v)33 H4609_EstimatedEnd2EndDelay & H4609_EstimatedEnd2EndDelay::operator=(int v)
34 {
35   SetValue(v);
36   return *this;
37 }
38 
39 
operator =(unsigned v)40 H4609_EstimatedEnd2EndDelay & H4609_EstimatedEnd2EndDelay::operator=(unsigned v)
41 {
42   SetValue(v);
43   return *this;
44 }
45 
46 
Clone() const47 PObject * H4609_EstimatedEnd2EndDelay::Clone() const
48 {
49 #ifndef PASN_LEANANDMEAN
50   PAssert(IsClass(H4609_EstimatedEnd2EndDelay::Class()), PInvalidCast);
51 #endif
52   return new H4609_EstimatedEnd2EndDelay(*this);
53 }
54 
55 
56 //
57 // CalculatedJitter
58 //
59 
H4609_CalculatedJitter(unsigned tag,PASN_Object::TagClass tagClass)60 H4609_CalculatedJitter::H4609_CalculatedJitter(unsigned tag, PASN_Object::TagClass tagClass)
61   : PASN_Integer(tag, tagClass)
62 {
63   SetConstraints(PASN_Object::FixedConstraint, 0, 4294967295U);
64 }
65 
66 
operator =(int v)67 H4609_CalculatedJitter & H4609_CalculatedJitter::operator=(int v)
68 {
69   SetValue(v);
70   return *this;
71 }
72 
73 
operator =(unsigned v)74 H4609_CalculatedJitter & H4609_CalculatedJitter::operator=(unsigned v)
75 {
76   SetValue(v);
77   return *this;
78 }
79 
80 
Clone() const81 PObject * H4609_CalculatedJitter::Clone() const
82 {
83 #ifndef PASN_LEANANDMEAN
84   PAssert(IsClass(H4609_CalculatedJitter::Class()), PInvalidCast);
85 #endif
86   return new H4609_CalculatedJitter(*this);
87 }
88 
89 
90 //
91 // Extension
92 //
93 
H4609_Extension(unsigned tag,PASN_Object::TagClass tagClass)94 H4609_Extension::H4609_Extension(unsigned tag, PASN_Object::TagClass tagClass)
95   : PASN_Sequence(tag, tagClass, 1, TRUE, 0)
96 {
97 }
98 
99 
100 #ifndef PASN_NOPRINTON
PrintOn(ostream & strm) const101 void H4609_Extension::PrintOn(ostream & strm) const
102 {
103   std::streamsize indent = strm.precision() + 2;
104   strm << "{\n";
105   strm << setw(indent+14) << "extensionId = " << setprecision(indent) << m_extensionId << '\n';
106   if (HasOptionalField(e_extensionContent))
107     strm << setw(indent+19) << "extensionContent = " << setprecision(indent) << m_extensionContent << '\n';
108   strm << setw(indent-1) << setprecision(indent-2) << "}";
109 }
110 #endif
111 
112 
Compare(const PObject & obj) const113 PObject::Comparison H4609_Extension::Compare(const PObject & obj) const
114 {
115 #ifndef PASN_LEANANDMEAN
116   PAssert(PIsDescendant(&obj, H4609_Extension), PInvalidCast);
117 #endif
118   const H4609_Extension & other = (const H4609_Extension &)obj;
119 
120   Comparison result;
121 
122   if ((result = m_extensionId.Compare(other.m_extensionId)) != EqualTo)
123     return result;
124   if ((result = m_extensionContent.Compare(other.m_extensionContent)) != EqualTo)
125     return result;
126 
127   return PASN_Sequence::Compare(other);
128 }
129 
130 
GetDataLength() const131 PINDEX H4609_Extension::GetDataLength() const
132 {
133   PINDEX length = 0;
134   length += m_extensionId.GetObjectLength();
135   if (HasOptionalField(e_extensionContent))
136     length += m_extensionContent.GetObjectLength();
137   return length;
138 }
139 
140 
Decode(PASN_Stream & strm)141 PBoolean H4609_Extension::Decode(PASN_Stream & strm)
142 {
143   if (!PreambleDecode(strm))
144     return FALSE;
145 
146   if (!m_extensionId.Decode(strm))
147     return FALSE;
148   if (HasOptionalField(e_extensionContent) && !m_extensionContent.Decode(strm))
149     return FALSE;
150 
151   return UnknownExtensionsDecode(strm);
152 }
153 
154 
Encode(PASN_Stream & strm) const155 void H4609_Extension::Encode(PASN_Stream & strm) const
156 {
157   PreambleEncode(strm);
158 
159   m_extensionId.Encode(strm);
160   if (HasOptionalField(e_extensionContent))
161     m_extensionContent.Encode(strm);
162 
163   UnknownExtensionsEncode(strm);
164 }
165 
166 
Clone() const167 PObject * H4609_Extension::Clone() const
168 {
169 #ifndef PASN_LEANANDMEAN
170   PAssert(IsClass(H4609_Extension::Class()), PInvalidCast);
171 #endif
172   return new H4609_Extension(*this);
173 }
174 
175 
176 
177 #ifndef PASN_NOPRINTON
178 const static PASN_Names Names_H4609_QosMonitoringReportData[]={
179       {"periodic",0}
180      ,{"final",1}
181      ,{"interGK",2}
182 };
183 #endif
184 //
185 // QosMonitoringReportData
186 //
187 
H4609_QosMonitoringReportData(unsigned tag,PASN_Object::TagClass tagClass)188 H4609_QosMonitoringReportData::H4609_QosMonitoringReportData(unsigned tag, PASN_Object::TagClass tagClass)
189   : PASN_Choice(tag, tagClass, 3, TRUE
190 #ifndef PASN_NOPRINTON
191     ,(const PASN_Names *)Names_H4609_QosMonitoringReportData,3
192 #endif
193 )
194 {
195 }
196 
197 
198 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
operator H4609_PeriodicQoSMonReport&() const199 H4609_QosMonitoringReportData::operator H4609_PeriodicQoSMonReport &() const
200 #else
201 H4609_QosMonitoringReportData::operator H4609_PeriodicQoSMonReport &()
202 {
203 #ifndef PASN_LEANANDMEAN
204   PAssert(PIsDescendant(PAssertNULL(choice), H4609_PeriodicQoSMonReport), PInvalidCast);
205 #endif
206   return *(H4609_PeriodicQoSMonReport *)choice;
207 }
208 
209 
210 H4609_QosMonitoringReportData::operator const H4609_PeriodicQoSMonReport &() const
211 #endif
212 {
213 #ifndef PASN_LEANANDMEAN
214   PAssert(PIsDescendant(PAssertNULL(choice), H4609_PeriodicQoSMonReport), PInvalidCast);
215 #endif
216   return *(H4609_PeriodicQoSMonReport *)choice;
217 }
218 
219 
220 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
operator H4609_FinalQosMonReport&() const221 H4609_QosMonitoringReportData::operator H4609_FinalQosMonReport &() const
222 #else
223 H4609_QosMonitoringReportData::operator H4609_FinalQosMonReport &()
224 {
225 #ifndef PASN_LEANANDMEAN
226   PAssert(PIsDescendant(PAssertNULL(choice), H4609_FinalQosMonReport), PInvalidCast);
227 #endif
228   return *(H4609_FinalQosMonReport *)choice;
229 }
230 
231 
232 H4609_QosMonitoringReportData::operator const H4609_FinalQosMonReport &() const
233 #endif
234 {
235 #ifndef PASN_LEANANDMEAN
236   PAssert(PIsDescendant(PAssertNULL(choice), H4609_FinalQosMonReport), PInvalidCast);
237 #endif
238   return *(H4609_FinalQosMonReport *)choice;
239 }
240 
241 
242 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
operator H4609_InterGKQosMonReport&() const243 H4609_QosMonitoringReportData::operator H4609_InterGKQosMonReport &() const
244 #else
245 H4609_QosMonitoringReportData::operator H4609_InterGKQosMonReport &()
246 {
247 #ifndef PASN_LEANANDMEAN
248   PAssert(PIsDescendant(PAssertNULL(choice), H4609_InterGKQosMonReport), PInvalidCast);
249 #endif
250   return *(H4609_InterGKQosMonReport *)choice;
251 }
252 
253 
254 H4609_QosMonitoringReportData::operator const H4609_InterGKQosMonReport &() const
255 #endif
256 {
257 #ifndef PASN_LEANANDMEAN
258   PAssert(PIsDescendant(PAssertNULL(choice), H4609_InterGKQosMonReport), PInvalidCast);
259 #endif
260   return *(H4609_InterGKQosMonReport *)choice;
261 }
262 
263 
CreateObject()264 PBoolean H4609_QosMonitoringReportData::CreateObject()
265 {
266   switch (tag) {
267     case e_periodic :
268       choice = new H4609_PeriodicQoSMonReport();
269       return TRUE;
270     case e_final :
271       choice = new H4609_FinalQosMonReport();
272       return TRUE;
273     case e_interGK :
274       choice = new H4609_InterGKQosMonReport();
275       return TRUE;
276   }
277 
278   choice = NULL;
279   return FALSE;
280 }
281 
282 
Clone() const283 PObject * H4609_QosMonitoringReportData::Clone() const
284 {
285 #ifndef PASN_LEANANDMEAN
286   PAssert(IsClass(H4609_QosMonitoringReportData::Class()), PInvalidCast);
287 #endif
288   return new H4609_QosMonitoringReportData(*this);
289 }
290 
291 
292 //
293 // RTCPMeasures_mediaSenderMeasures
294 //
295 
H4609_RTCPMeasures_mediaSenderMeasures(unsigned tag,PASN_Object::TagClass tagClass)296 H4609_RTCPMeasures_mediaSenderMeasures::H4609_RTCPMeasures_mediaSenderMeasures(unsigned tag, PASN_Object::TagClass tagClass)
297   : PASN_Sequence(tag, tagClass, 2, TRUE, 0)
298 {
299 }
300 
301 
302 #ifndef PASN_NOPRINTON
PrintOn(ostream & strm) const303 void H4609_RTCPMeasures_mediaSenderMeasures::PrintOn(ostream & strm) const
304 {
305   std::streamsize indent = strm.precision() + 2;
306   strm << "{\n";
307   if (HasOptionalField(e_worstEstimatedEnd2EndDelay))
308     strm << setw(indent+29) << "worstEstimatedEnd2EndDelay = " << setprecision(indent) << m_worstEstimatedEnd2EndDelay << '\n';
309   if (HasOptionalField(e_meanEstimatedEnd2EndDelay))
310     strm << setw(indent+28) << "meanEstimatedEnd2EndDelay = " << setprecision(indent) << m_meanEstimatedEnd2EndDelay << '\n';
311   strm << setw(indent-1) << setprecision(indent-2) << "}";
312 }
313 #endif
314 
315 
Compare(const PObject & obj) const316 PObject::Comparison H4609_RTCPMeasures_mediaSenderMeasures::Compare(const PObject & obj) const
317 {
318 #ifndef PASN_LEANANDMEAN
319   PAssert(PIsDescendant(&obj, H4609_RTCPMeasures_mediaSenderMeasures), PInvalidCast);
320 #endif
321   const H4609_RTCPMeasures_mediaSenderMeasures & other = (const H4609_RTCPMeasures_mediaSenderMeasures &)obj;
322 
323   Comparison result;
324 
325   if ((result = m_worstEstimatedEnd2EndDelay.Compare(other.m_worstEstimatedEnd2EndDelay)) != EqualTo)
326     return result;
327   if ((result = m_meanEstimatedEnd2EndDelay.Compare(other.m_meanEstimatedEnd2EndDelay)) != EqualTo)
328     return result;
329 
330   return PASN_Sequence::Compare(other);
331 }
332 
333 
GetDataLength() const334 PINDEX H4609_RTCPMeasures_mediaSenderMeasures::GetDataLength() const
335 {
336   PINDEX length = 0;
337   if (HasOptionalField(e_worstEstimatedEnd2EndDelay))
338     length += m_worstEstimatedEnd2EndDelay.GetObjectLength();
339   if (HasOptionalField(e_meanEstimatedEnd2EndDelay))
340     length += m_meanEstimatedEnd2EndDelay.GetObjectLength();
341   return length;
342 }
343 
344 
Decode(PASN_Stream & strm)345 PBoolean H4609_RTCPMeasures_mediaSenderMeasures::Decode(PASN_Stream & strm)
346 {
347   if (!PreambleDecode(strm))
348     return FALSE;
349 
350   if (HasOptionalField(e_worstEstimatedEnd2EndDelay) && !m_worstEstimatedEnd2EndDelay.Decode(strm))
351     return FALSE;
352   if (HasOptionalField(e_meanEstimatedEnd2EndDelay) && !m_meanEstimatedEnd2EndDelay.Decode(strm))
353     return FALSE;
354 
355   return UnknownExtensionsDecode(strm);
356 }
357 
358 
Encode(PASN_Stream & strm) const359 void H4609_RTCPMeasures_mediaSenderMeasures::Encode(PASN_Stream & strm) const
360 {
361   PreambleEncode(strm);
362 
363   if (HasOptionalField(e_worstEstimatedEnd2EndDelay))
364     m_worstEstimatedEnd2EndDelay.Encode(strm);
365   if (HasOptionalField(e_meanEstimatedEnd2EndDelay))
366     m_meanEstimatedEnd2EndDelay.Encode(strm);
367 
368   UnknownExtensionsEncode(strm);
369 }
370 
371 
Clone() const372 PObject * H4609_RTCPMeasures_mediaSenderMeasures::Clone() const
373 {
374 #ifndef PASN_LEANANDMEAN
375   PAssert(IsClass(H4609_RTCPMeasures_mediaSenderMeasures::Class()), PInvalidCast);
376 #endif
377   return new H4609_RTCPMeasures_mediaSenderMeasures(*this);
378 }
379 
380 
381 //
382 // RTCPMeasures_mediaReceiverMeasures
383 //
384 
H4609_RTCPMeasures_mediaReceiverMeasures(unsigned tag,PASN_Object::TagClass tagClass)385 H4609_RTCPMeasures_mediaReceiverMeasures::H4609_RTCPMeasures_mediaReceiverMeasures(unsigned tag, PASN_Object::TagClass tagClass)
386   : PASN_Sequence(tag, tagClass, 6, TRUE, 0)
387 {
388   m_cumulativeNumberOfPacketsLost.SetConstraints(PASN_Object::FixedConstraint, 0, 4294967295U);
389   m_packetLostRate.SetConstraints(PASN_Object::FixedConstraint, 0, 65535);
390   m_fractionLostRate.SetConstraints(PASN_Object::FixedConstraint, 0, 65535);
391 }
392 
393 
394 #ifndef PASN_NOPRINTON
PrintOn(ostream & strm) const395 void H4609_RTCPMeasures_mediaReceiverMeasures::PrintOn(ostream & strm) const
396 {
397   std::streamsize indent = strm.precision() + 2;
398   strm << "{\n";
399   if (HasOptionalField(e_cumulativeNumberOfPacketsLost))
400     strm << setw(indent+32) << "cumulativeNumberOfPacketsLost = " << setprecision(indent) << m_cumulativeNumberOfPacketsLost << '\n';
401   if (HasOptionalField(e_packetLostRate))
402     strm << setw(indent+17) << "packetLostRate = " << setprecision(indent) << m_packetLostRate << '\n';
403   if (HasOptionalField(e_worstJitter))
404     strm << setw(indent+14) << "worstJitter = " << setprecision(indent) << m_worstJitter << '\n';
405   if (HasOptionalField(e_estimatedThroughput))
406     strm << setw(indent+22) << "estimatedThroughput = " << setprecision(indent) << m_estimatedThroughput << '\n';
407   if (HasOptionalField(e_fractionLostRate))
408     strm << setw(indent+19) << "fractionLostRate = " << setprecision(indent) << m_fractionLostRate << '\n';
409   if (HasOptionalField(e_meanJitter))
410     strm << setw(indent+13) << "meanJitter = " << setprecision(indent) << m_meanJitter << '\n';
411   strm << setw(indent-1) << setprecision(indent-2) << "}";
412 }
413 #endif
414 
415 
Compare(const PObject & obj) const416 PObject::Comparison H4609_RTCPMeasures_mediaReceiverMeasures::Compare(const PObject & obj) const
417 {
418 #ifndef PASN_LEANANDMEAN
419   PAssert(PIsDescendant(&obj, H4609_RTCPMeasures_mediaReceiverMeasures), PInvalidCast);
420 #endif
421   const H4609_RTCPMeasures_mediaReceiverMeasures & other = (const H4609_RTCPMeasures_mediaReceiverMeasures &)obj;
422 
423   Comparison result;
424 
425   if ((result = m_cumulativeNumberOfPacketsLost.Compare(other.m_cumulativeNumberOfPacketsLost)) != EqualTo)
426     return result;
427   if ((result = m_packetLostRate.Compare(other.m_packetLostRate)) != EqualTo)
428     return result;
429   if ((result = m_worstJitter.Compare(other.m_worstJitter)) != EqualTo)
430     return result;
431   if ((result = m_estimatedThroughput.Compare(other.m_estimatedThroughput)) != EqualTo)
432     return result;
433   if ((result = m_fractionLostRate.Compare(other.m_fractionLostRate)) != EqualTo)
434     return result;
435   if ((result = m_meanJitter.Compare(other.m_meanJitter)) != EqualTo)
436     return result;
437 
438   return PASN_Sequence::Compare(other);
439 }
440 
441 
GetDataLength() const442 PINDEX H4609_RTCPMeasures_mediaReceiverMeasures::GetDataLength() const
443 {
444   PINDEX length = 0;
445   if (HasOptionalField(e_cumulativeNumberOfPacketsLost))
446     length += m_cumulativeNumberOfPacketsLost.GetObjectLength();
447   if (HasOptionalField(e_packetLostRate))
448     length += m_packetLostRate.GetObjectLength();
449   if (HasOptionalField(e_worstJitter))
450     length += m_worstJitter.GetObjectLength();
451   if (HasOptionalField(e_estimatedThroughput))
452     length += m_estimatedThroughput.GetObjectLength();
453   if (HasOptionalField(e_fractionLostRate))
454     length += m_fractionLostRate.GetObjectLength();
455   if (HasOptionalField(e_meanJitter))
456     length += m_meanJitter.GetObjectLength();
457   return length;
458 }
459 
460 
Decode(PASN_Stream & strm)461 PBoolean H4609_RTCPMeasures_mediaReceiverMeasures::Decode(PASN_Stream & strm)
462 {
463   if (!PreambleDecode(strm))
464     return FALSE;
465 
466   if (HasOptionalField(e_cumulativeNumberOfPacketsLost) && !m_cumulativeNumberOfPacketsLost.Decode(strm))
467     return FALSE;
468   if (HasOptionalField(e_packetLostRate) && !m_packetLostRate.Decode(strm))
469     return FALSE;
470   if (HasOptionalField(e_worstJitter) && !m_worstJitter.Decode(strm))
471     return FALSE;
472   if (HasOptionalField(e_estimatedThroughput) && !m_estimatedThroughput.Decode(strm))
473     return FALSE;
474   if (HasOptionalField(e_fractionLostRate) && !m_fractionLostRate.Decode(strm))
475     return FALSE;
476   if (HasOptionalField(e_meanJitter) && !m_meanJitter.Decode(strm))
477     return FALSE;
478 
479   return UnknownExtensionsDecode(strm);
480 }
481 
482 
Encode(PASN_Stream & strm) const483 void H4609_RTCPMeasures_mediaReceiverMeasures::Encode(PASN_Stream & strm) const
484 {
485   PreambleEncode(strm);
486 
487   if (HasOptionalField(e_cumulativeNumberOfPacketsLost))
488     m_cumulativeNumberOfPacketsLost.Encode(strm);
489   if (HasOptionalField(e_packetLostRate))
490     m_packetLostRate.Encode(strm);
491   if (HasOptionalField(e_worstJitter))
492     m_worstJitter.Encode(strm);
493   if (HasOptionalField(e_estimatedThroughput))
494     m_estimatedThroughput.Encode(strm);
495   if (HasOptionalField(e_fractionLostRate))
496     m_fractionLostRate.Encode(strm);
497   if (HasOptionalField(e_meanJitter))
498     m_meanJitter.Encode(strm);
499 
500   UnknownExtensionsEncode(strm);
501 }
502 
503 
Clone() const504 PObject * H4609_RTCPMeasures_mediaReceiverMeasures::Clone() const
505 {
506 #ifndef PASN_LEANANDMEAN
507   PAssert(IsClass(H4609_RTCPMeasures_mediaReceiverMeasures::Class()), PInvalidCast);
508 #endif
509   return new H4609_RTCPMeasures_mediaReceiverMeasures(*this);
510 }
511 
512 
513 //
514 // ArrayOf_Extension
515 //
516 
H4609_ArrayOf_Extension(unsigned tag,PASN_Object::TagClass tagClass)517 H4609_ArrayOf_Extension::H4609_ArrayOf_Extension(unsigned tag, PASN_Object::TagClass tagClass)
518   : PASN_Array(tag, tagClass)
519 {
520 }
521 
522 
CreateObject() const523 PASN_Object * H4609_ArrayOf_Extension::CreateObject() const
524 {
525   return new H4609_Extension;
526 }
527 
528 
operator [](PINDEX i) const529 H4609_Extension & H4609_ArrayOf_Extension::operator[](PINDEX i) const
530 {
531   return (H4609_Extension &)array[i];
532 }
533 
534 
Clone() const535 PObject * H4609_ArrayOf_Extension::Clone() const
536 {
537 #ifndef PASN_LEANANDMEAN
538   PAssert(IsClass(H4609_ArrayOf_Extension::Class()), PInvalidCast);
539 #endif
540   return new H4609_ArrayOf_Extension(*this);
541 }
542 
543 
544 //
545 // ArrayOf_RTCPMeasures
546 //
547 
H4609_ArrayOf_RTCPMeasures(unsigned tag,PASN_Object::TagClass tagClass)548 H4609_ArrayOf_RTCPMeasures::H4609_ArrayOf_RTCPMeasures(unsigned tag, PASN_Object::TagClass tagClass)
549   : PASN_Array(tag, tagClass)
550 {
551 }
552 
553 
CreateObject() const554 PASN_Object * H4609_ArrayOf_RTCPMeasures::CreateObject() const
555 {
556   return new H4609_RTCPMeasures;
557 }
558 
559 
operator [](PINDEX i) const560 H4609_RTCPMeasures & H4609_ArrayOf_RTCPMeasures::operator[](PINDEX i) const
561 {
562   return (H4609_RTCPMeasures &)array[i];
563 }
564 
565 
Clone() const566 PObject * H4609_ArrayOf_RTCPMeasures::Clone() const
567 {
568 #ifndef PASN_LEANANDMEAN
569   PAssert(IsClass(H4609_ArrayOf_RTCPMeasures::Class()), PInvalidCast);
570 #endif
571   return new H4609_ArrayOf_RTCPMeasures(*this);
572 }
573 
574 
575 //
576 // ArrayOf_PerCallQoSReport
577 //
578 
H4609_ArrayOf_PerCallQoSReport(unsigned tag,PASN_Object::TagClass tagClass)579 H4609_ArrayOf_PerCallQoSReport::H4609_ArrayOf_PerCallQoSReport(unsigned tag, PASN_Object::TagClass tagClass)
580   : PASN_Array(tag, tagClass)
581 {
582 }
583 
584 
CreateObject() const585 PASN_Object * H4609_ArrayOf_PerCallQoSReport::CreateObject() const
586 {
587   return new H4609_PerCallQoSReport;
588 }
589 
590 
operator [](PINDEX i) const591 H4609_PerCallQoSReport & H4609_ArrayOf_PerCallQoSReport::operator[](PINDEX i) const
592 {
593   return (H4609_PerCallQoSReport &)array[i];
594 }
595 
596 
Clone() const597 PObject * H4609_ArrayOf_PerCallQoSReport::Clone() const
598 {
599 #ifndef PASN_LEANANDMEAN
600   PAssert(IsClass(H4609_ArrayOf_PerCallQoSReport::Class()), PInvalidCast);
601 #endif
602   return new H4609_ArrayOf_PerCallQoSReport(*this);
603 }
604 
605 
606 //
607 // RTCPMeasures
608 //
609 
H4609_RTCPMeasures(unsigned tag,PASN_Object::TagClass tagClass)610 H4609_RTCPMeasures::H4609_RTCPMeasures(unsigned tag, PASN_Object::TagClass tagClass)
611   : PASN_Sequence(tag, tagClass, 4, TRUE, 0)
612 {
613   m_sessionId.SetConstraints(PASN_Object::FixedConstraint, 1, 255);
614 }
615 
616 
617 #ifndef PASN_NOPRINTON
PrintOn(ostream & strm) const618 void H4609_RTCPMeasures::PrintOn(ostream & strm) const
619 {
620   std::streamsize indent = strm.precision() + 2;
621   strm << "{\n";
622   strm << setw(indent+13) << "rtpAddress = " << setprecision(indent) << m_rtpAddress << '\n';
623   strm << setw(indent+14) << "rtcpAddress = " << setprecision(indent) << m_rtcpAddress << '\n';
624   strm << setw(indent+12) << "sessionId = " << setprecision(indent) << m_sessionId << '\n';
625   if (HasOptionalField(e_nonStandardData))
626     strm << setw(indent+18) << "nonStandardData = " << setprecision(indent) << m_nonStandardData << '\n';
627   if (HasOptionalField(e_mediaSenderMeasures))
628     strm << setw(indent+22) << "mediaSenderMeasures = " << setprecision(indent) << m_mediaSenderMeasures << '\n';
629   if (HasOptionalField(e_mediaReceiverMeasures))
630     strm << setw(indent+24) << "mediaReceiverMeasures = " << setprecision(indent) << m_mediaReceiverMeasures << '\n';
631   if (HasOptionalField(e_extensions))
632     strm << setw(indent+13) << "extensions = " << setprecision(indent) << m_extensions << '\n';
633   strm << setw(indent-1) << setprecision(indent-2) << "}";
634 }
635 #endif
636 
637 
Compare(const PObject & obj) const638 PObject::Comparison H4609_RTCPMeasures::Compare(const PObject & obj) const
639 {
640 #ifndef PASN_LEANANDMEAN
641   PAssert(PIsDescendant(&obj, H4609_RTCPMeasures), PInvalidCast);
642 #endif
643   const H4609_RTCPMeasures & other = (const H4609_RTCPMeasures &)obj;
644 
645   Comparison result;
646 
647   if ((result = m_rtpAddress.Compare(other.m_rtpAddress)) != EqualTo)
648     return result;
649   if ((result = m_rtcpAddress.Compare(other.m_rtcpAddress)) != EqualTo)
650     return result;
651   if ((result = m_sessionId.Compare(other.m_sessionId)) != EqualTo)
652     return result;
653   if ((result = m_nonStandardData.Compare(other.m_nonStandardData)) != EqualTo)
654     return result;
655   if ((result = m_mediaSenderMeasures.Compare(other.m_mediaSenderMeasures)) != EqualTo)
656     return result;
657   if ((result = m_mediaReceiverMeasures.Compare(other.m_mediaReceiverMeasures)) != EqualTo)
658     return result;
659   if ((result = m_extensions.Compare(other.m_extensions)) != EqualTo)
660     return result;
661 
662   return PASN_Sequence::Compare(other);
663 }
664 
665 
GetDataLength() const666 PINDEX H4609_RTCPMeasures::GetDataLength() const
667 {
668   PINDEX length = 0;
669   length += m_rtpAddress.GetObjectLength();
670   length += m_rtcpAddress.GetObjectLength();
671   length += m_sessionId.GetObjectLength();
672   if (HasOptionalField(e_nonStandardData))
673     length += m_nonStandardData.GetObjectLength();
674   if (HasOptionalField(e_mediaSenderMeasures))
675     length += m_mediaSenderMeasures.GetObjectLength();
676   if (HasOptionalField(e_mediaReceiverMeasures))
677     length += m_mediaReceiverMeasures.GetObjectLength();
678   if (HasOptionalField(e_extensions))
679     length += m_extensions.GetObjectLength();
680   return length;
681 }
682 
683 
Decode(PASN_Stream & strm)684 PBoolean H4609_RTCPMeasures::Decode(PASN_Stream & strm)
685 {
686   if (!PreambleDecode(strm))
687     return FALSE;
688 
689   if (!m_rtpAddress.Decode(strm))
690     return FALSE;
691   if (!m_rtcpAddress.Decode(strm))
692     return FALSE;
693   if (!m_sessionId.Decode(strm))
694     return FALSE;
695   if (HasOptionalField(e_nonStandardData) && !m_nonStandardData.Decode(strm))
696     return FALSE;
697   if (HasOptionalField(e_mediaSenderMeasures) && !m_mediaSenderMeasures.Decode(strm))
698     return FALSE;
699   if (HasOptionalField(e_mediaReceiverMeasures) && !m_mediaReceiverMeasures.Decode(strm))
700     return FALSE;
701   if (HasOptionalField(e_extensions) && !m_extensions.Decode(strm))
702     return FALSE;
703 
704   return UnknownExtensionsDecode(strm);
705 }
706 
707 
Encode(PASN_Stream & strm) const708 void H4609_RTCPMeasures::Encode(PASN_Stream & strm) const
709 {
710   PreambleEncode(strm);
711 
712   m_rtpAddress.Encode(strm);
713   m_rtcpAddress.Encode(strm);
714   m_sessionId.Encode(strm);
715   if (HasOptionalField(e_nonStandardData))
716     m_nonStandardData.Encode(strm);
717   if (HasOptionalField(e_mediaSenderMeasures))
718     m_mediaSenderMeasures.Encode(strm);
719   if (HasOptionalField(e_mediaReceiverMeasures))
720     m_mediaReceiverMeasures.Encode(strm);
721   if (HasOptionalField(e_extensions))
722     m_extensions.Encode(strm);
723 
724   UnknownExtensionsEncode(strm);
725 }
726 
727 
Clone() const728 PObject * H4609_RTCPMeasures::Clone() const
729 {
730 #ifndef PASN_LEANANDMEAN
731   PAssert(IsClass(H4609_RTCPMeasures::Class()), PInvalidCast);
732 #endif
733   return new H4609_RTCPMeasures(*this);
734 }
735 
736 
737 //
738 // PerCallQoSReport
739 //
740 
H4609_PerCallQoSReport(unsigned tag,PASN_Object::TagClass tagClass)741 H4609_PerCallQoSReport::H4609_PerCallQoSReport(unsigned tag, PASN_Object::TagClass tagClass)
742   : PASN_Sequence(tag, tagClass, 3, TRUE, 0)
743 {
744 }
745 
746 
747 #ifndef PASN_NOPRINTON
PrintOn(ostream & strm) const748 void H4609_PerCallQoSReport::PrintOn(ostream & strm) const
749 {
750   std::streamsize indent = strm.precision() + 2;
751   strm << "{\n";
752   if (HasOptionalField(e_nonStandardData))
753     strm << setw(indent+18) << "nonStandardData = " << setprecision(indent) << m_nonStandardData << '\n';
754   strm << setw(indent+21) << "callReferenceValue = " << setprecision(indent) << m_callReferenceValue << '\n';
755   strm << setw(indent+15) << "conferenceID = " << setprecision(indent) << m_conferenceID << '\n';
756   strm << setw(indent+17) << "callIdentifier = " << setprecision(indent) << m_callIdentifier << '\n';
757   if (HasOptionalField(e_mediaChannelsQoS))
758     strm << setw(indent+19) << "mediaChannelsQoS = " << setprecision(indent) << m_mediaChannelsQoS << '\n';
759   if (HasOptionalField(e_extensions))
760     strm << setw(indent+13) << "extensions = " << setprecision(indent) << m_extensions << '\n';
761   strm << setw(indent-1) << setprecision(indent-2) << "}";
762 }
763 #endif
764 
765 
Compare(const PObject & obj) const766 PObject::Comparison H4609_PerCallQoSReport::Compare(const PObject & obj) const
767 {
768 #ifndef PASN_LEANANDMEAN
769   PAssert(PIsDescendant(&obj, H4609_PerCallQoSReport), PInvalidCast);
770 #endif
771   const H4609_PerCallQoSReport & other = (const H4609_PerCallQoSReport &)obj;
772 
773   Comparison result;
774 
775   if ((result = m_nonStandardData.Compare(other.m_nonStandardData)) != EqualTo)
776     return result;
777   if ((result = m_callReferenceValue.Compare(other.m_callReferenceValue)) != EqualTo)
778     return result;
779   if ((result = m_conferenceID.Compare(other.m_conferenceID)) != EqualTo)
780     return result;
781   if ((result = m_callIdentifier.Compare(other.m_callIdentifier)) != EqualTo)
782     return result;
783   if ((result = m_mediaChannelsQoS.Compare(other.m_mediaChannelsQoS)) != EqualTo)
784     return result;
785   if ((result = m_extensions.Compare(other.m_extensions)) != EqualTo)
786     return result;
787 
788   return PASN_Sequence::Compare(other);
789 }
790 
791 
GetDataLength() const792 PINDEX H4609_PerCallQoSReport::GetDataLength() const
793 {
794   PINDEX length = 0;
795   if (HasOptionalField(e_nonStandardData))
796     length += m_nonStandardData.GetObjectLength();
797   length += m_callReferenceValue.GetObjectLength();
798   length += m_conferenceID.GetObjectLength();
799   length += m_callIdentifier.GetObjectLength();
800   if (HasOptionalField(e_mediaChannelsQoS))
801     length += m_mediaChannelsQoS.GetObjectLength();
802   if (HasOptionalField(e_extensions))
803     length += m_extensions.GetObjectLength();
804   return length;
805 }
806 
807 
Decode(PASN_Stream & strm)808 PBoolean H4609_PerCallQoSReport::Decode(PASN_Stream & strm)
809 {
810   if (!PreambleDecode(strm))
811     return FALSE;
812 
813   if (HasOptionalField(e_nonStandardData) && !m_nonStandardData.Decode(strm))
814     return FALSE;
815   if (!m_callReferenceValue.Decode(strm))
816     return FALSE;
817   if (!m_conferenceID.Decode(strm))
818     return FALSE;
819   if (!m_callIdentifier.Decode(strm))
820     return FALSE;
821   if (HasOptionalField(e_mediaChannelsQoS) && !m_mediaChannelsQoS.Decode(strm))
822     return FALSE;
823   if (HasOptionalField(e_extensions) && !m_extensions.Decode(strm))
824     return FALSE;
825 
826   return UnknownExtensionsDecode(strm);
827 }
828 
829 
Encode(PASN_Stream & strm) const830 void H4609_PerCallQoSReport::Encode(PASN_Stream & strm) const
831 {
832   PreambleEncode(strm);
833 
834   if (HasOptionalField(e_nonStandardData))
835     m_nonStandardData.Encode(strm);
836   m_callReferenceValue.Encode(strm);
837   m_conferenceID.Encode(strm);
838   m_callIdentifier.Encode(strm);
839   if (HasOptionalField(e_mediaChannelsQoS))
840     m_mediaChannelsQoS.Encode(strm);
841   if (HasOptionalField(e_extensions))
842     m_extensions.Encode(strm);
843 
844   UnknownExtensionsEncode(strm);
845 }
846 
847 
Clone() const848 PObject * H4609_PerCallQoSReport::Clone() const
849 {
850 #ifndef PASN_LEANANDMEAN
851   PAssert(IsClass(H4609_PerCallQoSReport::Class()), PInvalidCast);
852 #endif
853   return new H4609_PerCallQoSReport(*this);
854 }
855 
856 
857 //
858 // PeriodicQoSMonReport
859 //
860 
H4609_PeriodicQoSMonReport(unsigned tag,PASN_Object::TagClass tagClass)861 H4609_PeriodicQoSMonReport::H4609_PeriodicQoSMonReport(unsigned tag, PASN_Object::TagClass tagClass)
862   : PASN_Sequence(tag, tagClass, 1, TRUE, 0)
863 {
864 }
865 
866 
867 #ifndef PASN_NOPRINTON
PrintOn(ostream & strm) const868 void H4609_PeriodicQoSMonReport::PrintOn(ostream & strm) const
869 {
870   std::streamsize indent = strm.precision() + 2;
871   strm << "{\n";
872   strm << setw(indent+14) << "perCallInfo = " << setprecision(indent) << m_perCallInfo << '\n';
873   if (HasOptionalField(e_extensions))
874     strm << setw(indent+13) << "extensions = " << setprecision(indent) << m_extensions << '\n';
875   strm << setw(indent-1) << setprecision(indent-2) << "}";
876 }
877 #endif
878 
879 
Compare(const PObject & obj) const880 PObject::Comparison H4609_PeriodicQoSMonReport::Compare(const PObject & obj) const
881 {
882 #ifndef PASN_LEANANDMEAN
883   PAssert(PIsDescendant(&obj, H4609_PeriodicQoSMonReport), PInvalidCast);
884 #endif
885   const H4609_PeriodicQoSMonReport & other = (const H4609_PeriodicQoSMonReport &)obj;
886 
887   Comparison result;
888 
889   if ((result = m_perCallInfo.Compare(other.m_perCallInfo)) != EqualTo)
890     return result;
891   if ((result = m_extensions.Compare(other.m_extensions)) != EqualTo)
892     return result;
893 
894   return PASN_Sequence::Compare(other);
895 }
896 
897 
GetDataLength() const898 PINDEX H4609_PeriodicQoSMonReport::GetDataLength() const
899 {
900   PINDEX length = 0;
901   length += m_perCallInfo.GetObjectLength();
902   if (HasOptionalField(e_extensions))
903     length += m_extensions.GetObjectLength();
904   return length;
905 }
906 
907 
Decode(PASN_Stream & strm)908 PBoolean H4609_PeriodicQoSMonReport::Decode(PASN_Stream & strm)
909 {
910   if (!PreambleDecode(strm))
911     return FALSE;
912 
913   if (!m_perCallInfo.Decode(strm))
914     return FALSE;
915   if (HasOptionalField(e_extensions) && !m_extensions.Decode(strm))
916     return FALSE;
917 
918   return UnknownExtensionsDecode(strm);
919 }
920 
921 
Encode(PASN_Stream & strm) const922 void H4609_PeriodicQoSMonReport::Encode(PASN_Stream & strm) const
923 {
924   PreambleEncode(strm);
925 
926   m_perCallInfo.Encode(strm);
927   if (HasOptionalField(e_extensions))
928     m_extensions.Encode(strm);
929 
930   UnknownExtensionsEncode(strm);
931 }
932 
933 
Clone() const934 PObject * H4609_PeriodicQoSMonReport::Clone() const
935 {
936 #ifndef PASN_LEANANDMEAN
937   PAssert(IsClass(H4609_PeriodicQoSMonReport::Class()), PInvalidCast);
938 #endif
939   return new H4609_PeriodicQoSMonReport(*this);
940 }
941 
942 
943 //
944 // FinalQosMonReport
945 //
946 
H4609_FinalQosMonReport(unsigned tag,PASN_Object::TagClass tagClass)947 H4609_FinalQosMonReport::H4609_FinalQosMonReport(unsigned tag, PASN_Object::TagClass tagClass)
948   : PASN_Sequence(tag, tagClass, 2, TRUE, 0)
949 {
950 }
951 
952 
953 #ifndef PASN_NOPRINTON
PrintOn(ostream & strm) const954 void H4609_FinalQosMonReport::PrintOn(ostream & strm) const
955 {
956   std::streamsize indent = strm.precision() + 2;
957   strm << "{\n";
958   strm << setw(indent+12) << "mediaInfo = " << setprecision(indent) << m_mediaInfo << '\n';
959   if (HasOptionalField(e_nonStandardData))
960     strm << setw(indent+18) << "nonStandardData = " << setprecision(indent) << m_nonStandardData << '\n';
961   if (HasOptionalField(e_extensions))
962     strm << setw(indent+13) << "extensions = " << setprecision(indent) << m_extensions << '\n';
963   strm << setw(indent-1) << setprecision(indent-2) << "}";
964 }
965 #endif
966 
967 
Compare(const PObject & obj) const968 PObject::Comparison H4609_FinalQosMonReport::Compare(const PObject & obj) const
969 {
970 #ifndef PASN_LEANANDMEAN
971   PAssert(PIsDescendant(&obj, H4609_FinalQosMonReport), PInvalidCast);
972 #endif
973   const H4609_FinalQosMonReport & other = (const H4609_FinalQosMonReport &)obj;
974 
975   Comparison result;
976 
977   if ((result = m_mediaInfo.Compare(other.m_mediaInfo)) != EqualTo)
978     return result;
979   if ((result = m_nonStandardData.Compare(other.m_nonStandardData)) != EqualTo)
980     return result;
981   if ((result = m_extensions.Compare(other.m_extensions)) != EqualTo)
982     return result;
983 
984   return PASN_Sequence::Compare(other);
985 }
986 
987 
GetDataLength() const988 PINDEX H4609_FinalQosMonReport::GetDataLength() const
989 {
990   PINDEX length = 0;
991   length += m_mediaInfo.GetObjectLength();
992   if (HasOptionalField(e_nonStandardData))
993     length += m_nonStandardData.GetObjectLength();
994   if (HasOptionalField(e_extensions))
995     length += m_extensions.GetObjectLength();
996   return length;
997 }
998 
999 
Decode(PASN_Stream & strm)1000 PBoolean H4609_FinalQosMonReport::Decode(PASN_Stream & strm)
1001 {
1002   if (!PreambleDecode(strm))
1003     return FALSE;
1004 
1005   if (!m_mediaInfo.Decode(strm))
1006     return FALSE;
1007   if (HasOptionalField(e_nonStandardData) && !m_nonStandardData.Decode(strm))
1008     return FALSE;
1009   if (HasOptionalField(e_extensions) && !m_extensions.Decode(strm))
1010     return FALSE;
1011 
1012   return UnknownExtensionsDecode(strm);
1013 }
1014 
1015 
Encode(PASN_Stream & strm) const1016 void H4609_FinalQosMonReport::Encode(PASN_Stream & strm) const
1017 {
1018   PreambleEncode(strm);
1019 
1020   m_mediaInfo.Encode(strm);
1021   if (HasOptionalField(e_nonStandardData))
1022     m_nonStandardData.Encode(strm);
1023   if (HasOptionalField(e_extensions))
1024     m_extensions.Encode(strm);
1025 
1026   UnknownExtensionsEncode(strm);
1027 }
1028 
1029 
Clone() const1030 PObject * H4609_FinalQosMonReport::Clone() const
1031 {
1032 #ifndef PASN_LEANANDMEAN
1033   PAssert(IsClass(H4609_FinalQosMonReport::Class()), PInvalidCast);
1034 #endif
1035   return new H4609_FinalQosMonReport(*this);
1036 }
1037 
1038 
1039 //
1040 // InterGKQosMonReport
1041 //
1042 
H4609_InterGKQosMonReport(unsigned tag,PASN_Object::TagClass tagClass)1043 H4609_InterGKQosMonReport::H4609_InterGKQosMonReport(unsigned tag, PASN_Object::TagClass tagClass)
1044   : PASN_Sequence(tag, tagClass, 2, TRUE, 0)
1045 {
1046 }
1047 
1048 
1049 #ifndef PASN_NOPRINTON
PrintOn(ostream & strm) const1050 void H4609_InterGKQosMonReport::PrintOn(ostream & strm) const
1051 {
1052   std::streamsize indent = strm.precision() + 2;
1053   strm << "{\n";
1054   strm << setw(indent+12) << "mediaInfo = " << setprecision(indent) << m_mediaInfo << '\n';
1055   if (HasOptionalField(e_nonStandardData))
1056     strm << setw(indent+18) << "nonStandardData = " << setprecision(indent) << m_nonStandardData << '\n';
1057   if (HasOptionalField(e_extensions))
1058     strm << setw(indent+13) << "extensions = " << setprecision(indent) << m_extensions << '\n';
1059   strm << setw(indent-1) << setprecision(indent-2) << "}";
1060 }
1061 #endif
1062 
1063 
Compare(const PObject & obj) const1064 PObject::Comparison H4609_InterGKQosMonReport::Compare(const PObject & obj) const
1065 {
1066 #ifndef PASN_LEANANDMEAN
1067   PAssert(PIsDescendant(&obj, H4609_InterGKQosMonReport), PInvalidCast);
1068 #endif
1069   const H4609_InterGKQosMonReport & other = (const H4609_InterGKQosMonReport &)obj;
1070 
1071   Comparison result;
1072 
1073   if ((result = m_mediaInfo.Compare(other.m_mediaInfo)) != EqualTo)
1074     return result;
1075   if ((result = m_nonStandardData.Compare(other.m_nonStandardData)) != EqualTo)
1076     return result;
1077   if ((result = m_extensions.Compare(other.m_extensions)) != EqualTo)
1078     return result;
1079 
1080   return PASN_Sequence::Compare(other);
1081 }
1082 
1083 
GetDataLength() const1084 PINDEX H4609_InterGKQosMonReport::GetDataLength() const
1085 {
1086   PINDEX length = 0;
1087   length += m_mediaInfo.GetObjectLength();
1088   if (HasOptionalField(e_nonStandardData))
1089     length += m_nonStandardData.GetObjectLength();
1090   if (HasOptionalField(e_extensions))
1091     length += m_extensions.GetObjectLength();
1092   return length;
1093 }
1094 
1095 
Decode(PASN_Stream & strm)1096 PBoolean H4609_InterGKQosMonReport::Decode(PASN_Stream & strm)
1097 {
1098   if (!PreambleDecode(strm))
1099     return FALSE;
1100 
1101   if (!m_mediaInfo.Decode(strm))
1102     return FALSE;
1103   if (HasOptionalField(e_nonStandardData) && !m_nonStandardData.Decode(strm))
1104     return FALSE;
1105   if (HasOptionalField(e_extensions) && !m_extensions.Decode(strm))
1106     return FALSE;
1107 
1108   return UnknownExtensionsDecode(strm);
1109 }
1110 
1111 
Encode(PASN_Stream & strm) const1112 void H4609_InterGKQosMonReport::Encode(PASN_Stream & strm) const
1113 {
1114   PreambleEncode(strm);
1115 
1116   m_mediaInfo.Encode(strm);
1117   if (HasOptionalField(e_nonStandardData))
1118     m_nonStandardData.Encode(strm);
1119   if (HasOptionalField(e_extensions))
1120     m_extensions.Encode(strm);
1121 
1122   UnknownExtensionsEncode(strm);
1123 }
1124 
1125 
Clone() const1126 PObject * H4609_InterGKQosMonReport::Clone() const
1127 {
1128 #ifndef PASN_LEANANDMEAN
1129   PAssert(IsClass(H4609_InterGKQosMonReport::Class()), PInvalidCast);
1130 #endif
1131   return new H4609_InterGKQosMonReport(*this);
1132 }
1133 
1134 
1135 #endif // OPAL_H460
1136 
1137 
1138 // End of h4609.cxx
1139