OSDN Git Service

Add MS7619SE
[uclinux-h8/uClinux-dist.git] / lib / libopenh323 / include / mcspdu.h
1 //
2 // mcspdu.h
3 //
4 // Code automatically generated by asnparse.
5 //
6
7 #if ! H323_DISABLE_MCS
8
9 #ifndef __MCS_H
10 #define __MCS_H
11
12 #ifdef P_USE_PRAGMA
13 #pragma interface
14 #endif
15
16 #include <ptclib/asner.h>
17
18 //
19 // ChannelId
20 //
21
22 class MCS_ChannelId : public PASN_Integer
23 {
24 #ifndef PASN_LEANANDMEAN
25     PCLASSINFO(MCS_ChannelId, PASN_Integer);
26 #endif
27   public:
28     MCS_ChannelId(unsigned tag = UniversalInteger, TagClass tagClass = UniversalTagClass);
29
30     MCS_ChannelId & operator=(int v);
31     MCS_ChannelId & operator=(unsigned v);
32     PObject * Clone() const;
33 };
34
35
36 //
37 // StaticChannelId
38 //
39
40 class MCS_StaticChannelId : public PASN_Integer
41 {
42 #ifndef PASN_LEANANDMEAN
43     PCLASSINFO(MCS_StaticChannelId, PASN_Integer);
44 #endif
45   public:
46     MCS_StaticChannelId(unsigned tag = UniversalInteger, TagClass tagClass = UniversalTagClass);
47
48     MCS_StaticChannelId & operator=(int v);
49     MCS_StaticChannelId & operator=(unsigned v);
50     PObject * Clone() const;
51 };
52
53
54 //
55 // DynamicChannelId
56 //
57
58 class MCS_DynamicChannelId : public PASN_Integer
59 {
60 #ifndef PASN_LEANANDMEAN
61     PCLASSINFO(MCS_DynamicChannelId, PASN_Integer);
62 #endif
63   public:
64     MCS_DynamicChannelId(unsigned tag = UniversalInteger, TagClass tagClass = UniversalTagClass);
65
66     MCS_DynamicChannelId & operator=(int v);
67     MCS_DynamicChannelId & operator=(unsigned v);
68     PObject * Clone() const;
69 };
70
71
72 //
73 // UserId
74 //
75
76 class MCS_UserId : public MCS_DynamicChannelId
77 {
78 #ifndef PASN_LEANANDMEAN
79     PCLASSINFO(MCS_UserId, MCS_DynamicChannelId);
80 #endif
81   public:
82     MCS_UserId(unsigned tag = UniversalInteger, TagClass tagClass = UniversalTagClass);
83
84     MCS_UserId & operator=(int v);
85     MCS_UserId & operator=(unsigned v);
86     PObject * Clone() const;
87 };
88
89
90 //
91 // PrivateChannelId
92 //
93
94 class MCS_PrivateChannelId : public MCS_DynamicChannelId
95 {
96 #ifndef PASN_LEANANDMEAN
97     PCLASSINFO(MCS_PrivateChannelId, MCS_DynamicChannelId);
98 #endif
99   public:
100     MCS_PrivateChannelId(unsigned tag = UniversalInteger, TagClass tagClass = UniversalTagClass);
101
102     MCS_PrivateChannelId & operator=(int v);
103     MCS_PrivateChannelId & operator=(unsigned v);
104     PObject * Clone() const;
105 };
106
107
108 //
109 // AssignedChannelId
110 //
111
112 class MCS_AssignedChannelId : public MCS_DynamicChannelId
113 {
114 #ifndef PASN_LEANANDMEAN
115     PCLASSINFO(MCS_AssignedChannelId, MCS_DynamicChannelId);
116 #endif
117   public:
118     MCS_AssignedChannelId(unsigned tag = UniversalInteger, TagClass tagClass = UniversalTagClass);
119
120     MCS_AssignedChannelId & operator=(int v);
121     MCS_AssignedChannelId & operator=(unsigned v);
122     PObject * Clone() const;
123 };
124
125
126 //
127 // TokenId
128 //
129
130 class MCS_TokenId : public PASN_Integer
131 {
132 #ifndef PASN_LEANANDMEAN
133     PCLASSINFO(MCS_TokenId, PASN_Integer);
134 #endif
135   public:
136     MCS_TokenId(unsigned tag = UniversalInteger, TagClass tagClass = UniversalTagClass);
137
138     MCS_TokenId & operator=(int v);
139     MCS_TokenId & operator=(unsigned v);
140     PObject * Clone() const;
141 };
142
143
144 //
145 // TokenStatus
146 //
147
148 class MCS_TokenStatus : public PASN_Enumeration
149 {
150 #ifndef PASN_LEANANDMEAN
151     PCLASSINFO(MCS_TokenStatus, PASN_Enumeration);
152 #endif
153   public:
154     MCS_TokenStatus(unsigned tag = UniversalEnumeration, TagClass tagClass = UniversalTagClass);
155
156     enum Enumerations {
157       e_notInUse,
158       e_selfGrabbed,
159       e_otherGrabbed,
160       e_selfInhibited,
161       e_otherInhibited,
162       e_selfRecipient,
163       e_selfGiving,
164       e_otherGiving
165     };
166
167     MCS_TokenStatus & operator=(unsigned v);
168     PObject * Clone() const;
169 };
170
171
172 //
173 // DataPriority
174 //
175
176 class MCS_DataPriority : public PASN_Enumeration
177 {
178 #ifndef PASN_LEANANDMEAN
179     PCLASSINFO(MCS_DataPriority, PASN_Enumeration);
180 #endif
181   public:
182     MCS_DataPriority(unsigned tag = UniversalEnumeration, TagClass tagClass = UniversalTagClass);
183
184     enum Enumerations {
185       e_top,
186       e_high,
187       e_medium,
188       e_low
189     };
190
191     MCS_DataPriority & operator=(unsigned v);
192     PObject * Clone() const;
193 };
194
195
196 //
197 // Segmentation
198 //
199
200 class MCS_Segmentation : public PASN_BitString
201 {
202 #ifndef PASN_LEANANDMEAN
203     PCLASSINFO(MCS_Segmentation, PASN_BitString);
204 #endif
205   public:
206     MCS_Segmentation(unsigned tag = UniversalBitString, TagClass tagClass = UniversalTagClass);
207
208     PObject * Clone() const;
209 };
210
211
212 //
213 // DomainParameters
214 //
215
216 class MCS_DomainParameters : public PASN_Sequence
217 {
218 #ifndef PASN_LEANANDMEAN
219     PCLASSINFO(MCS_DomainParameters, PASN_Sequence);
220 #endif
221   public:
222     MCS_DomainParameters(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
223
224     PASN_Integer m_maxChannelIds;
225     PASN_Integer m_maxUserIds;
226     PASN_Integer m_maxTokenIds;
227     PASN_Integer m_numPriorities;
228     PASN_Integer m_minThroughput;
229     PASN_Integer m_maxHeight;
230     PASN_Integer m_maxMCSPDUsize;
231     PASN_Integer m_protocolVersion;
232
233     PINDEX GetDataLength() const;
234     BOOL Decode(PASN_Stream & strm);
235     void Encode(PASN_Stream & strm) const;
236 #ifndef PASN_NOPRINTON
237     void PrintOn(ostream & strm) const;
238 #endif
239     Comparison Compare(const PObject & obj) const;
240     PObject * Clone() const;
241 };
242
243
244 //
245 // Connect-Initial
246 //
247
248 class MCS_Connect_Initial : public PASN_Sequence
249 {
250 #ifndef PASN_LEANANDMEAN
251     PCLASSINFO(MCS_Connect_Initial, PASN_Sequence);
252 #endif
253   public:
254     MCS_Connect_Initial(unsigned tag = 101, TagClass tagClass = ApplicationTagClass);
255
256     PASN_OctetString m_callingDomainSelector;
257     PASN_OctetString m_calledDomainSelector;
258     PASN_Boolean m_upwardFlag;
259     MCS_DomainParameters m_targetParameters;
260     MCS_DomainParameters m_minimumParameters;
261     MCS_DomainParameters m_maximumParameters;
262     PASN_OctetString m_userData;
263
264     PINDEX GetDataLength() const;
265     BOOL Decode(PASN_Stream & strm);
266     void Encode(PASN_Stream & strm) const;
267 #ifndef PASN_NOPRINTON
268     void PrintOn(ostream & strm) const;
269 #endif
270     Comparison Compare(const PObject & obj) const;
271     PObject * Clone() const;
272 };
273
274
275 //
276 // Connect-Additional
277 //
278
279 class MCS_Connect_Additional : public PASN_Sequence
280 {
281 #ifndef PASN_LEANANDMEAN
282     PCLASSINFO(MCS_Connect_Additional, PASN_Sequence);
283 #endif
284   public:
285     MCS_Connect_Additional(unsigned tag = 103, TagClass tagClass = ApplicationTagClass);
286
287     PASN_Integer m_calledConnectId;
288     MCS_DataPriority m_dataPriority;
289
290     PINDEX GetDataLength() const;
291     BOOL Decode(PASN_Stream & strm);
292     void Encode(PASN_Stream & strm) const;
293 #ifndef PASN_NOPRINTON
294     void PrintOn(ostream & strm) const;
295 #endif
296     Comparison Compare(const PObject & obj) const;
297     PObject * Clone() const;
298 };
299
300
301 //
302 // PDin
303 //
304
305 class MCS_PDin : public PASN_Sequence
306 {
307 #ifndef PASN_LEANANDMEAN
308     PCLASSINFO(MCS_PDin, PASN_Sequence);
309 #endif
310   public:
311     MCS_PDin(unsigned tag = 0, TagClass tagClass = ApplicationTagClass);
312
313     PASN_Integer m_heightLimit;
314
315     PINDEX GetDataLength() const;
316     BOOL Decode(PASN_Stream & strm);
317     void Encode(PASN_Stream & strm) const;
318 #ifndef PASN_NOPRINTON
319     void PrintOn(ostream & strm) const;
320 #endif
321     Comparison Compare(const PObject & obj) const;
322     PObject * Clone() const;
323 };
324
325
326 //
327 // EDrq
328 //
329
330 class MCS_EDrq : public PASN_Sequence
331 {
332 #ifndef PASN_LEANANDMEAN
333     PCLASSINFO(MCS_EDrq, PASN_Sequence);
334 #endif
335   public:
336     MCS_EDrq(unsigned tag = 1, TagClass tagClass = ApplicationTagClass);
337
338     PASN_Integer m_subHeight;
339     PASN_Integer m_subInterval;
340
341     PINDEX GetDataLength() const;
342     BOOL Decode(PASN_Stream & strm);
343     void Encode(PASN_Stream & strm) const;
344 #ifndef PASN_NOPRINTON
345     void PrintOn(ostream & strm) const;
346 #endif
347     Comparison Compare(const PObject & obj) const;
348     PObject * Clone() const;
349 };
350
351
352 //
353 // ChannelAttributes
354 //
355
356 class MCS_ChannelAttributes_static;
357 class MCS_ChannelAttributes_userId;
358 class MCS_ChannelAttributes_private;
359 class MCS_ChannelAttributes_assigned;
360
361 class MCS_ChannelAttributes : public PASN_Choice
362 {
363 #ifndef PASN_LEANANDMEAN
364     PCLASSINFO(MCS_ChannelAttributes, PASN_Choice);
365 #endif
366   public:
367     MCS_ChannelAttributes(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
368
369     enum Choices {
370       e_static,
371       e_userId,
372       e_private,
373       e_assigned
374     };
375
376 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
377     operator MCS_ChannelAttributes_static &() const;
378 #else
379     operator MCS_ChannelAttributes_static &();
380     operator const MCS_ChannelAttributes_static &() const;
381 #endif
382 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
383     operator MCS_ChannelAttributes_userId &() const;
384 #else
385     operator MCS_ChannelAttributes_userId &();
386     operator const MCS_ChannelAttributes_userId &() const;
387 #endif
388 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
389     operator MCS_ChannelAttributes_private &() const;
390 #else
391     operator MCS_ChannelAttributes_private &();
392     operator const MCS_ChannelAttributes_private &() const;
393 #endif
394 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
395     operator MCS_ChannelAttributes_assigned &() const;
396 #else
397     operator MCS_ChannelAttributes_assigned &();
398     operator const MCS_ChannelAttributes_assigned &() const;
399 #endif
400
401     BOOL CreateObject();
402     PObject * Clone() const;
403 };
404
405
406 //
407 // TokenAttributes
408 //
409
410 class MCS_TokenAttributes_grabbed;
411 class MCS_TokenAttributes_inhibited;
412 class MCS_TokenAttributes_giving;
413 class MCS_TokenAttributes_ungivable;
414 class MCS_TokenAttributes_given;
415
416 class MCS_TokenAttributes : public PASN_Choice
417 {
418 #ifndef PASN_LEANANDMEAN
419     PCLASSINFO(MCS_TokenAttributes, PASN_Choice);
420 #endif
421   public:
422     MCS_TokenAttributes(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
423
424     enum Choices {
425       e_grabbed,
426       e_inhibited,
427       e_giving,
428       e_ungivable,
429       e_given
430     };
431
432 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
433     operator MCS_TokenAttributes_grabbed &() const;
434 #else
435     operator MCS_TokenAttributes_grabbed &();
436     operator const MCS_TokenAttributes_grabbed &() const;
437 #endif
438 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
439     operator MCS_TokenAttributes_inhibited &() const;
440 #else
441     operator MCS_TokenAttributes_inhibited &();
442     operator const MCS_TokenAttributes_inhibited &() const;
443 #endif
444 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
445     operator MCS_TokenAttributes_giving &() const;
446 #else
447     operator MCS_TokenAttributes_giving &();
448     operator const MCS_TokenAttributes_giving &() const;
449 #endif
450 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
451     operator MCS_TokenAttributes_ungivable &() const;
452 #else
453     operator MCS_TokenAttributes_ungivable &();
454     operator const MCS_TokenAttributes_ungivable &() const;
455 #endif
456 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
457     operator MCS_TokenAttributes_given &() const;
458 #else
459     operator MCS_TokenAttributes_given &();
460     operator const MCS_TokenAttributes_given &() const;
461 #endif
462
463     BOOL CreateObject();
464     PObject * Clone() const;
465 };
466
467
468 //
469 // AUrq
470 //
471
472 class MCS_AUrq : public PASN_Sequence
473 {
474 #ifndef PASN_LEANANDMEAN
475     PCLASSINFO(MCS_AUrq, PASN_Sequence);
476 #endif
477   public:
478     MCS_AUrq(unsigned tag = 10, TagClass tagClass = ApplicationTagClass);
479
480
481     PINDEX GetDataLength() const;
482     BOOL Decode(PASN_Stream & strm);
483     void Encode(PASN_Stream & strm) const;
484 #ifndef PASN_NOPRINTON
485     void PrintOn(ostream & strm) const;
486 #endif
487     PObject * Clone() const;
488 };
489
490
491 //
492 // CJrq
493 //
494
495 class MCS_CJrq : public PASN_Sequence
496 {
497 #ifndef PASN_LEANANDMEAN
498     PCLASSINFO(MCS_CJrq, PASN_Sequence);
499 #endif
500   public:
501     MCS_CJrq(unsigned tag = 14, TagClass tagClass = ApplicationTagClass);
502
503     MCS_UserId m_initiator;
504     MCS_ChannelId m_channelId;
505
506     PINDEX GetDataLength() const;
507     BOOL Decode(PASN_Stream & strm);
508     void Encode(PASN_Stream & strm) const;
509 #ifndef PASN_NOPRINTON
510     void PrintOn(ostream & strm) const;
511 #endif
512     Comparison Compare(const PObject & obj) const;
513     PObject * Clone() const;
514 };
515
516
517 //
518 // CCrq
519 //
520
521 class MCS_CCrq : public PASN_Sequence
522 {
523 #ifndef PASN_LEANANDMEAN
524     PCLASSINFO(MCS_CCrq, PASN_Sequence);
525 #endif
526   public:
527     MCS_CCrq(unsigned tag = 17, TagClass tagClass = ApplicationTagClass);
528
529     MCS_UserId m_initiator;
530
531     PINDEX GetDataLength() const;
532     BOOL Decode(PASN_Stream & strm);
533     void Encode(PASN_Stream & strm) const;
534 #ifndef PASN_NOPRINTON
535     void PrintOn(ostream & strm) const;
536 #endif
537     Comparison Compare(const PObject & obj) const;
538     PObject * Clone() const;
539 };
540
541
542 //
543 // CDrq
544 //
545
546 class MCS_CDrq : public PASN_Sequence
547 {
548 #ifndef PASN_LEANANDMEAN
549     PCLASSINFO(MCS_CDrq, PASN_Sequence);
550 #endif
551   public:
552     MCS_CDrq(unsigned tag = 19, TagClass tagClass = ApplicationTagClass);
553
554     MCS_UserId m_initiator;
555     MCS_PrivateChannelId m_channelId;
556
557     PINDEX GetDataLength() const;
558     BOOL Decode(PASN_Stream & strm);
559     void Encode(PASN_Stream & strm) const;
560 #ifndef PASN_NOPRINTON
561     void PrintOn(ostream & strm) const;
562 #endif
563     Comparison Compare(const PObject & obj) const;
564     PObject * Clone() const;
565 };
566
567
568 //
569 // CDin
570 //
571
572 class MCS_CDin : public PASN_Sequence
573 {
574 #ifndef PASN_LEANANDMEAN
575     PCLASSINFO(MCS_CDin, PASN_Sequence);
576 #endif
577   public:
578     MCS_CDin(unsigned tag = 20, TagClass tagClass = ApplicationTagClass);
579
580     MCS_PrivateChannelId m_channelId;
581
582     PINDEX GetDataLength() const;
583     BOOL Decode(PASN_Stream & strm);
584     void Encode(PASN_Stream & strm) const;
585 #ifndef PASN_NOPRINTON
586     void PrintOn(ostream & strm) const;
587 #endif
588     Comparison Compare(const PObject & obj) const;
589     PObject * Clone() const;
590 };
591
592
593 //
594 // SDrq
595 //
596
597 class MCS_SDrq : public PASN_Sequence
598 {
599 #ifndef PASN_LEANANDMEAN
600     PCLASSINFO(MCS_SDrq, PASN_Sequence);
601 #endif
602   public:
603     MCS_SDrq(unsigned tag = 25, TagClass tagClass = ApplicationTagClass);
604
605     MCS_UserId m_initiator;
606     MCS_ChannelId m_channelId;
607     MCS_DataPriority m_dataPriority;
608     MCS_Segmentation m_segmentation;
609     PASN_OctetString m_userData;
610
611     PINDEX GetDataLength() const;
612     BOOL Decode(PASN_Stream & strm);
613     void Encode(PASN_Stream & strm) const;
614 #ifndef PASN_NOPRINTON
615     void PrintOn(ostream & strm) const;
616 #endif
617     Comparison Compare(const PObject & obj) const;
618     PObject * Clone() const;
619 };
620
621
622 //
623 // SDin
624 //
625
626 class MCS_SDin : public PASN_Sequence
627 {
628 #ifndef PASN_LEANANDMEAN
629     PCLASSINFO(MCS_SDin, PASN_Sequence);
630 #endif
631   public:
632     MCS_SDin(unsigned tag = 26, TagClass tagClass = ApplicationTagClass);
633
634     MCS_UserId m_initiator;
635     MCS_ChannelId m_channelId;
636     MCS_DataPriority m_dataPriority;
637     MCS_Segmentation m_segmentation;
638     PASN_OctetString m_userData;
639
640     PINDEX GetDataLength() const;
641     BOOL Decode(PASN_Stream & strm);
642     void Encode(PASN_Stream & strm) const;
643 #ifndef PASN_NOPRINTON
644     void PrintOn(ostream & strm) const;
645 #endif
646     Comparison Compare(const PObject & obj) const;
647     PObject * Clone() const;
648 };
649
650
651 //
652 // USrq
653 //
654
655 class MCS_USrq : public PASN_Sequence
656 {
657 #ifndef PASN_LEANANDMEAN
658     PCLASSINFO(MCS_USrq, PASN_Sequence);
659 #endif
660   public:
661     MCS_USrq(unsigned tag = 27, TagClass tagClass = ApplicationTagClass);
662
663     MCS_UserId m_initiator;
664     MCS_ChannelId m_channelId;
665     MCS_DataPriority m_dataPriority;
666     MCS_Segmentation m_segmentation;
667     PASN_OctetString m_userData;
668
669     PINDEX GetDataLength() const;
670     BOOL Decode(PASN_Stream & strm);
671     void Encode(PASN_Stream & strm) const;
672 #ifndef PASN_NOPRINTON
673     void PrintOn(ostream & strm) const;
674 #endif
675     Comparison Compare(const PObject & obj) const;
676     PObject * Clone() const;
677 };
678
679
680 //
681 // USin
682 //
683
684 class MCS_USin : public PASN_Sequence
685 {
686 #ifndef PASN_LEANANDMEAN
687     PCLASSINFO(MCS_USin, PASN_Sequence);
688 #endif
689   public:
690     MCS_USin(unsigned tag = 28, TagClass tagClass = ApplicationTagClass);
691
692     MCS_UserId m_initiator;
693     MCS_ChannelId m_channelId;
694     MCS_DataPriority m_dataPriority;
695     MCS_Segmentation m_segmentation;
696     PASN_OctetString m_userData;
697
698     PINDEX GetDataLength() const;
699     BOOL Decode(PASN_Stream & strm);
700     void Encode(PASN_Stream & strm) const;
701 #ifndef PASN_NOPRINTON
702     void PrintOn(ostream & strm) const;
703 #endif
704     Comparison Compare(const PObject & obj) const;
705     PObject * Clone() const;
706 };
707
708
709 //
710 // TGrq
711 //
712
713 class MCS_TGrq : public PASN_Sequence
714 {
715 #ifndef PASN_LEANANDMEAN
716     PCLASSINFO(MCS_TGrq, PASN_Sequence);
717 #endif
718   public:
719     MCS_TGrq(unsigned tag = 29, TagClass tagClass = ApplicationTagClass);
720
721     MCS_UserId m_initiator;
722     MCS_TokenId m_tokenId;
723
724     PINDEX GetDataLength() const;
725     BOOL Decode(PASN_Stream & strm);
726     void Encode(PASN_Stream & strm) const;
727 #ifndef PASN_NOPRINTON
728     void PrintOn(ostream & strm) const;
729 #endif
730     Comparison Compare(const PObject & obj) const;
731     PObject * Clone() const;
732 };
733
734
735 //
736 // TIrq
737 //
738
739 class MCS_TIrq : public PASN_Sequence
740 {
741 #ifndef PASN_LEANANDMEAN
742     PCLASSINFO(MCS_TIrq, PASN_Sequence);
743 #endif
744   public:
745     MCS_TIrq(unsigned tag = 31, TagClass tagClass = ApplicationTagClass);
746
747     MCS_UserId m_initiator;
748     MCS_TokenId m_tokenId;
749
750     PINDEX GetDataLength() const;
751     BOOL Decode(PASN_Stream & strm);
752     void Encode(PASN_Stream & strm) const;
753 #ifndef PASN_NOPRINTON
754     void PrintOn(ostream & strm) const;
755 #endif
756     Comparison Compare(const PObject & obj) const;
757     PObject * Clone() const;
758 };
759
760
761 //
762 // TVrq
763 //
764
765 class MCS_TVrq : public PASN_Sequence
766 {
767 #ifndef PASN_LEANANDMEAN
768     PCLASSINFO(MCS_TVrq, PASN_Sequence);
769 #endif
770   public:
771     MCS_TVrq(unsigned tag = 33, TagClass tagClass = ApplicationTagClass);
772
773     MCS_UserId m_initiator;
774     MCS_TokenId m_tokenId;
775     MCS_UserId m_recipient;
776
777     PINDEX GetDataLength() const;
778     BOOL Decode(PASN_Stream & strm);
779     void Encode(PASN_Stream & strm) const;
780 #ifndef PASN_NOPRINTON
781     void PrintOn(ostream & strm) const;
782 #endif
783     Comparison Compare(const PObject & obj) const;
784     PObject * Clone() const;
785 };
786
787
788 //
789 // TVin
790 //
791
792 class MCS_TVin : public PASN_Sequence
793 {
794 #ifndef PASN_LEANANDMEAN
795     PCLASSINFO(MCS_TVin, PASN_Sequence);
796 #endif
797   public:
798     MCS_TVin(unsigned tag = 34, TagClass tagClass = ApplicationTagClass);
799
800     MCS_UserId m_initiator;
801     MCS_TokenId m_tokenId;
802     MCS_UserId m_recipient;
803
804     PINDEX GetDataLength() const;
805     BOOL Decode(PASN_Stream & strm);
806     void Encode(PASN_Stream & strm) const;
807 #ifndef PASN_NOPRINTON
808     void PrintOn(ostream & strm) const;
809 #endif
810     Comparison Compare(const PObject & obj) const;
811     PObject * Clone() const;
812 };
813
814
815 //
816 // TPrq
817 //
818
819 class MCS_TPrq : public PASN_Sequence
820 {
821 #ifndef PASN_LEANANDMEAN
822     PCLASSINFO(MCS_TPrq, PASN_Sequence);
823 #endif
824   public:
825     MCS_TPrq(unsigned tag = 37, TagClass tagClass = ApplicationTagClass);
826
827     MCS_UserId m_initiator;
828     MCS_TokenId m_tokenId;
829
830     PINDEX GetDataLength() const;
831     BOOL Decode(PASN_Stream & strm);
832     void Encode(PASN_Stream & strm) const;
833 #ifndef PASN_NOPRINTON
834     void PrintOn(ostream & strm) const;
835 #endif
836     Comparison Compare(const PObject & obj) const;
837     PObject * Clone() const;
838 };
839
840
841 //
842 // TPin
843 //
844
845 class MCS_TPin : public PASN_Sequence
846 {
847 #ifndef PASN_LEANANDMEAN
848     PCLASSINFO(MCS_TPin, PASN_Sequence);
849 #endif
850   public:
851     MCS_TPin(unsigned tag = 38, TagClass tagClass = ApplicationTagClass);
852
853     MCS_UserId m_initiator;
854     MCS_TokenId m_tokenId;
855
856     PINDEX GetDataLength() const;
857     BOOL Decode(PASN_Stream & strm);
858     void Encode(PASN_Stream & strm) const;
859 #ifndef PASN_NOPRINTON
860     void PrintOn(ostream & strm) const;
861 #endif
862     Comparison Compare(const PObject & obj) const;
863     PObject * Clone() const;
864 };
865
866
867 //
868 // TRrq
869 //
870
871 class MCS_TRrq : public PASN_Sequence
872 {
873 #ifndef PASN_LEANANDMEAN
874     PCLASSINFO(MCS_TRrq, PASN_Sequence);
875 #endif
876   public:
877     MCS_TRrq(unsigned tag = 39, TagClass tagClass = ApplicationTagClass);
878
879     MCS_UserId m_initiator;
880     MCS_TokenId m_tokenId;
881
882     PINDEX GetDataLength() const;
883     BOOL Decode(PASN_Stream & strm);
884     void Encode(PASN_Stream & strm) const;
885 #ifndef PASN_NOPRINTON
886     void PrintOn(ostream & strm) const;
887 #endif
888     Comparison Compare(const PObject & obj) const;
889     PObject * Clone() const;
890 };
891
892
893 //
894 // TTrq
895 //
896
897 class MCS_TTrq : public PASN_Sequence
898 {
899 #ifndef PASN_LEANANDMEAN
900     PCLASSINFO(MCS_TTrq, PASN_Sequence);
901 #endif
902   public:
903     MCS_TTrq(unsigned tag = 41, TagClass tagClass = ApplicationTagClass);
904
905     MCS_UserId m_initiator;
906     MCS_TokenId m_tokenId;
907
908     PINDEX GetDataLength() const;
909     BOOL Decode(PASN_Stream & strm);
910     void Encode(PASN_Stream & strm) const;
911 #ifndef PASN_NOPRINTON
912     void PrintOn(ostream & strm) const;
913 #endif
914     Comparison Compare(const PObject & obj) const;
915     PObject * Clone() const;
916 };
917
918
919 //
920 // TTcf
921 //
922
923 class MCS_TTcf : public PASN_Sequence
924 {
925 #ifndef PASN_LEANANDMEAN
926     PCLASSINFO(MCS_TTcf, PASN_Sequence);
927 #endif
928   public:
929     MCS_TTcf(unsigned tag = 42, TagClass tagClass = ApplicationTagClass);
930
931     MCS_UserId m_initiator;
932     MCS_TokenId m_tokenId;
933     MCS_TokenStatus m_tokenStatus;
934
935     PINDEX GetDataLength() const;
936     BOOL Decode(PASN_Stream & strm);
937     void Encode(PASN_Stream & strm) const;
938 #ifndef PASN_NOPRINTON
939     void PrintOn(ostream & strm) const;
940 #endif
941     Comparison Compare(const PObject & obj) const;
942     PObject * Clone() const;
943 };
944
945
946 //
947 // Reason
948 //
949
950 class MCS_Reason : public PASN_Enumeration
951 {
952 #ifndef PASN_LEANANDMEAN
953     PCLASSINFO(MCS_Reason, PASN_Enumeration);
954 #endif
955   public:
956     MCS_Reason(unsigned tag = UniversalEnumeration, TagClass tagClass = UniversalTagClass);
957
958     enum Enumerations {
959       e_rn_domain_disconnected,
960       e_rn_provider_initiated,
961       e_rn_token_purged,
962       e_rn_user_requested,
963       e_rn_channel_purged
964     };
965
966     MCS_Reason & operator=(unsigned v);
967     PObject * Clone() const;
968 };
969
970
971 //
972 // Result
973 //
974
975 class MCS_Result : public PASN_Enumeration
976 {
977 #ifndef PASN_LEANANDMEAN
978     PCLASSINFO(MCS_Result, PASN_Enumeration);
979 #endif
980   public:
981     MCS_Result(unsigned tag = UniversalEnumeration, TagClass tagClass = UniversalTagClass);
982
983     enum Enumerations {
984       e_rt_successful,
985       e_rt_domain_merging,
986       e_rt_domain_not_hierarchical,
987       e_rt_no_such_channel,
988       e_rt_no_such_domain,
989       e_rt_no_such_user,
990       e_rt_not_admitted,
991       e_rt_other_user_id,
992       e_rt_parameters_unacceptable,
993       e_rt_token_not_available,
994       e_rt_token_not_possessed,
995       e_rt_too_many_channels,
996       e_rt_too_many_tokens,
997       e_rt_too_many_users,
998       e_rt_unspecified_failure,
999       e_rt_user_rejected
1000     };
1001
1002     MCS_Result & operator=(unsigned v);
1003     PObject * Clone() const;
1004 };
1005
1006
1007 //
1008 // Diagnostic
1009 //
1010
1011 class MCS_Diagnostic : public PASN_Enumeration
1012 {
1013 #ifndef PASN_LEANANDMEAN
1014     PCLASSINFO(MCS_Diagnostic, PASN_Enumeration);
1015 #endif
1016   public:
1017     MCS_Diagnostic(unsigned tag = UniversalEnumeration, TagClass tagClass = UniversalTagClass);
1018
1019     enum Enumerations {
1020       e_dc_inconsistent_merge,
1021       e_dc_forbidden_PDU_downward,
1022       e_dc_forbidden_PDU_upward,
1023       e_dc_invalid_BER_encoding,
1024       e_dc_invalid_PER_encoding,
1025       e_dc_misrouted_user,
1026       e_dc_unrequested_confirm,
1027       e_dc_wrong_transport_priority,
1028       e_dc_channel_id_conflict,
1029       e_dc_token_id_conflict,
1030       e_dc_not_user_id_channel,
1031       e_dc_too_many_channels,
1032       e_dc_too_many_tokens,
1033       e_dc_too_many_users
1034     };
1035
1036     MCS_Diagnostic & operator=(unsigned v);
1037     PObject * Clone() const;
1038 };
1039
1040
1041 //
1042 // ConnectMCSPDU
1043 //
1044
1045 class MCS_Connect_Initial;
1046 class MCS_Connect_Response;
1047 class MCS_Connect_Additional;
1048 class MCS_Connect_Result;
1049
1050 class MCS_ConnectMCSPDU : public PASN_Choice
1051 {
1052 #ifndef PASN_LEANANDMEAN
1053     PCLASSINFO(MCS_ConnectMCSPDU, PASN_Choice);
1054 #endif
1055   public:
1056     MCS_ConnectMCSPDU(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
1057
1058     enum Choices {
1059       e_connect_initial = 101,
1060       e_connect_response,
1061       e_connect_additional,
1062       e_connect_result
1063     };
1064
1065 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
1066     operator MCS_Connect_Initial &() const;
1067 #else
1068     operator MCS_Connect_Initial &();
1069     operator const MCS_Connect_Initial &() const;
1070 #endif
1071 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
1072     operator MCS_Connect_Response &() const;
1073 #else
1074     operator MCS_Connect_Response &();
1075     operator const MCS_Connect_Response &() const;
1076 #endif
1077 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
1078     operator MCS_Connect_Additional &() const;
1079 #else
1080     operator MCS_Connect_Additional &();
1081     operator const MCS_Connect_Additional &() const;
1082 #endif
1083 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
1084     operator MCS_Connect_Result &() const;
1085 #else
1086     operator MCS_Connect_Result &();
1087     operator const MCS_Connect_Result &() const;
1088 #endif
1089
1090     BOOL CreateObject();
1091     PObject * Clone() const;
1092 };
1093
1094
1095 //
1096 // DomainMCSPDU
1097 //
1098
1099 class MCS_PDin;
1100 class MCS_EDrq;
1101 class MCS_MCrq;
1102 class MCS_MCcf;
1103 class MCS_PCin;
1104 class MCS_MTrq;
1105 class MCS_MTcf;
1106 class MCS_PTin;
1107 class MCS_DPum;
1108 class MCS_RJum;
1109 class MCS_AUrq;
1110 class MCS_AUcf;
1111 class MCS_DUrq;
1112 class MCS_DUin;
1113 class MCS_CJrq;
1114 class MCS_CJcf;
1115 class MCS_CLrq;
1116 class MCS_CCrq;
1117 class MCS_CCcf;
1118 class MCS_CDrq;
1119 class MCS_CDin;
1120 class MCS_CArq;
1121 class MCS_CAin;
1122 class MCS_CErq;
1123 class MCS_CEin;
1124 class MCS_SDrq;
1125 class MCS_SDin;
1126 class MCS_USrq;
1127 class MCS_USin;
1128 class MCS_TGrq;
1129 class MCS_TGcf;
1130 class MCS_TIrq;
1131 class MCS_TIcf;
1132 class MCS_TVrq;
1133 class MCS_TVin;
1134 class MCS_TVrs;
1135 class MCS_TVcf;
1136 class MCS_TPrq;
1137 class MCS_TPin;
1138 class MCS_TRrq;
1139 class MCS_TRcf;
1140 class MCS_TTrq;
1141 class MCS_TTcf;
1142
1143 class MCS_DomainMCSPDU : public PASN_Choice
1144 {
1145 #ifndef PASN_LEANANDMEAN
1146     PCLASSINFO(MCS_DomainMCSPDU, PASN_Choice);
1147 #endif
1148   public:
1149     MCS_DomainMCSPDU(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
1150
1151     enum Choices {
1152       e_pdin,
1153       e_edrq,
1154       e_mcrq,
1155       e_mccf,
1156       e_pcin,
1157       e_mtrq,
1158       e_mtcf,
1159       e_ptin,
1160       e_dpum,
1161       e_rjum,
1162       e_aurq,
1163       e_aucf,
1164       e_durq,
1165       e_duin,
1166       e_cjrq,
1167       e_cjcf,
1168       e_clrq,
1169       e_ccrq,
1170       e_cccf,
1171       e_cdrq,
1172       e_cdin,
1173       e_carq,
1174       e_cain,
1175       e_cerq,
1176       e_cein,
1177       e_sdrq,
1178       e_sdin,
1179       e_usrq,
1180       e_usin,
1181       e_tgrq,
1182       e_tgcf,
1183       e_tirq,
1184       e_ticf,
1185       e_tvrq,
1186       e_tvin,
1187       e_tvrs,
1188       e_tvcf,
1189       e_tprq,
1190       e_tpin,
1191       e_trrq,
1192       e_trcf,
1193       e_ttrq,
1194       e_ttcf
1195     };
1196
1197 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
1198     operator MCS_PDin &() const;
1199 #else
1200     operator MCS_PDin &();
1201     operator const MCS_PDin &() const;
1202 #endif
1203 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
1204     operator MCS_EDrq &() const;
1205 #else
1206     operator MCS_EDrq &();
1207     operator const MCS_EDrq &() const;
1208 #endif
1209 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
1210     operator MCS_MCrq &() const;
1211 #else
1212     operator MCS_MCrq &();
1213     operator const MCS_MCrq &() const;
1214 #endif
1215 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
1216     operator MCS_MCcf &() const;
1217 #else
1218     operator MCS_MCcf &();
1219     operator const MCS_MCcf &() const;
1220 #endif
1221 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
1222     operator MCS_PCin &() const;
1223 #else
1224     operator MCS_PCin &();
1225     operator const MCS_PCin &() const;
1226 #endif
1227 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
1228     operator MCS_MTrq &() const;
1229 #else
1230     operator MCS_MTrq &();
1231     operator const MCS_MTrq &() const;
1232 #endif
1233 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
1234     operator MCS_MTcf &() const;
1235 #else
1236     operator MCS_MTcf &();
1237     operator const MCS_MTcf &() const;
1238 #endif
1239 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
1240     operator MCS_PTin &() const;
1241 #else
1242     operator MCS_PTin &();
1243     operator const MCS_PTin &() const;
1244 #endif
1245 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
1246     operator MCS_DPum &() const;
1247 #else
1248     operator MCS_DPum &();
1249     operator const MCS_DPum &() const;
1250 #endif
1251 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
1252     operator MCS_RJum &() const;
1253 #else
1254     operator MCS_RJum &();
1255     operator const MCS_RJum &() const;
1256 #endif
1257 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
1258     operator MCS_AUrq &() const;
1259 #else
1260     operator MCS_AUrq &();
1261     operator const MCS_AUrq &() const;
1262 #endif
1263 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
1264     operator MCS_AUcf &() const;
1265 #else
1266     operator MCS_AUcf &();
1267     operator const MCS_AUcf &() const;
1268 #endif
1269 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
1270     operator MCS_DUrq &() const;
1271 #else
1272     operator MCS_DUrq &();
1273     operator const MCS_DUrq &() const;
1274 #endif
1275 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
1276     operator MCS_DUin &() const;
1277 #else
1278     operator MCS_DUin &();
1279     operator const MCS_DUin &() const;
1280 #endif
1281 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
1282     operator MCS_CJrq &() const;
1283 #else
1284     operator MCS_CJrq &();
1285     operator const MCS_CJrq &() const;
1286 #endif
1287 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
1288     operator MCS_CJcf &() const;
1289 #else
1290     operator MCS_CJcf &();
1291     operator const MCS_CJcf &() const;
1292 #endif
1293 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
1294     operator MCS_CLrq &() const;
1295 #else
1296     operator MCS_CLrq &();
1297     operator const MCS_CLrq &() const;
1298 #endif
1299 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
1300     operator MCS_CCrq &() const;
1301 #else
1302     operator MCS_CCrq &();
1303     operator const MCS_CCrq &() const;
1304 #endif
1305 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
1306     operator MCS_CCcf &() const;
1307 #else
1308     operator MCS_CCcf &();
1309     operator const MCS_CCcf &() const;
1310 #endif
1311 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
1312     operator MCS_CDrq &() const;
1313 #else
1314     operator MCS_CDrq &();
1315     operator const MCS_CDrq &() const;
1316 #endif
1317 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
1318     operator MCS_CDin &() const;
1319 #else
1320     operator MCS_CDin &();
1321     operator const MCS_CDin &() const;
1322 #endif
1323 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
1324     operator MCS_CArq &() const;
1325 #else
1326     operator MCS_CArq &();
1327     operator const MCS_CArq &() const;
1328 #endif
1329 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
1330     operator MCS_CAin &() const;
1331 #else
1332     operator MCS_CAin &();
1333     operator const MCS_CAin &() const;
1334 #endif
1335 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
1336     operator MCS_CErq &() const;
1337 #else
1338     operator MCS_CErq &();
1339     operator const MCS_CErq &() const;
1340 #endif
1341 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
1342     operator MCS_CEin &() const;
1343 #else
1344     operator MCS_CEin &();
1345     operator const MCS_CEin &() const;
1346 #endif
1347 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
1348     operator MCS_SDrq &() const;
1349 #else
1350     operator MCS_SDrq &();
1351     operator const MCS_SDrq &() const;
1352 #endif
1353 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
1354     operator MCS_SDin &() const;
1355 #else
1356     operator MCS_SDin &();
1357     operator const MCS_SDin &() const;
1358 #endif
1359 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
1360     operator MCS_USrq &() const;
1361 #else
1362     operator MCS_USrq &();
1363     operator const MCS_USrq &() const;
1364 #endif
1365 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
1366     operator MCS_USin &() const;
1367 #else
1368     operator MCS_USin &();
1369     operator const MCS_USin &() const;
1370 #endif
1371 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
1372     operator MCS_TGrq &() const;
1373 #else
1374     operator MCS_TGrq &();
1375     operator const MCS_TGrq &() const;
1376 #endif
1377 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
1378     operator MCS_TGcf &() const;
1379 #else
1380     operator MCS_TGcf &();
1381     operator const MCS_TGcf &() const;
1382 #endif
1383 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
1384     operator MCS_TIrq &() const;
1385 #else
1386     operator MCS_TIrq &();
1387     operator const MCS_TIrq &() const;
1388 #endif
1389 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
1390     operator MCS_TIcf &() const;
1391 #else
1392     operator MCS_TIcf &();
1393     operator const MCS_TIcf &() const;
1394 #endif
1395 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
1396     operator MCS_TVrq &() const;
1397 #else
1398     operator MCS_TVrq &();
1399     operator const MCS_TVrq &() const;
1400 #endif
1401 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
1402     operator MCS_TVin &() const;
1403 #else
1404     operator MCS_TVin &();
1405     operator const MCS_TVin &() const;
1406 #endif
1407 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
1408     operator MCS_TVrs &() const;
1409 #else
1410     operator MCS_TVrs &();
1411     operator const MCS_TVrs &() const;
1412 #endif
1413 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
1414     operator MCS_TVcf &() const;
1415 #else
1416     operator MCS_TVcf &();
1417     operator const MCS_TVcf &() const;
1418 #endif
1419 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
1420     operator MCS_TPrq &() const;
1421 #else
1422     operator MCS_TPrq &();
1423     operator const MCS_TPrq &() const;
1424 #endif
1425 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
1426     operator MCS_TPin &() const;
1427 #else
1428     operator MCS_TPin &();
1429     operator const MCS_TPin &() const;
1430 #endif
1431 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
1432     operator MCS_TRrq &() const;
1433 #else
1434     operator MCS_TRrq &();
1435     operator const MCS_TRrq &() const;
1436 #endif
1437 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
1438     operator MCS_TRcf &() const;
1439 #else
1440     operator MCS_TRcf &();
1441     operator const MCS_TRcf &() const;
1442 #endif
1443 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
1444     operator MCS_TTrq &() const;
1445 #else
1446     operator MCS_TTrq &();
1447     operator const MCS_TTrq &() const;
1448 #endif
1449 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
1450     operator MCS_TTcf &() const;
1451 #else
1452     operator MCS_TTcf &();
1453     operator const MCS_TTcf &() const;
1454 #endif
1455
1456     BOOL CreateObject();
1457     PObject * Clone() const;
1458 };
1459
1460
1461 //
1462 // ChannelAttributes_static
1463 //
1464
1465 class MCS_ChannelAttributes_static : public PASN_Sequence
1466 {
1467 #ifndef PASN_LEANANDMEAN
1468     PCLASSINFO(MCS_ChannelAttributes_static, PASN_Sequence);
1469 #endif
1470   public:
1471     MCS_ChannelAttributes_static(unsigned tag = 0, TagClass tagClass = ContextSpecificTagClass);
1472
1473     MCS_StaticChannelId m_channelId;
1474
1475     PINDEX GetDataLength() const;
1476     BOOL Decode(PASN_Stream & strm);
1477     void Encode(PASN_Stream & strm) const;
1478 #ifndef PASN_NOPRINTON
1479     void PrintOn(ostream & strm) const;
1480 #endif
1481     Comparison Compare(const PObject & obj) const;
1482     PObject * Clone() const;
1483 };
1484
1485
1486 //
1487 // ChannelAttributes_userId
1488 //
1489
1490 class MCS_ChannelAttributes_userId : public PASN_Sequence
1491 {
1492 #ifndef PASN_LEANANDMEAN
1493     PCLASSINFO(MCS_ChannelAttributes_userId, PASN_Sequence);
1494 #endif
1495   public:
1496     MCS_ChannelAttributes_userId(unsigned tag = 1, TagClass tagClass = ContextSpecificTagClass);
1497
1498     PASN_Boolean m_joined;
1499     MCS_UserId m_userId;
1500
1501     PINDEX GetDataLength() const;
1502     BOOL Decode(PASN_Stream & strm);
1503     void Encode(PASN_Stream & strm) const;
1504 #ifndef PASN_NOPRINTON
1505     void PrintOn(ostream & strm) const;
1506 #endif
1507     Comparison Compare(const PObject & obj) const;
1508     PObject * Clone() const;
1509 };
1510
1511
1512 //
1513 // ChannelAttributes_assigned
1514 //
1515
1516 class MCS_ChannelAttributes_assigned : public PASN_Sequence
1517 {
1518 #ifndef PASN_LEANANDMEAN
1519     PCLASSINFO(MCS_ChannelAttributes_assigned, PASN_Sequence);
1520 #endif
1521   public:
1522     MCS_ChannelAttributes_assigned(unsigned tag = 3, TagClass tagClass = ContextSpecificTagClass);
1523
1524     MCS_AssignedChannelId m_channelId;
1525
1526     PINDEX GetDataLength() const;
1527     BOOL Decode(PASN_Stream & strm);
1528     void Encode(PASN_Stream & strm) const;
1529 #ifndef PASN_NOPRINTON
1530     void PrintOn(ostream & strm) const;
1531 #endif
1532     Comparison Compare(const PObject & obj) const;
1533     PObject * Clone() const;
1534 };
1535
1536
1537 //
1538 // ArrayOf_ChannelAttributes
1539 //
1540
1541 class MCS_ChannelAttributes;
1542
1543 class MCS_ArrayOf_ChannelAttributes : public PASN_Array
1544 {
1545 #ifndef PASN_LEANANDMEAN
1546     PCLASSINFO(MCS_ArrayOf_ChannelAttributes, PASN_Array);
1547 #endif
1548   public:
1549     MCS_ArrayOf_ChannelAttributes(unsigned tag = UniversalSet, TagClass tagClass = UniversalTagClass);
1550
1551     PASN_Object * CreateObject() const;
1552     MCS_ChannelAttributes & operator[](PINDEX i) const;
1553     PObject * Clone() const;
1554 };
1555
1556
1557 //
1558 // ArrayOf_ChannelId
1559 //
1560
1561 class MCS_ChannelId;
1562
1563 class MCS_ArrayOf_ChannelId : public PASN_Array
1564 {
1565 #ifndef PASN_LEANANDMEAN
1566     PCLASSINFO(MCS_ArrayOf_ChannelId, PASN_Array);
1567 #endif
1568   public:
1569     MCS_ArrayOf_ChannelId(unsigned tag = UniversalSet, TagClass tagClass = UniversalTagClass);
1570
1571     PASN_Object * CreateObject() const;
1572     MCS_ChannelId & operator[](PINDEX i) const;
1573     PObject * Clone() const;
1574 };
1575
1576
1577 //
1578 // ArrayOf_UserId
1579 //
1580
1581 class MCS_UserId;
1582
1583 class MCS_ArrayOf_UserId : public PASN_Array
1584 {
1585 #ifndef PASN_LEANANDMEAN
1586     PCLASSINFO(MCS_ArrayOf_UserId, PASN_Array);
1587 #endif
1588   public:
1589     MCS_ArrayOf_UserId(unsigned tag = UniversalSet, TagClass tagClass = UniversalTagClass);
1590
1591     PASN_Object * CreateObject() const;
1592     MCS_UserId & operator[](PINDEX i) const;
1593     PObject * Clone() const;
1594 };
1595
1596
1597 //
1598 // TokenAttributes_grabbed
1599 //
1600
1601 class MCS_TokenAttributes_grabbed : public PASN_Sequence
1602 {
1603 #ifndef PASN_LEANANDMEAN
1604     PCLASSINFO(MCS_TokenAttributes_grabbed, PASN_Sequence);
1605 #endif
1606   public:
1607     MCS_TokenAttributes_grabbed(unsigned tag = 0, TagClass tagClass = ContextSpecificTagClass);
1608
1609     MCS_TokenId m_tokenId;
1610     MCS_UserId m_grabber;
1611
1612     PINDEX GetDataLength() const;
1613     BOOL Decode(PASN_Stream & strm);
1614     void Encode(PASN_Stream & strm) const;
1615 #ifndef PASN_NOPRINTON
1616     void PrintOn(ostream & strm) const;
1617 #endif
1618     Comparison Compare(const PObject & obj) const;
1619     PObject * Clone() const;
1620 };
1621
1622
1623 //
1624 // TokenAttributes_inhibited
1625 //
1626
1627 class MCS_TokenAttributes_inhibited : public PASN_Sequence
1628 {
1629 #ifndef PASN_LEANANDMEAN
1630     PCLASSINFO(MCS_TokenAttributes_inhibited, PASN_Sequence);
1631 #endif
1632   public:
1633     MCS_TokenAttributes_inhibited(unsigned tag = 1, TagClass tagClass = ContextSpecificTagClass);
1634
1635     MCS_TokenId m_tokenId;
1636     MCS_ArrayOf_UserId m_inhibitors;
1637
1638     PINDEX GetDataLength() const;
1639     BOOL Decode(PASN_Stream & strm);
1640     void Encode(PASN_Stream & strm) const;
1641 #ifndef PASN_NOPRINTON
1642     void PrintOn(ostream & strm) const;
1643 #endif
1644     Comparison Compare(const PObject & obj) const;
1645     PObject * Clone() const;
1646 };
1647
1648
1649 //
1650 // TokenAttributes_giving
1651 //
1652
1653 class MCS_TokenAttributes_giving : public PASN_Sequence
1654 {
1655 #ifndef PASN_LEANANDMEAN
1656     PCLASSINFO(MCS_TokenAttributes_giving, PASN_Sequence);
1657 #endif
1658   public:
1659     MCS_TokenAttributes_giving(unsigned tag = 2, TagClass tagClass = ContextSpecificTagClass);
1660
1661     MCS_TokenId m_tokenId;
1662     MCS_UserId m_grabber;
1663     MCS_UserId m_recipient;
1664
1665     PINDEX GetDataLength() const;
1666     BOOL Decode(PASN_Stream & strm);
1667     void Encode(PASN_Stream & strm) const;
1668 #ifndef PASN_NOPRINTON
1669     void PrintOn(ostream & strm) const;
1670 #endif
1671     Comparison Compare(const PObject & obj) const;
1672     PObject * Clone() const;
1673 };
1674
1675
1676 //
1677 // TokenAttributes_ungivable
1678 //
1679
1680 class MCS_TokenAttributes_ungivable : public PASN_Sequence
1681 {
1682 #ifndef PASN_LEANANDMEAN
1683     PCLASSINFO(MCS_TokenAttributes_ungivable, PASN_Sequence);
1684 #endif
1685   public:
1686     MCS_TokenAttributes_ungivable(unsigned tag = 3, TagClass tagClass = ContextSpecificTagClass);
1687
1688     MCS_TokenId m_tokenId;
1689     MCS_UserId m_grabber;
1690
1691     PINDEX GetDataLength() const;
1692     BOOL Decode(PASN_Stream & strm);
1693     void Encode(PASN_Stream & strm) const;
1694 #ifndef PASN_NOPRINTON
1695     void PrintOn(ostream & strm) const;
1696 #endif
1697     Comparison Compare(const PObject & obj) const;
1698     PObject * Clone() const;
1699 };
1700
1701
1702 //
1703 // TokenAttributes_given
1704 //
1705
1706 class MCS_TokenAttributes_given : public PASN_Sequence
1707 {
1708 #ifndef PASN_LEANANDMEAN
1709     PCLASSINFO(MCS_TokenAttributes_given, PASN_Sequence);
1710 #endif
1711   public:
1712     MCS_TokenAttributes_given(unsigned tag = 4, TagClass tagClass = ContextSpecificTagClass);
1713
1714     MCS_TokenId m_tokenId;
1715     MCS_UserId m_recipient;
1716
1717     PINDEX GetDataLength() const;
1718     BOOL Decode(PASN_Stream & strm);
1719     void Encode(PASN_Stream & strm) const;
1720 #ifndef PASN_NOPRINTON
1721     void PrintOn(ostream & strm) const;
1722 #endif
1723     Comparison Compare(const PObject & obj) const;
1724     PObject * Clone() const;
1725 };
1726
1727
1728 //
1729 // ArrayOf_TokenAttributes
1730 //
1731
1732 class MCS_TokenAttributes;
1733
1734 class MCS_ArrayOf_TokenAttributes : public PASN_Array
1735 {
1736 #ifndef PASN_LEANANDMEAN
1737     PCLASSINFO(MCS_ArrayOf_TokenAttributes, PASN_Array);
1738 #endif
1739   public:
1740     MCS_ArrayOf_TokenAttributes(unsigned tag = UniversalSet, TagClass tagClass = UniversalTagClass);
1741
1742     PASN_Object * CreateObject() const;
1743     MCS_TokenAttributes & operator[](PINDEX i) const;
1744     PObject * Clone() const;
1745 };
1746
1747
1748 //
1749 // ArrayOf_TokenId
1750 //
1751
1752 class MCS_TokenId;
1753
1754 class MCS_ArrayOf_TokenId : public PASN_Array
1755 {
1756 #ifndef PASN_LEANANDMEAN
1757     PCLASSINFO(MCS_ArrayOf_TokenId, PASN_Array);
1758 #endif
1759   public:
1760     MCS_ArrayOf_TokenId(unsigned tag = UniversalSet, TagClass tagClass = UniversalTagClass);
1761
1762     PASN_Object * CreateObject() const;
1763     MCS_TokenId & operator[](PINDEX i) const;
1764     PObject * Clone() const;
1765 };
1766
1767
1768 //
1769 // Connect-Response
1770 //
1771
1772 class MCS_Connect_Response : public PASN_Sequence
1773 {
1774 #ifndef PASN_LEANANDMEAN
1775     PCLASSINFO(MCS_Connect_Response, PASN_Sequence);
1776 #endif
1777   public:
1778     MCS_Connect_Response(unsigned tag = 102, TagClass tagClass = ApplicationTagClass);
1779
1780     MCS_Result m_result;
1781     PASN_Integer m_calledConnectId;
1782     MCS_DomainParameters m_domainParameters;
1783     PASN_OctetString m_userData;
1784
1785     PINDEX GetDataLength() const;
1786     BOOL Decode(PASN_Stream & strm);
1787     void Encode(PASN_Stream & strm) const;
1788 #ifndef PASN_NOPRINTON
1789     void PrintOn(ostream & strm) const;
1790 #endif
1791     Comparison Compare(const PObject & obj) const;
1792     PObject * Clone() const;
1793 };
1794
1795
1796 //
1797 // Connect-Result
1798 //
1799
1800 class MCS_Connect_Result : public PASN_Sequence
1801 {
1802 #ifndef PASN_LEANANDMEAN
1803     PCLASSINFO(MCS_Connect_Result, PASN_Sequence);
1804 #endif
1805   public:
1806     MCS_Connect_Result(unsigned tag = 104, TagClass tagClass = ApplicationTagClass);
1807
1808     MCS_Result m_result;
1809
1810     PINDEX GetDataLength() const;
1811     BOOL Decode(PASN_Stream & strm);
1812     void Encode(PASN_Stream & strm) const;
1813 #ifndef PASN_NOPRINTON
1814     void PrintOn(ostream & strm) const;
1815 #endif
1816     Comparison Compare(const PObject & obj) const;
1817     PObject * Clone() const;
1818 };
1819
1820
1821 //
1822 // MCrq
1823 //
1824
1825 class MCS_MCrq : public PASN_Sequence
1826 {
1827 #ifndef PASN_LEANANDMEAN
1828     PCLASSINFO(MCS_MCrq, PASN_Sequence);
1829 #endif
1830   public:
1831     MCS_MCrq(unsigned tag = 2, TagClass tagClass = ApplicationTagClass);
1832
1833     MCS_ArrayOf_ChannelAttributes m_mergeChannels;
1834     MCS_ArrayOf_ChannelId m_purgeChannelIds;
1835
1836     PINDEX GetDataLength() const;
1837     BOOL Decode(PASN_Stream & strm);
1838     void Encode(PASN_Stream & strm) const;
1839 #ifndef PASN_NOPRINTON
1840     void PrintOn(ostream & strm) const;
1841 #endif
1842     Comparison Compare(const PObject & obj) const;
1843     PObject * Clone() const;
1844 };
1845
1846
1847 //
1848 // MCcf
1849 //
1850
1851 class MCS_MCcf : public PASN_Sequence
1852 {
1853 #ifndef PASN_LEANANDMEAN
1854     PCLASSINFO(MCS_MCcf, PASN_Sequence);
1855 #endif
1856   public:
1857     MCS_MCcf(unsigned tag = 3, TagClass tagClass = ApplicationTagClass);
1858
1859     MCS_ArrayOf_ChannelAttributes m_mergeChannels;
1860     MCS_ArrayOf_ChannelId m_purgeChannelIds;
1861
1862     PINDEX GetDataLength() const;
1863     BOOL Decode(PASN_Stream & strm);
1864     void Encode(PASN_Stream & strm) const;
1865 #ifndef PASN_NOPRINTON
1866     void PrintOn(ostream & strm) const;
1867 #endif
1868     Comparison Compare(const PObject & obj) const;
1869     PObject * Clone() const;
1870 };
1871
1872
1873 //
1874 // PCin
1875 //
1876
1877 class MCS_PCin : public PASN_Sequence
1878 {
1879 #ifndef PASN_LEANANDMEAN
1880     PCLASSINFO(MCS_PCin, PASN_Sequence);
1881 #endif
1882   public:
1883     MCS_PCin(unsigned tag = 4, TagClass tagClass = ApplicationTagClass);
1884
1885     MCS_ArrayOf_UserId m_detachUserIds;
1886     MCS_ArrayOf_ChannelId m_purgeChannelIds;
1887
1888     PINDEX GetDataLength() const;
1889     BOOL Decode(PASN_Stream & strm);
1890     void Encode(PASN_Stream & strm) const;
1891 #ifndef PASN_NOPRINTON
1892     void PrintOn(ostream & strm) const;
1893 #endif
1894     Comparison Compare(const PObject & obj) const;
1895     PObject * Clone() const;
1896 };
1897
1898
1899 //
1900 // MTrq
1901 //
1902
1903 class MCS_MTrq : public PASN_Sequence
1904 {
1905 #ifndef PASN_LEANANDMEAN
1906     PCLASSINFO(MCS_MTrq, PASN_Sequence);
1907 #endif
1908   public:
1909     MCS_MTrq(unsigned tag = 5, TagClass tagClass = ApplicationTagClass);
1910
1911     MCS_ArrayOf_TokenAttributes m_mergeTokens;
1912     MCS_ArrayOf_TokenId m_purgeTokenIds;
1913
1914     PINDEX GetDataLength() const;
1915     BOOL Decode(PASN_Stream & strm);
1916     void Encode(PASN_Stream & strm) const;
1917 #ifndef PASN_NOPRINTON
1918     void PrintOn(ostream & strm) const;
1919 #endif
1920     Comparison Compare(const PObject & obj) const;
1921     PObject * Clone() const;
1922 };
1923
1924
1925 //
1926 // MTcf
1927 //
1928
1929 class MCS_MTcf : public PASN_Sequence
1930 {
1931 #ifndef PASN_LEANANDMEAN
1932     PCLASSINFO(MCS_MTcf, PASN_Sequence);
1933 #endif
1934   public:
1935     MCS_MTcf(unsigned tag = 6, TagClass tagClass = ApplicationTagClass);
1936
1937     MCS_ArrayOf_TokenAttributes m_mergeTokens;
1938     MCS_ArrayOf_TokenId m_purgeTokenIds;
1939
1940     PINDEX GetDataLength() const;
1941     BOOL Decode(PASN_Stream & strm);
1942     void Encode(PASN_Stream & strm) const;
1943 #ifndef PASN_NOPRINTON
1944     void PrintOn(ostream & strm) const;
1945 #endif
1946     Comparison Compare(const PObject & obj) const;
1947     PObject * Clone() const;
1948 };
1949
1950
1951 //
1952 // PTin
1953 //
1954
1955 class MCS_PTin : public PASN_Sequence
1956 {
1957 #ifndef PASN_LEANANDMEAN
1958     PCLASSINFO(MCS_PTin, PASN_Sequence);
1959 #endif
1960   public:
1961     MCS_PTin(unsigned tag = 7, TagClass tagClass = ApplicationTagClass);
1962
1963     MCS_ArrayOf_TokenId m_purgeTokenIds;
1964
1965     PINDEX GetDataLength() const;
1966     BOOL Decode(PASN_Stream & strm);
1967     void Encode(PASN_Stream & strm) const;
1968 #ifndef PASN_NOPRINTON
1969     void PrintOn(ostream & strm) const;
1970 #endif
1971     Comparison Compare(const PObject & obj) const;
1972     PObject * Clone() const;
1973 };
1974
1975
1976 //
1977 // DPum
1978 //
1979
1980 class MCS_DPum : public PASN_Sequence
1981 {
1982 #ifndef PASN_LEANANDMEAN
1983     PCLASSINFO(MCS_DPum, PASN_Sequence);
1984 #endif
1985   public:
1986     MCS_DPum(unsigned tag = 8, TagClass tagClass = ApplicationTagClass);
1987
1988     MCS_Reason m_reason;
1989
1990     PINDEX GetDataLength() const;
1991     BOOL Decode(PASN_Stream & strm);
1992     void Encode(PASN_Stream & strm) const;
1993 #ifndef PASN_NOPRINTON
1994     void PrintOn(ostream & strm) const;
1995 #endif
1996     Comparison Compare(const PObject & obj) const;
1997     PObject * Clone() const;
1998 };
1999
2000
2001 //
2002 // RJum
2003 //
2004
2005 class MCS_RJum : public PASN_Sequence
2006 {
2007 #ifndef PASN_LEANANDMEAN
2008     PCLASSINFO(MCS_RJum, PASN_Sequence);
2009 #endif
2010   public:
2011     MCS_RJum(unsigned tag = 9, TagClass tagClass = ApplicationTagClass);
2012
2013     MCS_Diagnostic m_diagnostic;
2014     PASN_OctetString m_initialOctets;
2015
2016     PINDEX GetDataLength() const;
2017     BOOL Decode(PASN_Stream & strm);
2018     void Encode(PASN_Stream & strm) const;
2019 #ifndef PASN_NOPRINTON
2020     void PrintOn(ostream & strm) const;
2021 #endif
2022     Comparison Compare(const PObject & obj) const;
2023     PObject * Clone() const;
2024 };
2025
2026
2027 //
2028 // AUcf
2029 //
2030
2031 class MCS_AUcf : public PASN_Sequence
2032 {
2033 #ifndef PASN_LEANANDMEAN
2034     PCLASSINFO(MCS_AUcf, PASN_Sequence);
2035 #endif
2036   public:
2037     MCS_AUcf(unsigned tag = 11, TagClass tagClass = ApplicationTagClass);
2038
2039     enum OptionalFields {
2040       e_initiator
2041     };
2042
2043     MCS_Result m_result;
2044     MCS_UserId m_initiator;
2045
2046     PINDEX GetDataLength() const;
2047     BOOL Decode(PASN_Stream & strm);
2048     void Encode(PASN_Stream & strm) const;
2049 #ifndef PASN_NOPRINTON
2050     void PrintOn(ostream & strm) const;
2051 #endif
2052     Comparison Compare(const PObject & obj) const;
2053     PObject * Clone() const;
2054 };
2055
2056
2057 //
2058 // DUrq
2059 //
2060
2061 class MCS_DUrq : public PASN_Sequence
2062 {
2063 #ifndef PASN_LEANANDMEAN
2064     PCLASSINFO(MCS_DUrq, PASN_Sequence);
2065 #endif
2066   public:
2067     MCS_DUrq(unsigned tag = 12, TagClass tagClass = ApplicationTagClass);
2068
2069     MCS_Reason m_reason;
2070     MCS_ArrayOf_UserId m_userIds;
2071
2072     PINDEX GetDataLength() const;
2073     BOOL Decode(PASN_Stream & strm);
2074     void Encode(PASN_Stream & strm) const;
2075 #ifndef PASN_NOPRINTON
2076     void PrintOn(ostream & strm) const;
2077 #endif
2078     Comparison Compare(const PObject & obj) const;
2079     PObject * Clone() const;
2080 };
2081
2082
2083 //
2084 // DUin
2085 //
2086
2087 class MCS_DUin : public PASN_Sequence
2088 {
2089 #ifndef PASN_LEANANDMEAN
2090     PCLASSINFO(MCS_DUin, PASN_Sequence);
2091 #endif
2092   public:
2093     MCS_DUin(unsigned tag = 13, TagClass tagClass = ApplicationTagClass);
2094
2095     MCS_Reason m_reason;
2096     MCS_ArrayOf_UserId m_userIds;
2097
2098     PINDEX GetDataLength() const;
2099     BOOL Decode(PASN_Stream & strm);
2100     void Encode(PASN_Stream & strm) const;
2101 #ifndef PASN_NOPRINTON
2102     void PrintOn(ostream & strm) const;
2103 #endif
2104     Comparison Compare(const PObject & obj) const;
2105     PObject * Clone() const;
2106 };
2107
2108
2109 //
2110 // CJcf
2111 //
2112
2113 class MCS_CJcf : public PASN_Sequence
2114 {
2115 #ifndef PASN_LEANANDMEAN
2116     PCLASSINFO(MCS_CJcf, PASN_Sequence);
2117 #endif
2118   public:
2119     MCS_CJcf(unsigned tag = 15, TagClass tagClass = ApplicationTagClass);
2120
2121     enum OptionalFields {
2122       e_channelId
2123     };
2124
2125     MCS_Result m_result;
2126     MCS_UserId m_initiator;
2127     MCS_ChannelId m_requested;
2128     MCS_ChannelId m_channelId;
2129
2130     PINDEX GetDataLength() const;
2131     BOOL Decode(PASN_Stream & strm);
2132     void Encode(PASN_Stream & strm) const;
2133 #ifndef PASN_NOPRINTON
2134     void PrintOn(ostream & strm) const;
2135 #endif
2136     Comparison Compare(const PObject & obj) const;
2137     PObject * Clone() const;
2138 };
2139
2140
2141 //
2142 // CLrq
2143 //
2144
2145 class MCS_CLrq : public PASN_Sequence
2146 {
2147 #ifndef PASN_LEANANDMEAN
2148     PCLASSINFO(MCS_CLrq, PASN_Sequence);
2149 #endif
2150   public:
2151     MCS_CLrq(unsigned tag = 16, TagClass tagClass = ApplicationTagClass);
2152
2153     MCS_ArrayOf_ChannelId m_channelIds;
2154
2155     PINDEX GetDataLength() const;
2156     BOOL Decode(PASN_Stream & strm);
2157     void Encode(PASN_Stream & strm) const;
2158 #ifndef PASN_NOPRINTON
2159     void PrintOn(ostream & strm) const;
2160 #endif
2161     Comparison Compare(const PObject & obj) const;
2162     PObject * Clone() const;
2163 };
2164
2165
2166 //
2167 // CCcf
2168 //
2169
2170 class MCS_CCcf : public PASN_Sequence
2171 {
2172 #ifndef PASN_LEANANDMEAN
2173     PCLASSINFO(MCS_CCcf, PASN_Sequence);
2174 #endif
2175   public:
2176     MCS_CCcf(unsigned tag = 18, TagClass tagClass = ApplicationTagClass);
2177
2178     enum OptionalFields {
2179       e_channelId
2180     };
2181
2182     MCS_Result m_result;
2183     MCS_UserId m_initiator;
2184     MCS_PrivateChannelId m_channelId;
2185
2186     PINDEX GetDataLength() const;
2187     BOOL Decode(PASN_Stream & strm);
2188     void Encode(PASN_Stream & strm) const;
2189 #ifndef PASN_NOPRINTON
2190     void PrintOn(ostream & strm) const;
2191 #endif
2192     Comparison Compare(const PObject & obj) const;
2193     PObject * Clone() const;
2194 };
2195
2196
2197 //
2198 // CArq
2199 //
2200
2201 class MCS_CArq : public PASN_Sequence
2202 {
2203 #ifndef PASN_LEANANDMEAN
2204     PCLASSINFO(MCS_CArq, PASN_Sequence);
2205 #endif
2206   public:
2207     MCS_CArq(unsigned tag = 21, TagClass tagClass = ApplicationTagClass);
2208
2209     MCS_UserId m_initiator;
2210     MCS_PrivateChannelId m_channelId;
2211     MCS_ArrayOf_UserId m_userIds;
2212
2213     PINDEX GetDataLength() const;
2214     BOOL Decode(PASN_Stream & strm);
2215     void Encode(PASN_Stream & strm) const;
2216 #ifndef PASN_NOPRINTON
2217     void PrintOn(ostream & strm) const;
2218 #endif
2219     Comparison Compare(const PObject & obj) const;
2220     PObject * Clone() const;
2221 };
2222
2223
2224 //
2225 // CAin
2226 //
2227
2228 class MCS_CAin : public PASN_Sequence
2229 {
2230 #ifndef PASN_LEANANDMEAN
2231     PCLASSINFO(MCS_CAin, PASN_Sequence);
2232 #endif
2233   public:
2234     MCS_CAin(unsigned tag = 22, TagClass tagClass = ApplicationTagClass);
2235
2236     MCS_UserId m_initiator;
2237     MCS_PrivateChannelId m_channelId;
2238     MCS_ArrayOf_UserId m_userIds;
2239
2240     PINDEX GetDataLength() const;
2241     BOOL Decode(PASN_Stream & strm);
2242     void Encode(PASN_Stream & strm) const;
2243 #ifndef PASN_NOPRINTON
2244     void PrintOn(ostream & strm) const;
2245 #endif
2246     Comparison Compare(const PObject & obj) const;
2247     PObject * Clone() const;
2248 };
2249
2250
2251 //
2252 // CErq
2253 //
2254
2255 class MCS_CErq : public PASN_Sequence
2256 {
2257 #ifndef PASN_LEANANDMEAN
2258     PCLASSINFO(MCS_CErq, PASN_Sequence);
2259 #endif
2260   public:
2261     MCS_CErq(unsigned tag = 23, TagClass tagClass = ApplicationTagClass);
2262
2263     MCS_UserId m_initiator;
2264     MCS_PrivateChannelId m_channelId;
2265     MCS_ArrayOf_UserId m_userIds;
2266
2267     PINDEX GetDataLength() const;
2268     BOOL Decode(PASN_Stream & strm);
2269     void Encode(PASN_Stream & strm) const;
2270 #ifndef PASN_NOPRINTON
2271     void PrintOn(ostream & strm) const;
2272 #endif
2273     Comparison Compare(const PObject & obj) const;
2274     PObject * Clone() const;
2275 };
2276
2277
2278 //
2279 // CEin
2280 //
2281
2282 class MCS_CEin : public PASN_Sequence
2283 {
2284 #ifndef PASN_LEANANDMEAN
2285     PCLASSINFO(MCS_CEin, PASN_Sequence);
2286 #endif
2287   public:
2288     MCS_CEin(unsigned tag = 24, TagClass tagClass = ApplicationTagClass);
2289
2290     MCS_PrivateChannelId m_channelId;
2291     MCS_ArrayOf_UserId m_userIds;
2292
2293     PINDEX GetDataLength() const;
2294     BOOL Decode(PASN_Stream & strm);
2295     void Encode(PASN_Stream & strm) const;
2296 #ifndef PASN_NOPRINTON
2297     void PrintOn(ostream & strm) const;
2298 #endif
2299     Comparison Compare(const PObject & obj) const;
2300     PObject * Clone() const;
2301 };
2302
2303
2304 //
2305 // TGcf
2306 //
2307
2308 class MCS_TGcf : public PASN_Sequence
2309 {
2310 #ifndef PASN_LEANANDMEAN
2311     PCLASSINFO(MCS_TGcf, PASN_Sequence);
2312 #endif
2313   public:
2314     MCS_TGcf(unsigned tag = 30, TagClass tagClass = ApplicationTagClass);
2315
2316     MCS_Result m_result;
2317     MCS_UserId m_initiator;
2318     MCS_TokenId m_tokenId;
2319     MCS_TokenStatus m_tokenStatus;
2320
2321     PINDEX GetDataLength() const;
2322     BOOL Decode(PASN_Stream & strm);
2323     void Encode(PASN_Stream & strm) const;
2324 #ifndef PASN_NOPRINTON
2325     void PrintOn(ostream & strm) const;
2326 #endif
2327     Comparison Compare(const PObject & obj) const;
2328     PObject * Clone() const;
2329 };
2330
2331
2332 //
2333 // TIcf
2334 //
2335
2336 class MCS_TIcf : public PASN_Sequence
2337 {
2338 #ifndef PASN_LEANANDMEAN
2339     PCLASSINFO(MCS_TIcf, PASN_Sequence);
2340 #endif
2341   public:
2342     MCS_TIcf(unsigned tag = 32, TagClass tagClass = ApplicationTagClass);
2343
2344     MCS_Result m_result;
2345     MCS_UserId m_initiator;
2346     MCS_TokenId m_tokenId;
2347     MCS_TokenStatus m_tokenStatus;
2348
2349     PINDEX GetDataLength() const;
2350     BOOL Decode(PASN_Stream & strm);
2351     void Encode(PASN_Stream & strm) const;
2352 #ifndef PASN_NOPRINTON
2353     void PrintOn(ostream & strm) const;
2354 #endif
2355     Comparison Compare(const PObject & obj) const;
2356     PObject * Clone() const;
2357 };
2358
2359
2360 //
2361 // TVrs
2362 //
2363
2364 class MCS_TVrs : public PASN_Sequence
2365 {
2366 #ifndef PASN_LEANANDMEAN
2367     PCLASSINFO(MCS_TVrs, PASN_Sequence);
2368 #endif
2369   public:
2370     MCS_TVrs(unsigned tag = 35, TagClass tagClass = ApplicationTagClass);
2371
2372     MCS_Result m_result;
2373     MCS_UserId m_recipient;
2374     MCS_TokenId m_tokenId;
2375
2376     PINDEX GetDataLength() const;
2377     BOOL Decode(PASN_Stream & strm);
2378     void Encode(PASN_Stream & strm) const;
2379 #ifndef PASN_NOPRINTON
2380     void PrintOn(ostream & strm) const;
2381 #endif
2382     Comparison Compare(const PObject & obj) const;
2383     PObject * Clone() const;
2384 };
2385
2386
2387 //
2388 // TVcf
2389 //
2390
2391 class MCS_TVcf : public PASN_Sequence
2392 {
2393 #ifndef PASN_LEANANDMEAN
2394     PCLASSINFO(MCS_TVcf, PASN_Sequence);
2395 #endif
2396   public:
2397     MCS_TVcf(unsigned tag = 36, TagClass tagClass = ApplicationTagClass);
2398
2399     MCS_Result m_result;
2400     MCS_UserId m_initiator;
2401     MCS_TokenId m_tokenId;
2402     MCS_TokenStatus m_tokenStatus;
2403
2404     PINDEX GetDataLength() const;
2405     BOOL Decode(PASN_Stream & strm);
2406     void Encode(PASN_Stream & strm) const;
2407 #ifndef PASN_NOPRINTON
2408     void PrintOn(ostream & strm) const;
2409 #endif
2410     Comparison Compare(const PObject & obj) const;
2411     PObject * Clone() const;
2412 };
2413
2414
2415 //
2416 // TRcf
2417 //
2418
2419 class MCS_TRcf : public PASN_Sequence
2420 {
2421 #ifndef PASN_LEANANDMEAN
2422     PCLASSINFO(MCS_TRcf, PASN_Sequence);
2423 #endif
2424   public:
2425     MCS_TRcf(unsigned tag = 40, TagClass tagClass = ApplicationTagClass);
2426
2427     MCS_Result m_result;
2428     MCS_UserId m_initiator;
2429     MCS_TokenId m_tokenId;
2430     MCS_TokenStatus m_tokenStatus;
2431
2432     PINDEX GetDataLength() const;
2433     BOOL Decode(PASN_Stream & strm);
2434     void Encode(PASN_Stream & strm) const;
2435 #ifndef PASN_NOPRINTON
2436     void PrintOn(ostream & strm) const;
2437 #endif
2438     Comparison Compare(const PObject & obj) const;
2439     PObject * Clone() const;
2440 };
2441
2442
2443 //
2444 // ChannelAttributes_private
2445 //
2446
2447 class MCS_ChannelAttributes_private : public PASN_Sequence
2448 {
2449 #ifndef PASN_LEANANDMEAN
2450     PCLASSINFO(MCS_ChannelAttributes_private, PASN_Sequence);
2451 #endif
2452   public:
2453     MCS_ChannelAttributes_private(unsigned tag = 2, TagClass tagClass = ContextSpecificTagClass);
2454
2455     PASN_Boolean m_joined;
2456     MCS_PrivateChannelId m_channelId;
2457     MCS_UserId m_manager;
2458     MCS_ArrayOf_UserId m_admitted;
2459
2460     PINDEX GetDataLength() const;
2461     BOOL Decode(PASN_Stream & strm);
2462     void Encode(PASN_Stream & strm) const;
2463 #ifndef PASN_NOPRINTON
2464     void PrintOn(ostream & strm) const;
2465 #endif
2466     Comparison Compare(const PObject & obj) const;
2467     PObject * Clone() const;
2468 };
2469
2470
2471 #endif // __MCS_H
2472
2473 #endif // if ! H323_DISABLE_MCS
2474
2475
2476 // End of mcspdu.h