www.pudn.com > openh323-v1_15_1-src.zip > mcspdu.h


// 
// mcspdu.h 
// 
// Code automatically generated by asnparse. 
// 
 
#if ! H323_DISABLE_MCS 
 
#ifndef __MCS_H 
#define __MCS_H 
 
#ifdef P_USE_PRAGMA 
#pragma interface 
#endif 
 
#include  
 
// 
// ChannelId 
// 
 
class MCS_ChannelId : public PASN_Integer 
{ 
#ifndef PASN_LEANANDMEAN 
    PCLASSINFO(MCS_ChannelId, PASN_Integer); 
#endif 
  public: 
    MCS_ChannelId(unsigned tag = UniversalInteger, TagClass tagClass = UniversalTagClass); 
 
    MCS_ChannelId & operator=(int v); 
    MCS_ChannelId & operator=(unsigned v); 
    PObject * Clone() const; 
}; 
 
 
// 
// StaticChannelId 
// 
 
class MCS_StaticChannelId : public PASN_Integer 
{ 
#ifndef PASN_LEANANDMEAN 
    PCLASSINFO(MCS_StaticChannelId, PASN_Integer); 
#endif 
  public: 
    MCS_StaticChannelId(unsigned tag = UniversalInteger, TagClass tagClass = UniversalTagClass); 
 
    MCS_StaticChannelId & operator=(int v); 
    MCS_StaticChannelId & operator=(unsigned v); 
    PObject * Clone() const; 
}; 
 
 
// 
// DynamicChannelId 
// 
 
class MCS_DynamicChannelId : public PASN_Integer 
{ 
#ifndef PASN_LEANANDMEAN 
    PCLASSINFO(MCS_DynamicChannelId, PASN_Integer); 
#endif 
  public: 
    MCS_DynamicChannelId(unsigned tag = UniversalInteger, TagClass tagClass = UniversalTagClass); 
 
    MCS_DynamicChannelId & operator=(int v); 
    MCS_DynamicChannelId & operator=(unsigned v); 
    PObject * Clone() const; 
}; 
 
 
// 
// UserId 
// 
 
class MCS_UserId : public MCS_DynamicChannelId 
{ 
#ifndef PASN_LEANANDMEAN 
    PCLASSINFO(MCS_UserId, MCS_DynamicChannelId); 
#endif 
  public: 
    MCS_UserId(unsigned tag = UniversalInteger, TagClass tagClass = UniversalTagClass); 
 
    MCS_UserId & operator=(int v); 
    MCS_UserId & operator=(unsigned v); 
    PObject * Clone() const; 
}; 
 
 
// 
// PrivateChannelId 
// 
 
class MCS_PrivateChannelId : public MCS_DynamicChannelId 
{ 
#ifndef PASN_LEANANDMEAN 
    PCLASSINFO(MCS_PrivateChannelId, MCS_DynamicChannelId); 
#endif 
  public: 
    MCS_PrivateChannelId(unsigned tag = UniversalInteger, TagClass tagClass = UniversalTagClass); 
 
    MCS_PrivateChannelId & operator=(int v); 
    MCS_PrivateChannelId & operator=(unsigned v); 
    PObject * Clone() const; 
}; 
 
 
// 
// AssignedChannelId 
// 
 
class MCS_AssignedChannelId : public MCS_DynamicChannelId 
{ 
#ifndef PASN_LEANANDMEAN 
    PCLASSINFO(MCS_AssignedChannelId, MCS_DynamicChannelId); 
#endif 
  public: 
    MCS_AssignedChannelId(unsigned tag = UniversalInteger, TagClass tagClass = UniversalTagClass); 
 
    MCS_AssignedChannelId & operator=(int v); 
    MCS_AssignedChannelId & operator=(unsigned v); 
    PObject * Clone() const; 
}; 
 
 
// 
// TokenId 
// 
 
class MCS_TokenId : public PASN_Integer 
{ 
#ifndef PASN_LEANANDMEAN 
    PCLASSINFO(MCS_TokenId, PASN_Integer); 
#endif 
  public: 
    MCS_TokenId(unsigned tag = UniversalInteger, TagClass tagClass = UniversalTagClass); 
 
    MCS_TokenId & operator=(int v); 
    MCS_TokenId & operator=(unsigned v); 
    PObject * Clone() const; 
}; 
 
 
// 
// TokenStatus 
// 
 
class MCS_TokenStatus : public PASN_Enumeration 
{ 
#ifndef PASN_LEANANDMEAN 
    PCLASSINFO(MCS_TokenStatus, PASN_Enumeration); 
#endif 
  public: 
    MCS_TokenStatus(unsigned tag = UniversalEnumeration, TagClass tagClass = UniversalTagClass); 
 
    enum Enumerations { 
      e_notInUse, 
      e_selfGrabbed, 
      e_otherGrabbed, 
      e_selfInhibited, 
      e_otherInhibited, 
      e_selfRecipient, 
      e_selfGiving, 
      e_otherGiving 
    }; 
 
    MCS_TokenStatus & operator=(unsigned v); 
    PObject * Clone() const; 
}; 
 
 
// 
// DataPriority 
// 
 
class MCS_DataPriority : public PASN_Enumeration 
{ 
#ifndef PASN_LEANANDMEAN 
    PCLASSINFO(MCS_DataPriority, PASN_Enumeration); 
#endif 
  public: 
    MCS_DataPriority(unsigned tag = UniversalEnumeration, TagClass tagClass = UniversalTagClass); 
 
    enum Enumerations { 
      e_top, 
      e_high, 
      e_medium, 
      e_low 
    }; 
 
    MCS_DataPriority & operator=(unsigned v); 
    PObject * Clone() const; 
}; 
 
 
// 
// Segmentation 
// 
 
class MCS_Segmentation : public PASN_BitString 
{ 
#ifndef PASN_LEANANDMEAN 
    PCLASSINFO(MCS_Segmentation, PASN_BitString); 
#endif 
  public: 
    MCS_Segmentation(unsigned tag = UniversalBitString, TagClass tagClass = UniversalTagClass); 
 
    PObject * Clone() const; 
}; 
 
 
// 
// DomainParameters 
// 
 
class MCS_DomainParameters : public PASN_Sequence 
{ 
#ifndef PASN_LEANANDMEAN 
    PCLASSINFO(MCS_DomainParameters, PASN_Sequence); 
#endif 
  public: 
    MCS_DomainParameters(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass); 
 
    PASN_Integer m_maxChannelIds; 
    PASN_Integer m_maxUserIds; 
    PASN_Integer m_maxTokenIds; 
    PASN_Integer m_numPriorities; 
    PASN_Integer m_minThroughput; 
    PASN_Integer m_maxHeight; 
    PASN_Integer m_maxMCSPDUsize; 
    PASN_Integer m_protocolVersion; 
 
    PINDEX GetDataLength() const; 
    BOOL Decode(PASN_Stream & strm); 
    void Encode(PASN_Stream & strm) const; 
#ifndef PASN_NOPRINTON 
    void PrintOn(ostream & strm) const; 
#endif 
    Comparison Compare(const PObject & obj) const; 
    PObject * Clone() const; 
}; 
 
 
// 
// Connect-Initial 
// 
 
class MCS_Connect_Initial : public PASN_Sequence 
{ 
#ifndef PASN_LEANANDMEAN 
    PCLASSINFO(MCS_Connect_Initial, PASN_Sequence); 
#endif 
  public: 
    MCS_Connect_Initial(unsigned tag = 101, TagClass tagClass = ApplicationTagClass); 
 
    PASN_OctetString m_callingDomainSelector; 
    PASN_OctetString m_calledDomainSelector; 
    PASN_Boolean m_upwardFlag; 
    MCS_DomainParameters m_targetParameters; 
    MCS_DomainParameters m_minimumParameters; 
    MCS_DomainParameters m_maximumParameters; 
    PASN_OctetString m_userData; 
 
    PINDEX GetDataLength() const; 
    BOOL Decode(PASN_Stream & strm); 
    void Encode(PASN_Stream & strm) const; 
#ifndef PASN_NOPRINTON 
    void PrintOn(ostream & strm) const; 
#endif 
    Comparison Compare(const PObject & obj) const; 
    PObject * Clone() const; 
}; 
 
 
// 
// Connect-Additional 
// 
 
class MCS_Connect_Additional : public PASN_Sequence 
{ 
#ifndef PASN_LEANANDMEAN 
    PCLASSINFO(MCS_Connect_Additional, PASN_Sequence); 
#endif 
  public: 
    MCS_Connect_Additional(unsigned tag = 103, TagClass tagClass = ApplicationTagClass); 
 
    PASN_Integer m_calledConnectId; 
    MCS_DataPriority m_dataPriority; 
 
    PINDEX GetDataLength() const; 
    BOOL Decode(PASN_Stream & strm); 
    void Encode(PASN_Stream & strm) const; 
#ifndef PASN_NOPRINTON 
    void PrintOn(ostream & strm) const; 
#endif 
    Comparison Compare(const PObject & obj) const; 
    PObject * Clone() const; 
}; 
 
 
// 
// PDin 
// 
 
class MCS_PDin : public PASN_Sequence 
{ 
#ifndef PASN_LEANANDMEAN 
    PCLASSINFO(MCS_PDin, PASN_Sequence); 
#endif 
  public: 
    MCS_PDin(unsigned tag = 0, TagClass tagClass = ApplicationTagClass); 
 
    PASN_Integer m_heightLimit; 
 
    PINDEX GetDataLength() const; 
    BOOL Decode(PASN_Stream & strm); 
    void Encode(PASN_Stream & strm) const; 
#ifndef PASN_NOPRINTON 
    void PrintOn(ostream & strm) const; 
#endif 
    Comparison Compare(const PObject & obj) const; 
    PObject * Clone() const; 
}; 
 
 
// 
// EDrq 
// 
 
class MCS_EDrq : public PASN_Sequence 
{ 
#ifndef PASN_LEANANDMEAN 
    PCLASSINFO(MCS_EDrq, PASN_Sequence); 
#endif 
  public: 
    MCS_EDrq(unsigned tag = 1, TagClass tagClass = ApplicationTagClass); 
 
    PASN_Integer m_subHeight; 
    PASN_Integer m_subInterval; 
 
    PINDEX GetDataLength() const; 
    BOOL Decode(PASN_Stream & strm); 
    void Encode(PASN_Stream & strm) const; 
#ifndef PASN_NOPRINTON 
    void PrintOn(ostream & strm) const; 
#endif 
    Comparison Compare(const PObject & obj) const; 
    PObject * Clone() const; 
}; 
 
 
// 
// ChannelAttributes 
// 
 
class MCS_ChannelAttributes_static; 
class MCS_ChannelAttributes_userId; 
class MCS_ChannelAttributes_private; 
class MCS_ChannelAttributes_assigned; 
 
class MCS_ChannelAttributes : public PASN_Choice 
{ 
#ifndef PASN_LEANANDMEAN 
    PCLASSINFO(MCS_ChannelAttributes, PASN_Choice); 
#endif 
  public: 
    MCS_ChannelAttributes(unsigned tag = 0, TagClass tagClass = UniversalTagClass); 
 
    enum Choices { 
      e_static, 
      e_userId, 
      e_private, 
      e_assigned 
    }; 
 
#if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9 
    operator MCS_ChannelAttributes_static &() const; 
#else 
    operator MCS_ChannelAttributes_static &(); 
    operator const MCS_ChannelAttributes_static &() const; 
#endif 
#if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9 
    operator MCS_ChannelAttributes_userId &() const; 
#else 
    operator MCS_ChannelAttributes_userId &(); 
    operator const MCS_ChannelAttributes_userId &() const; 
#endif 
#if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9 
    operator MCS_ChannelAttributes_private &() const; 
#else 
    operator MCS_ChannelAttributes_private &(); 
    operator const MCS_ChannelAttributes_private &() const; 
#endif 
#if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9 
    operator MCS_ChannelAttributes_assigned &() const; 
#else 
    operator MCS_ChannelAttributes_assigned &(); 
    operator const MCS_ChannelAttributes_assigned &() const; 
#endif 
 
    BOOL CreateObject(); 
    PObject * Clone() const; 
}; 
 
 
// 
// TokenAttributes 
// 
 
class MCS_TokenAttributes_grabbed; 
class MCS_TokenAttributes_inhibited; 
class MCS_TokenAttributes_giving; 
class MCS_TokenAttributes_ungivable; 
class MCS_TokenAttributes_given; 
 
class MCS_TokenAttributes : public PASN_Choice 
{ 
#ifndef PASN_LEANANDMEAN 
    PCLASSINFO(MCS_TokenAttributes, PASN_Choice); 
#endif 
  public: 
    MCS_TokenAttributes(unsigned tag = 0, TagClass tagClass = UniversalTagClass); 
 
    enum Choices { 
      e_grabbed, 
      e_inhibited, 
      e_giving, 
      e_ungivable, 
      e_given 
    }; 
 
#if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9 
    operator MCS_TokenAttributes_grabbed &() const; 
#else 
    operator MCS_TokenAttributes_grabbed &(); 
    operator const MCS_TokenAttributes_grabbed &() const; 
#endif 
#if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9 
    operator MCS_TokenAttributes_inhibited &() const; 
#else 
    operator MCS_TokenAttributes_inhibited &(); 
    operator const MCS_TokenAttributes_inhibited &() const; 
#endif 
#if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9 
    operator MCS_TokenAttributes_giving &() const; 
#else 
    operator MCS_TokenAttributes_giving &(); 
    operator const MCS_TokenAttributes_giving &() const; 
#endif 
#if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9 
    operator MCS_TokenAttributes_ungivable &() const; 
#else 
    operator MCS_TokenAttributes_ungivable &(); 
    operator const MCS_TokenAttributes_ungivable &() const; 
#endif 
#if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9 
    operator MCS_TokenAttributes_given &() const; 
#else 
    operator MCS_TokenAttributes_given &(); 
    operator const MCS_TokenAttributes_given &() const; 
#endif 
 
    BOOL CreateObject(); 
    PObject * Clone() const; 
}; 
 
 
// 
// AUrq 
// 
 
class MCS_AUrq : public PASN_Sequence 
{ 
#ifndef PASN_LEANANDMEAN 
    PCLASSINFO(MCS_AUrq, PASN_Sequence); 
#endif 
  public: 
    MCS_AUrq(unsigned tag = 10, TagClass tagClass = ApplicationTagClass); 
 
 
    PINDEX GetDataLength() const; 
    BOOL Decode(PASN_Stream & strm); 
    void Encode(PASN_Stream & strm) const; 
#ifndef PASN_NOPRINTON 
    void PrintOn(ostream & strm) const; 
#endif 
    PObject * Clone() const; 
}; 
 
 
// 
// CJrq 
// 
 
class MCS_CJrq : public PASN_Sequence 
{ 
#ifndef PASN_LEANANDMEAN 
    PCLASSINFO(MCS_CJrq, PASN_Sequence); 
#endif 
  public: 
    MCS_CJrq(unsigned tag = 14, TagClass tagClass = ApplicationTagClass); 
 
    MCS_UserId m_initiator; 
    MCS_ChannelId m_channelId; 
 
    PINDEX GetDataLength() const; 
    BOOL Decode(PASN_Stream & strm); 
    void Encode(PASN_Stream & strm) const; 
#ifndef PASN_NOPRINTON 
    void PrintOn(ostream & strm) const; 
#endif 
    Comparison Compare(const PObject & obj) const; 
    PObject * Clone() const; 
}; 
 
 
// 
// CCrq 
// 
 
class MCS_CCrq : public PASN_Sequence 
{ 
#ifndef PASN_LEANANDMEAN 
    PCLASSINFO(MCS_CCrq, PASN_Sequence); 
#endif 
  public: 
    MCS_CCrq(unsigned tag = 17, TagClass tagClass = ApplicationTagClass); 
 
    MCS_UserId m_initiator; 
 
    PINDEX GetDataLength() const; 
    BOOL Decode(PASN_Stream & strm); 
    void Encode(PASN_Stream & strm) const; 
#ifndef PASN_NOPRINTON 
    void PrintOn(ostream & strm) const; 
#endif 
    Comparison Compare(const PObject & obj) const; 
    PObject * Clone() const; 
}; 
 
 
// 
// CDrq 
// 
 
class MCS_CDrq : public PASN_Sequence 
{ 
#ifndef PASN_LEANANDMEAN 
    PCLASSINFO(MCS_CDrq, PASN_Sequence); 
#endif 
  public: 
    MCS_CDrq(unsigned tag = 19, TagClass tagClass = ApplicationTagClass); 
 
    MCS_UserId m_initiator; 
    MCS_PrivateChannelId m_channelId; 
 
    PINDEX GetDataLength() const; 
    BOOL Decode(PASN_Stream & strm); 
    void Encode(PASN_Stream & strm) const; 
#ifndef PASN_NOPRINTON 
    void PrintOn(ostream & strm) const; 
#endif 
    Comparison Compare(const PObject & obj) const; 
    PObject * Clone() const; 
}; 
 
 
// 
// CDin 
// 
 
class MCS_CDin : public PASN_Sequence 
{ 
#ifndef PASN_LEANANDMEAN 
    PCLASSINFO(MCS_CDin, PASN_Sequence); 
#endif 
  public: 
    MCS_CDin(unsigned tag = 20, TagClass tagClass = ApplicationTagClass); 
 
    MCS_PrivateChannelId m_channelId; 
 
    PINDEX GetDataLength() const; 
    BOOL Decode(PASN_Stream & strm); 
    void Encode(PASN_Stream & strm) const; 
#ifndef PASN_NOPRINTON 
    void PrintOn(ostream & strm) const; 
#endif 
    Comparison Compare(const PObject & obj) const; 
    PObject * Clone() const; 
}; 
 
 
// 
// SDrq 
// 
 
class MCS_SDrq : public PASN_Sequence 
{ 
#ifndef PASN_LEANANDMEAN 
    PCLASSINFO(MCS_SDrq, PASN_Sequence); 
#endif 
  public: 
    MCS_SDrq(unsigned tag = 25, TagClass tagClass = ApplicationTagClass); 
 
    MCS_UserId m_initiator; 
    MCS_ChannelId m_channelId; 
    MCS_DataPriority m_dataPriority; 
    MCS_Segmentation m_segmentation; 
    PASN_OctetString m_userData; 
 
    PINDEX GetDataLength() const; 
    BOOL Decode(PASN_Stream & strm); 
    void Encode(PASN_Stream & strm) const; 
#ifndef PASN_NOPRINTON 
    void PrintOn(ostream & strm) const; 
#endif 
    Comparison Compare(const PObject & obj) const; 
    PObject * Clone() const; 
}; 
 
 
// 
// SDin 
// 
 
class MCS_SDin : public PASN_Sequence 
{ 
#ifndef PASN_LEANANDMEAN 
    PCLASSINFO(MCS_SDin, PASN_Sequence); 
#endif 
  public: 
    MCS_SDin(unsigned tag = 26, TagClass tagClass = ApplicationTagClass); 
 
    MCS_UserId m_initiator; 
    MCS_ChannelId m_channelId; 
    MCS_DataPriority m_dataPriority; 
    MCS_Segmentation m_segmentation; 
    PASN_OctetString m_userData; 
 
    PINDEX GetDataLength() const; 
    BOOL Decode(PASN_Stream & strm); 
    void Encode(PASN_Stream & strm) const; 
#ifndef PASN_NOPRINTON 
    void PrintOn(ostream & strm) const; 
#endif 
    Comparison Compare(const PObject & obj) const; 
    PObject * Clone() const; 
}; 
 
 
// 
// USrq 
// 
 
class MCS_USrq : public PASN_Sequence 
{ 
#ifndef PASN_LEANANDMEAN 
    PCLASSINFO(MCS_USrq, PASN_Sequence); 
#endif 
  public: 
    MCS_USrq(unsigned tag = 27, TagClass tagClass = ApplicationTagClass); 
 
    MCS_UserId m_initiator; 
    MCS_ChannelId m_channelId; 
    MCS_DataPriority m_dataPriority; 
    MCS_Segmentation m_segmentation; 
    PASN_OctetString m_userData; 
 
    PINDEX GetDataLength() const; 
    BOOL Decode(PASN_Stream & strm); 
    void Encode(PASN_Stream & strm) const; 
#ifndef PASN_NOPRINTON 
    void PrintOn(ostream & strm) const; 
#endif 
    Comparison Compare(const PObject & obj) const; 
    PObject * Clone() const; 
}; 
 
 
// 
// USin 
// 
 
class MCS_USin : public PASN_Sequence 
{ 
#ifndef PASN_LEANANDMEAN 
    PCLASSINFO(MCS_USin, PASN_Sequence); 
#endif 
  public: 
    MCS_USin(unsigned tag = 28, TagClass tagClass = ApplicationTagClass); 
 
    MCS_UserId m_initiator; 
    MCS_ChannelId m_channelId; 
    MCS_DataPriority m_dataPriority; 
    MCS_Segmentation m_segmentation; 
    PASN_OctetString m_userData; 
 
    PINDEX GetDataLength() const; 
    BOOL Decode(PASN_Stream & strm); 
    void Encode(PASN_Stream & strm) const; 
#ifndef PASN_NOPRINTON 
    void PrintOn(ostream & strm) const; 
#endif 
    Comparison Compare(const PObject & obj) const; 
    PObject * Clone() const; 
}; 
 
 
// 
// TGrq 
// 
 
class MCS_TGrq : public PASN_Sequence 
{ 
#ifndef PASN_LEANANDMEAN 
    PCLASSINFO(MCS_TGrq, PASN_Sequence); 
#endif 
  public: 
    MCS_TGrq(unsigned tag = 29, TagClass tagClass = ApplicationTagClass); 
 
    MCS_UserId m_initiator; 
    MCS_TokenId m_tokenId; 
 
    PINDEX GetDataLength() const; 
    BOOL Decode(PASN_Stream & strm); 
    void Encode(PASN_Stream & strm) const; 
#ifndef PASN_NOPRINTON 
    void PrintOn(ostream & strm) const; 
#endif 
    Comparison Compare(const PObject & obj) const; 
    PObject * Clone() const; 
}; 
 
 
// 
// TIrq 
// 
 
class MCS_TIrq : public PASN_Sequence 
{ 
#ifndef PASN_LEANANDMEAN 
    PCLASSINFO(MCS_TIrq, PASN_Sequence); 
#endif 
  public: 
    MCS_TIrq(unsigned tag = 31, TagClass tagClass = ApplicationTagClass); 
 
    MCS_UserId m_initiator; 
    MCS_TokenId m_tokenId; 
 
    PINDEX GetDataLength() const; 
    BOOL Decode(PASN_Stream & strm); 
    void Encode(PASN_Stream & strm) const; 
#ifndef PASN_NOPRINTON 
    void PrintOn(ostream & strm) const; 
#endif 
    Comparison Compare(const PObject & obj) const; 
    PObject * Clone() const; 
}; 
 
 
// 
// TVrq 
// 
 
class MCS_TVrq : public PASN_Sequence 
{ 
#ifndef PASN_LEANANDMEAN 
    PCLASSINFO(MCS_TVrq, PASN_Sequence); 
#endif 
  public: 
    MCS_TVrq(unsigned tag = 33, TagClass tagClass = ApplicationTagClass); 
 
    MCS_UserId m_initiator; 
    MCS_TokenId m_tokenId; 
    MCS_UserId m_recipient; 
 
    PINDEX GetDataLength() const; 
    BOOL Decode(PASN_Stream & strm); 
    void Encode(PASN_Stream & strm) const; 
#ifndef PASN_NOPRINTON 
    void PrintOn(ostream & strm) const; 
#endif 
    Comparison Compare(const PObject & obj) const; 
    PObject * Clone() const; 
}; 
 
 
// 
// TVin 
// 
 
class MCS_TVin : public PASN_Sequence 
{ 
#ifndef PASN_LEANANDMEAN 
    PCLASSINFO(MCS_TVin, PASN_Sequence); 
#endif 
  public: 
    MCS_TVin(unsigned tag = 34, TagClass tagClass = ApplicationTagClass); 
 
    MCS_UserId m_initiator; 
    MCS_TokenId m_tokenId; 
    MCS_UserId m_recipient; 
 
    PINDEX GetDataLength() const; 
    BOOL Decode(PASN_Stream & strm); 
    void Encode(PASN_Stream & strm) const; 
#ifndef PASN_NOPRINTON 
    void PrintOn(ostream & strm) const; 
#endif 
    Comparison Compare(const PObject & obj) const; 
    PObject * Clone() const; 
}; 
 
 
// 
// TPrq 
// 
 
class MCS_TPrq : public PASN_Sequence 
{ 
#ifndef PASN_LEANANDMEAN 
    PCLASSINFO(MCS_TPrq, PASN_Sequence); 
#endif 
  public: 
    MCS_TPrq(unsigned tag = 37, TagClass tagClass = ApplicationTagClass); 
 
    MCS_UserId m_initiator; 
    MCS_TokenId m_tokenId; 
 
    PINDEX GetDataLength() const; 
    BOOL Decode(PASN_Stream & strm); 
    void Encode(PASN_Stream & strm) const; 
#ifndef PASN_NOPRINTON 
    void PrintOn(ostream & strm) const; 
#endif 
    Comparison Compare(const PObject & obj) const; 
    PObject * Clone() const; 
}; 
 
 
// 
// TPin 
// 
 
class MCS_TPin : public PASN_Sequence 
{ 
#ifndef PASN_LEANANDMEAN 
    PCLASSINFO(MCS_TPin, PASN_Sequence); 
#endif 
  public: 
    MCS_TPin(unsigned tag = 38, TagClass tagClass = ApplicationTagClass); 
 
    MCS_UserId m_initiator; 
    MCS_TokenId m_tokenId; 
 
    PINDEX GetDataLength() const; 
    BOOL Decode(PASN_Stream & strm); 
    void Encode(PASN_Stream & strm) const; 
#ifndef PASN_NOPRINTON 
    void PrintOn(ostream & strm) const; 
#endif 
    Comparison Compare(const PObject & obj) const; 
    PObject * Clone() const; 
}; 
 
 
// 
// TRrq 
// 
 
class MCS_TRrq : public PASN_Sequence 
{ 
#ifndef PASN_LEANANDMEAN 
    PCLASSINFO(MCS_TRrq, PASN_Sequence); 
#endif 
  public: 
    MCS_TRrq(unsigned tag = 39, TagClass tagClass = ApplicationTagClass); 
 
    MCS_UserId m_initiator; 
    MCS_TokenId m_tokenId; 
 
    PINDEX GetDataLength() const; 
    BOOL Decode(PASN_Stream & strm); 
    void Encode(PASN_Stream & strm) const; 
#ifndef PASN_NOPRINTON 
    void PrintOn(ostream & strm) const; 
#endif 
    Comparison Compare(const PObject & obj) const; 
    PObject * Clone() const; 
}; 
 
 
// 
// TTrq 
// 
 
class MCS_TTrq : public PASN_Sequence 
{ 
#ifndef PASN_LEANANDMEAN 
    PCLASSINFO(MCS_TTrq, PASN_Sequence); 
#endif 
  public: 
    MCS_TTrq(unsigned tag = 41, TagClass tagClass = ApplicationTagClass); 
 
    MCS_UserId m_initiator; 
    MCS_TokenId m_tokenId; 
 
    PINDEX GetDataLength() const; 
    BOOL Decode(PASN_Stream & strm); 
    void Encode(PASN_Stream & strm) const; 
#ifndef PASN_NOPRINTON 
    void PrintOn(ostream & strm) const; 
#endif 
    Comparison Compare(const PObject & obj) const; 
    PObject * Clone() const; 
}; 
 
 
// 
// TTcf 
// 
 
class MCS_TTcf : public PASN_Sequence 
{ 
#ifndef PASN_LEANANDMEAN 
    PCLASSINFO(MCS_TTcf, PASN_Sequence); 
#endif 
  public: 
    MCS_TTcf(unsigned tag = 42, TagClass tagClass = ApplicationTagClass); 
 
    MCS_UserId m_initiator; 
    MCS_TokenId m_tokenId; 
    MCS_TokenStatus m_tokenStatus; 
 
    PINDEX GetDataLength() const; 
    BOOL Decode(PASN_Stream & strm); 
    void Encode(PASN_Stream & strm) const; 
#ifndef PASN_NOPRINTON 
    void PrintOn(ostream & strm) const; 
#endif 
    Comparison Compare(const PObject & obj) const; 
    PObject * Clone() const; 
}; 
 
 
// 
// Reason 
// 
 
class MCS_Reason : public PASN_Enumeration 
{ 
#ifndef PASN_LEANANDMEAN 
    PCLASSINFO(MCS_Reason, PASN_Enumeration); 
#endif 
  public: 
    MCS_Reason(unsigned tag = UniversalEnumeration, TagClass tagClass = UniversalTagClass); 
 
    enum Enumerations { 
      e_rn_domain_disconnected, 
      e_rn_provider_initiated, 
      e_rn_token_purged, 
      e_rn_user_requested, 
      e_rn_channel_purged 
    }; 
 
    MCS_Reason & operator=(unsigned v); 
    PObject * Clone() const; 
}; 
 
 
// 
// Result 
// 
 
class MCS_Result : public PASN_Enumeration 
{ 
#ifndef PASN_LEANANDMEAN 
    PCLASSINFO(MCS_Result, PASN_Enumeration); 
#endif 
  public: 
    MCS_Result(unsigned tag = UniversalEnumeration, TagClass tagClass = UniversalTagClass); 
 
    enum Enumerations { 
      e_rt_successful, 
      e_rt_domain_merging, 
      e_rt_domain_not_hierarchical, 
      e_rt_no_such_channel, 
      e_rt_no_such_domain, 
      e_rt_no_such_user, 
      e_rt_not_admitted, 
      e_rt_other_user_id, 
      e_rt_parameters_unacceptable, 
      e_rt_token_not_available, 
      e_rt_token_not_possessed, 
      e_rt_too_many_channels, 
      e_rt_too_many_tokens, 
      e_rt_too_many_users, 
      e_rt_unspecified_failure, 
      e_rt_user_rejected 
    }; 
 
    MCS_Result & operator=(unsigned v); 
    PObject * Clone() const; 
}; 
 
 
// 
// Diagnostic 
// 
 
class MCS_Diagnostic : public PASN_Enumeration 
{ 
#ifndef PASN_LEANANDMEAN 
    PCLASSINFO(MCS_Diagnostic, PASN_Enumeration); 
#endif 
  public: 
    MCS_Diagnostic(unsigned tag = UniversalEnumeration, TagClass tagClass = UniversalTagClass); 
 
    enum Enumerations { 
      e_dc_inconsistent_merge, 
      e_dc_forbidden_PDU_downward, 
      e_dc_forbidden_PDU_upward, 
      e_dc_invalid_BER_encoding, 
      e_dc_invalid_PER_encoding, 
      e_dc_misrouted_user, 
      e_dc_unrequested_confirm, 
      e_dc_wrong_transport_priority, 
      e_dc_channel_id_conflict, 
      e_dc_token_id_conflict, 
      e_dc_not_user_id_channel, 
      e_dc_too_many_channels, 
      e_dc_too_many_tokens, 
      e_dc_too_many_users 
    }; 
 
    MCS_Diagnostic & operator=(unsigned v); 
    PObject * Clone() const; 
}; 
 
 
// 
// ConnectMCSPDU 
// 
 
class MCS_Connect_Initial; 
class MCS_Connect_Response; 
class MCS_Connect_Additional; 
class MCS_Connect_Result; 
 
class MCS_ConnectMCSPDU : public PASN_Choice 
{ 
#ifndef PASN_LEANANDMEAN 
    PCLASSINFO(MCS_ConnectMCSPDU, PASN_Choice); 
#endif 
  public: 
    MCS_ConnectMCSPDU(unsigned tag = 0, TagClass tagClass = UniversalTagClass); 
 
    enum Choices { 
      e_connect_initial = 101, 
      e_connect_response, 
      e_connect_additional, 
      e_connect_result 
    }; 
 
#if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9 
    operator MCS_Connect_Initial &() const; 
#else 
    operator MCS_Connect_Initial &(); 
    operator const MCS_Connect_Initial &() const; 
#endif 
#if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9 
    operator MCS_Connect_Response &() const; 
#else 
    operator MCS_Connect_Response &(); 
    operator const MCS_Connect_Response &() const; 
#endif 
#if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9 
    operator MCS_Connect_Additional &() const; 
#else 
    operator MCS_Connect_Additional &(); 
    operator const MCS_Connect_Additional &() const; 
#endif 
#if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9 
    operator MCS_Connect_Result &() const; 
#else 
    operator MCS_Connect_Result &(); 
    operator const MCS_Connect_Result &() const; 
#endif 
 
    BOOL CreateObject(); 
    PObject * Clone() const; 
}; 
 
 
// 
// DomainMCSPDU 
// 
 
class MCS_PDin; 
class MCS_EDrq; 
class MCS_MCrq; 
class MCS_MCcf; 
class MCS_PCin; 
class MCS_MTrq; 
class MCS_MTcf; 
class MCS_PTin; 
class MCS_DPum; 
class MCS_RJum; 
class MCS_AUrq; 
class MCS_AUcf; 
class MCS_DUrq; 
class MCS_DUin; 
class MCS_CJrq; 
class MCS_CJcf; 
class MCS_CLrq; 
class MCS_CCrq; 
class MCS_CCcf; 
class MCS_CDrq; 
class MCS_CDin; 
class MCS_CArq; 
class MCS_CAin; 
class MCS_CErq; 
class MCS_CEin; 
class MCS_SDrq; 
class MCS_SDin; 
class MCS_USrq; 
class MCS_USin; 
class MCS_TGrq; 
class MCS_TGcf; 
class MCS_TIrq; 
class MCS_TIcf; 
class MCS_TVrq; 
class MCS_TVin; 
class MCS_TVrs; 
class MCS_TVcf; 
class MCS_TPrq; 
class MCS_TPin; 
class MCS_TRrq; 
class MCS_TRcf; 
class MCS_TTrq; 
class MCS_TTcf; 
 
class MCS_DomainMCSPDU : public PASN_Choice 
{ 
#ifndef PASN_LEANANDMEAN 
    PCLASSINFO(MCS_DomainMCSPDU, PASN_Choice); 
#endif 
  public: 
    MCS_DomainMCSPDU(unsigned tag = 0, TagClass tagClass = UniversalTagClass); 
 
    enum Choices { 
      e_pdin, 
      e_edrq, 
      e_mcrq, 
      e_mccf, 
      e_pcin, 
      e_mtrq, 
      e_mtcf, 
      e_ptin, 
      e_dpum, 
      e_rjum, 
      e_aurq, 
      e_aucf, 
      e_durq, 
      e_duin, 
      e_cjrq, 
      e_cjcf, 
      e_clrq, 
      e_ccrq, 
      e_cccf, 
      e_cdrq, 
      e_cdin, 
      e_carq, 
      e_cain, 
      e_cerq, 
      e_cein, 
      e_sdrq, 
      e_sdin, 
      e_usrq, 
      e_usin, 
      e_tgrq, 
      e_tgcf, 
      e_tirq, 
      e_ticf, 
      e_tvrq, 
      e_tvin, 
      e_tvrs, 
      e_tvcf, 
      e_tprq, 
      e_tpin, 
      e_trrq, 
      e_trcf, 
      e_ttrq, 
      e_ttcf 
    }; 
 
#if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9 
    operator MCS_PDin &() const; 
#else 
    operator MCS_PDin &(); 
    operator const MCS_PDin &() const; 
#endif 
#if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9 
    operator MCS_EDrq &() const; 
#else 
    operator MCS_EDrq &(); 
    operator const MCS_EDrq &() const; 
#endif 
#if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9 
    operator MCS_MCrq &() const; 
#else 
    operator MCS_MCrq &(); 
    operator const MCS_MCrq &() const; 
#endif 
#if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9 
    operator MCS_MCcf &() const; 
#else 
    operator MCS_MCcf &(); 
    operator const MCS_MCcf &() const; 
#endif 
#if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9 
    operator MCS_PCin &() const; 
#else 
    operator MCS_PCin &(); 
    operator const MCS_PCin &() const; 
#endif 
#if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9 
    operator MCS_MTrq &() const; 
#else 
    operator MCS_MTrq &(); 
    operator const MCS_MTrq &() const; 
#endif 
#if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9 
    operator MCS_MTcf &() const; 
#else 
    operator MCS_MTcf &(); 
    operator const MCS_MTcf &() const; 
#endif 
#if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9 
    operator MCS_PTin &() const; 
#else 
    operator MCS_PTin &(); 
    operator const MCS_PTin &() const; 
#endif 
#if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9 
    operator MCS_DPum &() const; 
#else 
    operator MCS_DPum &(); 
    operator const MCS_DPum &() const; 
#endif 
#if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9 
    operator MCS_RJum &() const; 
#else 
    operator MCS_RJum &(); 
    operator const MCS_RJum &() const; 
#endif 
#if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9 
    operator MCS_AUrq &() const; 
#else 
    operator MCS_AUrq &(); 
    operator const MCS_AUrq &() const; 
#endif 
#if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9 
    operator MCS_AUcf &() const; 
#else 
    operator MCS_AUcf &(); 
    operator const MCS_AUcf &() const; 
#endif 
#if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9 
    operator MCS_DUrq &() const; 
#else 
    operator MCS_DUrq &(); 
    operator const MCS_DUrq &() const; 
#endif 
#if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9 
    operator MCS_DUin &() const; 
#else 
    operator MCS_DUin &(); 
    operator const MCS_DUin &() const; 
#endif 
#if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9 
    operator MCS_CJrq &() const; 
#else 
    operator MCS_CJrq &(); 
    operator const MCS_CJrq &() const; 
#endif 
#if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9 
    operator MCS_CJcf &() const; 
#else 
    operator MCS_CJcf &(); 
    operator const MCS_CJcf &() const; 
#endif 
#if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9 
    operator MCS_CLrq &() const; 
#else 
    operator MCS_CLrq &(); 
    operator const MCS_CLrq &() const; 
#endif 
#if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9 
    operator MCS_CCrq &() const; 
#else 
    operator MCS_CCrq &(); 
    operator const MCS_CCrq &() const; 
#endif 
#if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9 
    operator MCS_CCcf &() const; 
#else 
    operator MCS_CCcf &(); 
    operator const MCS_CCcf &() const; 
#endif 
#if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9 
    operator MCS_CDrq &() const; 
#else 
    operator MCS_CDrq &(); 
    operator const MCS_CDrq &() const; 
#endif 
#if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9 
    operator MCS_CDin &() const; 
#else 
    operator MCS_CDin &(); 
    operator const MCS_CDin &() const; 
#endif 
#if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9 
    operator MCS_CArq &() const; 
#else 
    operator MCS_CArq &(); 
    operator const MCS_CArq &() const; 
#endif 
#if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9 
    operator MCS_CAin &() const; 
#else 
    operator MCS_CAin &(); 
    operator const MCS_CAin &() const; 
#endif 
#if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9 
    operator MCS_CErq &() const; 
#else 
    operator MCS_CErq &(); 
    operator const MCS_CErq &() const; 
#endif 
#if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9 
    operator MCS_CEin &() const; 
#else 
    operator MCS_CEin &(); 
    operator const MCS_CEin &() const; 
#endif 
#if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9 
    operator MCS_SDrq &() const; 
#else 
    operator MCS_SDrq &(); 
    operator const MCS_SDrq &() const; 
#endif 
#if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9 
    operator MCS_SDin &() const; 
#else 
    operator MCS_SDin &(); 
    operator const MCS_SDin &() const; 
#endif 
#if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9 
    operator MCS_USrq &() const; 
#else 
    operator MCS_USrq &(); 
    operator const MCS_USrq &() const; 
#endif 
#if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9 
    operator MCS_USin &() const; 
#else 
    operator MCS_USin &(); 
    operator const MCS_USin &() const; 
#endif 
#if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9 
    operator MCS_TGrq &() const; 
#else 
    operator MCS_TGrq &(); 
    operator const MCS_TGrq &() const; 
#endif 
#if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9 
    operator MCS_TGcf &() const; 
#else 
    operator MCS_TGcf &(); 
    operator const MCS_TGcf &() const; 
#endif 
#if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9 
    operator MCS_TIrq &() const; 
#else 
    operator MCS_TIrq &(); 
    operator const MCS_TIrq &() const; 
#endif 
#if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9 
    operator MCS_TIcf &() const; 
#else 
    operator MCS_TIcf &(); 
    operator const MCS_TIcf &() const; 
#endif 
#if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9 
    operator MCS_TVrq &() const; 
#else 
    operator MCS_TVrq &(); 
    operator const MCS_TVrq &() const; 
#endif 
#if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9 
    operator MCS_TVin &() const; 
#else 
    operator MCS_TVin &(); 
    operator const MCS_TVin &() const; 
#endif 
#if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9 
    operator MCS_TVrs &() const; 
#else 
    operator MCS_TVrs &(); 
    operator const MCS_TVrs &() const; 
#endif 
#if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9 
    operator MCS_TVcf &() const; 
#else 
    operator MCS_TVcf &(); 
    operator const MCS_TVcf &() const; 
#endif 
#if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9 
    operator MCS_TPrq &() const; 
#else 
    operator MCS_TPrq &(); 
    operator const MCS_TPrq &() const; 
#endif 
#if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9 
    operator MCS_TPin &() const; 
#else 
    operator MCS_TPin &(); 
    operator const MCS_TPin &() const; 
#endif 
#if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9 
    operator MCS_TRrq &() const; 
#else 
    operator MCS_TRrq &(); 
    operator const MCS_TRrq &() const; 
#endif 
#if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9 
    operator MCS_TRcf &() const; 
#else 
    operator MCS_TRcf &(); 
    operator const MCS_TRcf &() const; 
#endif 
#if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9 
    operator MCS_TTrq &() const; 
#else 
    operator MCS_TTrq &(); 
    operator const MCS_TTrq &() const; 
#endif 
#if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9 
    operator MCS_TTcf &() const; 
#else 
    operator MCS_TTcf &(); 
    operator const MCS_TTcf &() const; 
#endif 
 
    BOOL CreateObject(); 
    PObject * Clone() const; 
}; 
 
 
// 
// ChannelAttributes_static 
// 
 
class MCS_ChannelAttributes_static : public PASN_Sequence 
{ 
#ifndef PASN_LEANANDMEAN 
    PCLASSINFO(MCS_ChannelAttributes_static, PASN_Sequence); 
#endif 
  public: 
    MCS_ChannelAttributes_static(unsigned tag = 0, TagClass tagClass = ContextSpecificTagClass); 
 
    MCS_StaticChannelId m_channelId; 
 
    PINDEX GetDataLength() const; 
    BOOL Decode(PASN_Stream & strm); 
    void Encode(PASN_Stream & strm) const; 
#ifndef PASN_NOPRINTON 
    void PrintOn(ostream & strm) const; 
#endif 
    Comparison Compare(const PObject & obj) const; 
    PObject * Clone() const; 
}; 
 
 
// 
// ChannelAttributes_userId 
// 
 
class MCS_ChannelAttributes_userId : public PASN_Sequence 
{ 
#ifndef PASN_LEANANDMEAN 
    PCLASSINFO(MCS_ChannelAttributes_userId, PASN_Sequence); 
#endif 
  public: 
    MCS_ChannelAttributes_userId(unsigned tag = 1, TagClass tagClass = ContextSpecificTagClass); 
 
    PASN_Boolean m_joined; 
    MCS_UserId m_userId; 
 
    PINDEX GetDataLength() const; 
    BOOL Decode(PASN_Stream & strm); 
    void Encode(PASN_Stream & strm) const; 
#ifndef PASN_NOPRINTON 
    void PrintOn(ostream & strm) const; 
#endif 
    Comparison Compare(const PObject & obj) const; 
    PObject * Clone() const; 
}; 
 
 
// 
// ChannelAttributes_assigned 
// 
 
class MCS_ChannelAttributes_assigned : public PASN_Sequence 
{ 
#ifndef PASN_LEANANDMEAN 
    PCLASSINFO(MCS_ChannelAttributes_assigned, PASN_Sequence); 
#endif 
  public: 
    MCS_ChannelAttributes_assigned(unsigned tag = 3, TagClass tagClass = ContextSpecificTagClass); 
 
    MCS_AssignedChannelId m_channelId; 
 
    PINDEX GetDataLength() const; 
    BOOL Decode(PASN_Stream & strm); 
    void Encode(PASN_Stream & strm) const; 
#ifndef PASN_NOPRINTON 
    void PrintOn(ostream & strm) const; 
#endif 
    Comparison Compare(const PObject & obj) const; 
    PObject * Clone() const; 
}; 
 
 
// 
// ArrayOf_ChannelAttributes 
// 
 
class MCS_ChannelAttributes; 
 
class MCS_ArrayOf_ChannelAttributes : public PASN_Array 
{ 
#ifndef PASN_LEANANDMEAN 
    PCLASSINFO(MCS_ArrayOf_ChannelAttributes, PASN_Array); 
#endif 
  public: 
    MCS_ArrayOf_ChannelAttributes(unsigned tag = UniversalSet, TagClass tagClass = UniversalTagClass); 
 
    PASN_Object * CreateObject() const; 
    MCS_ChannelAttributes & operator[](PINDEX i) const; 
    PObject * Clone() const; 
}; 
 
 
// 
// ArrayOf_ChannelId 
// 
 
class MCS_ChannelId; 
 
class MCS_ArrayOf_ChannelId : public PASN_Array 
{ 
#ifndef PASN_LEANANDMEAN 
    PCLASSINFO(MCS_ArrayOf_ChannelId, PASN_Array); 
#endif 
  public: 
    MCS_ArrayOf_ChannelId(unsigned tag = UniversalSet, TagClass tagClass = UniversalTagClass); 
 
    PASN_Object * CreateObject() const; 
    MCS_ChannelId & operator[](PINDEX i) const; 
    PObject * Clone() const; 
}; 
 
 
// 
// ArrayOf_UserId 
// 
 
class MCS_UserId; 
 
class MCS_ArrayOf_UserId : public PASN_Array 
{ 
#ifndef PASN_LEANANDMEAN 
    PCLASSINFO(MCS_ArrayOf_UserId, PASN_Array); 
#endif 
  public: 
    MCS_ArrayOf_UserId(unsigned tag = UniversalSet, TagClass tagClass = UniversalTagClass); 
 
    PASN_Object * CreateObject() const; 
    MCS_UserId & operator[](PINDEX i) const; 
    PObject * Clone() const; 
}; 
 
 
// 
// TokenAttributes_grabbed 
// 
 
class MCS_TokenAttributes_grabbed : public PASN_Sequence 
{ 
#ifndef PASN_LEANANDMEAN 
    PCLASSINFO(MCS_TokenAttributes_grabbed, PASN_Sequence); 
#endif 
  public: 
    MCS_TokenAttributes_grabbed(unsigned tag = 0, TagClass tagClass = ContextSpecificTagClass); 
 
    MCS_TokenId m_tokenId; 
    MCS_UserId m_grabber; 
 
    PINDEX GetDataLength() const; 
    BOOL Decode(PASN_Stream & strm); 
    void Encode(PASN_Stream & strm) const; 
#ifndef PASN_NOPRINTON 
    void PrintOn(ostream & strm) const; 
#endif 
    Comparison Compare(const PObject & obj) const; 
    PObject * Clone() const; 
}; 
 
 
// 
// TokenAttributes_inhibited 
// 
 
class MCS_TokenAttributes_inhibited : public PASN_Sequence 
{ 
#ifndef PASN_LEANANDMEAN 
    PCLASSINFO(MCS_TokenAttributes_inhibited, PASN_Sequence); 
#endif 
  public: 
    MCS_TokenAttributes_inhibited(unsigned tag = 1, TagClass tagClass = ContextSpecificTagClass); 
 
    MCS_TokenId m_tokenId; 
    MCS_ArrayOf_UserId m_inhibitors; 
 
    PINDEX GetDataLength() const; 
    BOOL Decode(PASN_Stream & strm); 
    void Encode(PASN_Stream & strm) const; 
#ifndef PASN_NOPRINTON 
    void PrintOn(ostream & strm) const; 
#endif 
    Comparison Compare(const PObject & obj) const; 
    PObject * Clone() const; 
}; 
 
 
// 
// TokenAttributes_giving 
// 
 
class MCS_TokenAttributes_giving : public PASN_Sequence 
{ 
#ifndef PASN_LEANANDMEAN 
    PCLASSINFO(MCS_TokenAttributes_giving, PASN_Sequence); 
#endif 
  public: 
    MCS_TokenAttributes_giving(unsigned tag = 2, TagClass tagClass = ContextSpecificTagClass); 
 
    MCS_TokenId m_tokenId; 
    MCS_UserId m_grabber; 
    MCS_UserId m_recipient; 
 
    PINDEX GetDataLength() const; 
    BOOL Decode(PASN_Stream & strm); 
    void Encode(PASN_Stream & strm) const; 
#ifndef PASN_NOPRINTON 
    void PrintOn(ostream & strm) const; 
#endif 
    Comparison Compare(const PObject & obj) const; 
    PObject * Clone() const; 
}; 
 
 
// 
// TokenAttributes_ungivable 
// 
 
class MCS_TokenAttributes_ungivable : public PASN_Sequence 
{ 
#ifndef PASN_LEANANDMEAN 
    PCLASSINFO(MCS_TokenAttributes_ungivable, PASN_Sequence); 
#endif 
  public: 
    MCS_TokenAttributes_ungivable(unsigned tag = 3, TagClass tagClass = ContextSpecificTagClass); 
 
    MCS_TokenId m_tokenId; 
    MCS_UserId m_grabber; 
 
    PINDEX GetDataLength() const; 
    BOOL Decode(PASN_Stream & strm); 
    void Encode(PASN_Stream & strm) const; 
#ifndef PASN_NOPRINTON 
    void PrintOn(ostream & strm) const; 
#endif 
    Comparison Compare(const PObject & obj) const; 
    PObject * Clone() const; 
}; 
 
 
// 
// TokenAttributes_given 
// 
 
class MCS_TokenAttributes_given : public PASN_Sequence 
{ 
#ifndef PASN_LEANANDMEAN 
    PCLASSINFO(MCS_TokenAttributes_given, PASN_Sequence); 
#endif 
  public: 
    MCS_TokenAttributes_given(unsigned tag = 4, TagClass tagClass = ContextSpecificTagClass); 
 
    MCS_TokenId m_tokenId; 
    MCS_UserId m_recipient; 
 
    PINDEX GetDataLength() const; 
    BOOL Decode(PASN_Stream & strm); 
    void Encode(PASN_Stream & strm) const; 
#ifndef PASN_NOPRINTON 
    void PrintOn(ostream & strm) const; 
#endif 
    Comparison Compare(const PObject & obj) const; 
    PObject * Clone() const; 
}; 
 
 
// 
// ArrayOf_TokenAttributes 
// 
 
class MCS_TokenAttributes; 
 
class MCS_ArrayOf_TokenAttributes : public PASN_Array 
{ 
#ifndef PASN_LEANANDMEAN 
    PCLASSINFO(MCS_ArrayOf_TokenAttributes, PASN_Array); 
#endif 
  public: 
    MCS_ArrayOf_TokenAttributes(unsigned tag = UniversalSet, TagClass tagClass = UniversalTagClass); 
 
    PASN_Object * CreateObject() const; 
    MCS_TokenAttributes & operator[](PINDEX i) const; 
    PObject * Clone() const; 
}; 
 
 
// 
// ArrayOf_TokenId 
// 
 
class MCS_TokenId; 
 
class MCS_ArrayOf_TokenId : public PASN_Array 
{ 
#ifndef PASN_LEANANDMEAN 
    PCLASSINFO(MCS_ArrayOf_TokenId, PASN_Array); 
#endif 
  public: 
    MCS_ArrayOf_TokenId(unsigned tag = UniversalSet, TagClass tagClass = UniversalTagClass); 
 
    PASN_Object * CreateObject() const; 
    MCS_TokenId & operator[](PINDEX i) const; 
    PObject * Clone() const; 
}; 
 
 
// 
// Connect-Response 
// 
 
class MCS_Connect_Response : public PASN_Sequence 
{ 
#ifndef PASN_LEANANDMEAN 
    PCLASSINFO(MCS_Connect_Response, PASN_Sequence); 
#endif 
  public: 
    MCS_Connect_Response(unsigned tag = 102, TagClass tagClass = ApplicationTagClass); 
 
    MCS_Result m_result; 
    PASN_Integer m_calledConnectId; 
    MCS_DomainParameters m_domainParameters; 
    PASN_OctetString m_userData; 
 
    PINDEX GetDataLength() const; 
    BOOL Decode(PASN_Stream & strm); 
    void Encode(PASN_Stream & strm) const; 
#ifndef PASN_NOPRINTON 
    void PrintOn(ostream & strm) const; 
#endif 
    Comparison Compare(const PObject & obj) const; 
    PObject * Clone() const; 
}; 
 
 
// 
// Connect-Result 
// 
 
class MCS_Connect_Result : public PASN_Sequence 
{ 
#ifndef PASN_LEANANDMEAN 
    PCLASSINFO(MCS_Connect_Result, PASN_Sequence); 
#endif 
  public: 
    MCS_Connect_Result(unsigned tag = 104, TagClass tagClass = ApplicationTagClass); 
 
    MCS_Result m_result; 
 
    PINDEX GetDataLength() const; 
    BOOL Decode(PASN_Stream & strm); 
    void Encode(PASN_Stream & strm) const; 
#ifndef PASN_NOPRINTON 
    void PrintOn(ostream & strm) const; 
#endif 
    Comparison Compare(const PObject & obj) const; 
    PObject * Clone() const; 
}; 
 
 
// 
// MCrq 
// 
 
class MCS_MCrq : public PASN_Sequence 
{ 
#ifndef PASN_LEANANDMEAN 
    PCLASSINFO(MCS_MCrq, PASN_Sequence); 
#endif 
  public: 
    MCS_MCrq(unsigned tag = 2, TagClass tagClass = ApplicationTagClass); 
 
    MCS_ArrayOf_ChannelAttributes m_mergeChannels; 
    MCS_ArrayOf_ChannelId m_purgeChannelIds; 
 
    PINDEX GetDataLength() const; 
    BOOL Decode(PASN_Stream & strm); 
    void Encode(PASN_Stream & strm) const; 
#ifndef PASN_NOPRINTON 
    void PrintOn(ostream & strm) const; 
#endif 
    Comparison Compare(const PObject & obj) const; 
    PObject * Clone() const; 
}; 
 
 
// 
// MCcf 
// 
 
class MCS_MCcf : public PASN_Sequence 
{ 
#ifndef PASN_LEANANDMEAN 
    PCLASSINFO(MCS_MCcf, PASN_Sequence); 
#endif 
  public: 
    MCS_MCcf(unsigned tag = 3, TagClass tagClass = ApplicationTagClass); 
 
    MCS_ArrayOf_ChannelAttributes m_mergeChannels; 
    MCS_ArrayOf_ChannelId m_purgeChannelIds; 
 
    PINDEX GetDataLength() const; 
    BOOL Decode(PASN_Stream & strm); 
    void Encode(PASN_Stream & strm) const; 
#ifndef PASN_NOPRINTON 
    void PrintOn(ostream & strm) const; 
#endif 
    Comparison Compare(const PObject & obj) const; 
    PObject * Clone() const; 
}; 
 
 
// 
// PCin 
// 
 
class MCS_PCin : public PASN_Sequence 
{ 
#ifndef PASN_LEANANDMEAN 
    PCLASSINFO(MCS_PCin, PASN_Sequence); 
#endif 
  public: 
    MCS_PCin(unsigned tag = 4, TagClass tagClass = ApplicationTagClass); 
 
    MCS_ArrayOf_UserId m_detachUserIds; 
    MCS_ArrayOf_ChannelId m_purgeChannelIds; 
 
    PINDEX GetDataLength() const; 
    BOOL Decode(PASN_Stream & strm); 
    void Encode(PASN_Stream & strm) const; 
#ifndef PASN_NOPRINTON 
    void PrintOn(ostream & strm) const; 
#endif 
    Comparison Compare(const PObject & obj) const; 
    PObject * Clone() const; 
}; 
 
 
// 
// MTrq 
// 
 
class MCS_MTrq : public PASN_Sequence 
{ 
#ifndef PASN_LEANANDMEAN 
    PCLASSINFO(MCS_MTrq, PASN_Sequence); 
#endif 
  public: 
    MCS_MTrq(unsigned tag = 5, TagClass tagClass = ApplicationTagClass); 
 
    MCS_ArrayOf_TokenAttributes m_mergeTokens; 
    MCS_ArrayOf_TokenId m_purgeTokenIds; 
 
    PINDEX GetDataLength() const; 
    BOOL Decode(PASN_Stream & strm); 
    void Encode(PASN_Stream & strm) const; 
#ifndef PASN_NOPRINTON 
    void PrintOn(ostream & strm) const; 
#endif 
    Comparison Compare(const PObject & obj) const; 
    PObject * Clone() const; 
}; 
 
 
// 
// MTcf 
// 
 
class MCS_MTcf : public PASN_Sequence 
{ 
#ifndef PASN_LEANANDMEAN 
    PCLASSINFO(MCS_MTcf, PASN_Sequence); 
#endif 
  public: 
    MCS_MTcf(unsigned tag = 6, TagClass tagClass = ApplicationTagClass); 
 
    MCS_ArrayOf_TokenAttributes m_mergeTokens; 
    MCS_ArrayOf_TokenId m_purgeTokenIds; 
 
    PINDEX GetDataLength() const; 
    BOOL Decode(PASN_Stream & strm); 
    void Encode(PASN_Stream & strm) const; 
#ifndef PASN_NOPRINTON 
    void PrintOn(ostream & strm) const; 
#endif 
    Comparison Compare(const PObject & obj) const; 
    PObject * Clone() const; 
}; 
 
 
// 
// PTin 
// 
 
class MCS_PTin : public PASN_Sequence 
{ 
#ifndef PASN_LEANANDMEAN 
    PCLASSINFO(MCS_PTin, PASN_Sequence); 
#endif 
  public: 
    MCS_PTin(unsigned tag = 7, TagClass tagClass = ApplicationTagClass); 
 
    MCS_ArrayOf_TokenId m_purgeTokenIds; 
 
    PINDEX GetDataLength() const; 
    BOOL Decode(PASN_Stream & strm); 
    void Encode(PASN_Stream & strm) const; 
#ifndef PASN_NOPRINTON 
    void PrintOn(ostream & strm) const; 
#endif 
    Comparison Compare(const PObject & obj) const; 
    PObject * Clone() const; 
}; 
 
 
// 
// DPum 
// 
 
class MCS_DPum : public PASN_Sequence 
{ 
#ifndef PASN_LEANANDMEAN 
    PCLASSINFO(MCS_DPum, PASN_Sequence); 
#endif 
  public: 
    MCS_DPum(unsigned tag = 8, TagClass tagClass = ApplicationTagClass); 
 
    MCS_Reason m_reason; 
 
    PINDEX GetDataLength() const; 
    BOOL Decode(PASN_Stream & strm); 
    void Encode(PASN_Stream & strm) const; 
#ifndef PASN_NOPRINTON 
    void PrintOn(ostream & strm) const; 
#endif 
    Comparison Compare(const PObject & obj) const; 
    PObject * Clone() const; 
}; 
 
 
// 
// RJum 
// 
 
class MCS_RJum : public PASN_Sequence 
{ 
#ifndef PASN_LEANANDMEAN 
    PCLASSINFO(MCS_RJum, PASN_Sequence); 
#endif 
  public: 
    MCS_RJum(unsigned tag = 9, TagClass tagClass = ApplicationTagClass); 
 
    MCS_Diagnostic m_diagnostic; 
    PASN_OctetString m_initialOctets; 
 
    PINDEX GetDataLength() const; 
    BOOL Decode(PASN_Stream & strm); 
    void Encode(PASN_Stream & strm) const; 
#ifndef PASN_NOPRINTON 
    void PrintOn(ostream & strm) const; 
#endif 
    Comparison Compare(const PObject & obj) const; 
    PObject * Clone() const; 
}; 
 
 
// 
// AUcf 
// 
 
class MCS_AUcf : public PASN_Sequence 
{ 
#ifndef PASN_LEANANDMEAN 
    PCLASSINFO(MCS_AUcf, PASN_Sequence); 
#endif 
  public: 
    MCS_AUcf(unsigned tag = 11, TagClass tagClass = ApplicationTagClass); 
 
    enum OptionalFields { 
      e_initiator 
    }; 
 
    MCS_Result m_result; 
    MCS_UserId m_initiator; 
 
    PINDEX GetDataLength() const; 
    BOOL Decode(PASN_Stream & strm); 
    void Encode(PASN_Stream & strm) const; 
#ifndef PASN_NOPRINTON 
    void PrintOn(ostream & strm) const; 
#endif 
    Comparison Compare(const PObject & obj) const; 
    PObject * Clone() const; 
}; 
 
 
// 
// DUrq 
// 
 
class MCS_DUrq : public PASN_Sequence 
{ 
#ifndef PASN_LEANANDMEAN 
    PCLASSINFO(MCS_DUrq, PASN_Sequence); 
#endif 
  public: 
    MCS_DUrq(unsigned tag = 12, TagClass tagClass = ApplicationTagClass); 
 
    MCS_Reason m_reason; 
    MCS_ArrayOf_UserId m_userIds; 
 
    PINDEX GetDataLength() const; 
    BOOL Decode(PASN_Stream & strm); 
    void Encode(PASN_Stream & strm) const; 
#ifndef PASN_NOPRINTON 
    void PrintOn(ostream & strm) const; 
#endif 
    Comparison Compare(const PObject & obj) const; 
    PObject * Clone() const; 
}; 
 
 
// 
// DUin 
// 
 
class MCS_DUin : public PASN_Sequence 
{ 
#ifndef PASN_LEANANDMEAN 
    PCLASSINFO(MCS_DUin, PASN_Sequence); 
#endif 
  public: 
    MCS_DUin(unsigned tag = 13, TagClass tagClass = ApplicationTagClass); 
 
    MCS_Reason m_reason; 
    MCS_ArrayOf_UserId m_userIds; 
 
    PINDEX GetDataLength() const; 
    BOOL Decode(PASN_Stream & strm); 
    void Encode(PASN_Stream & strm) const; 
#ifndef PASN_NOPRINTON 
    void PrintOn(ostream & strm) const; 
#endif 
    Comparison Compare(const PObject & obj) const; 
    PObject * Clone() const; 
}; 
 
 
// 
// CJcf 
// 
 
class MCS_CJcf : public PASN_Sequence 
{ 
#ifndef PASN_LEANANDMEAN 
    PCLASSINFO(MCS_CJcf, PASN_Sequence); 
#endif 
  public: 
    MCS_CJcf(unsigned tag = 15, TagClass tagClass = ApplicationTagClass); 
 
    enum OptionalFields { 
      e_channelId 
    }; 
 
    MCS_Result m_result; 
    MCS_UserId m_initiator; 
    MCS_ChannelId m_requested; 
    MCS_ChannelId m_channelId; 
 
    PINDEX GetDataLength() const; 
    BOOL Decode(PASN_Stream & strm); 
    void Encode(PASN_Stream & strm) const; 
#ifndef PASN_NOPRINTON 
    void PrintOn(ostream & strm) const; 
#endif 
    Comparison Compare(const PObject & obj) const; 
    PObject * Clone() const; 
}; 
 
 
// 
// CLrq 
// 
 
class MCS_CLrq : public PASN_Sequence 
{ 
#ifndef PASN_LEANANDMEAN 
    PCLASSINFO(MCS_CLrq, PASN_Sequence); 
#endif 
  public: 
    MCS_CLrq(unsigned tag = 16, TagClass tagClass = ApplicationTagClass); 
 
    MCS_ArrayOf_ChannelId m_channelIds; 
 
    PINDEX GetDataLength() const; 
    BOOL Decode(PASN_Stream & strm); 
    void Encode(PASN_Stream & strm) const; 
#ifndef PASN_NOPRINTON 
    void PrintOn(ostream & strm) const; 
#endif 
    Comparison Compare(const PObject & obj) const; 
    PObject * Clone() const; 
}; 
 
 
// 
// CCcf 
// 
 
class MCS_CCcf : public PASN_Sequence 
{ 
#ifndef PASN_LEANANDMEAN 
    PCLASSINFO(MCS_CCcf, PASN_Sequence); 
#endif 
  public: 
    MCS_CCcf(unsigned tag = 18, TagClass tagClass = ApplicationTagClass); 
 
    enum OptionalFields { 
      e_channelId 
    }; 
 
    MCS_Result m_result; 
    MCS_UserId m_initiator; 
    MCS_PrivateChannelId m_channelId; 
 
    PINDEX GetDataLength() const; 
    BOOL Decode(PASN_Stream & strm); 
    void Encode(PASN_Stream & strm) const; 
#ifndef PASN_NOPRINTON 
    void PrintOn(ostream & strm) const; 
#endif 
    Comparison Compare(const PObject & obj) const; 
    PObject * Clone() const; 
}; 
 
 
// 
// CArq 
// 
 
class MCS_CArq : public PASN_Sequence 
{ 
#ifndef PASN_LEANANDMEAN 
    PCLASSINFO(MCS_CArq, PASN_Sequence); 
#endif 
  public: 
    MCS_CArq(unsigned tag = 21, TagClass tagClass = ApplicationTagClass); 
 
    MCS_UserId m_initiator; 
    MCS_PrivateChannelId m_channelId; 
    MCS_ArrayOf_UserId m_userIds; 
 
    PINDEX GetDataLength() const; 
    BOOL Decode(PASN_Stream & strm); 
    void Encode(PASN_Stream & strm) const; 
#ifndef PASN_NOPRINTON 
    void PrintOn(ostream & strm) const; 
#endif 
    Comparison Compare(const PObject & obj) const; 
    PObject * Clone() const; 
}; 
 
 
// 
// CAin 
// 
 
class MCS_CAin : public PASN_Sequence 
{ 
#ifndef PASN_LEANANDMEAN 
    PCLASSINFO(MCS_CAin, PASN_Sequence); 
#endif 
  public: 
    MCS_CAin(unsigned tag = 22, TagClass tagClass = ApplicationTagClass); 
 
    MCS_UserId m_initiator; 
    MCS_PrivateChannelId m_channelId; 
    MCS_ArrayOf_UserId m_userIds; 
 
    PINDEX GetDataLength() const; 
    BOOL Decode(PASN_Stream & strm); 
    void Encode(PASN_Stream & strm) const; 
#ifndef PASN_NOPRINTON 
    void PrintOn(ostream & strm) const; 
#endif 
    Comparison Compare(const PObject & obj) const; 
    PObject * Clone() const; 
}; 
 
 
// 
// CErq 
// 
 
class MCS_CErq : public PASN_Sequence 
{ 
#ifndef PASN_LEANANDMEAN 
    PCLASSINFO(MCS_CErq, PASN_Sequence); 
#endif 
  public: 
    MCS_CErq(unsigned tag = 23, TagClass tagClass = ApplicationTagClass); 
 
    MCS_UserId m_initiator; 
    MCS_PrivateChannelId m_channelId; 
    MCS_ArrayOf_UserId m_userIds; 
 
    PINDEX GetDataLength() const; 
    BOOL Decode(PASN_Stream & strm); 
    void Encode(PASN_Stream & strm) const; 
#ifndef PASN_NOPRINTON 
    void PrintOn(ostream & strm) const; 
#endif 
    Comparison Compare(const PObject & obj) const; 
    PObject * Clone() const; 
}; 
 
 
// 
// CEin 
// 
 
class MCS_CEin : public PASN_Sequence 
{ 
#ifndef PASN_LEANANDMEAN 
    PCLASSINFO(MCS_CEin, PASN_Sequence); 
#endif 
  public: 
    MCS_CEin(unsigned tag = 24, TagClass tagClass = ApplicationTagClass); 
 
    MCS_PrivateChannelId m_channelId; 
    MCS_ArrayOf_UserId m_userIds; 
 
    PINDEX GetDataLength() const; 
    BOOL Decode(PASN_Stream & strm); 
    void Encode(PASN_Stream & strm) const; 
#ifndef PASN_NOPRINTON 
    void PrintOn(ostream & strm) const; 
#endif 
    Comparison Compare(const PObject & obj) const; 
    PObject * Clone() const; 
}; 
 
 
// 
// TGcf 
// 
 
class MCS_TGcf : public PASN_Sequence 
{ 
#ifndef PASN_LEANANDMEAN 
    PCLASSINFO(MCS_TGcf, PASN_Sequence); 
#endif 
  public: 
    MCS_TGcf(unsigned tag = 30, TagClass tagClass = ApplicationTagClass); 
 
    MCS_Result m_result; 
    MCS_UserId m_initiator; 
    MCS_TokenId m_tokenId; 
    MCS_TokenStatus m_tokenStatus; 
 
    PINDEX GetDataLength() const; 
    BOOL Decode(PASN_Stream & strm); 
    void Encode(PASN_Stream & strm) const; 
#ifndef PASN_NOPRINTON 
    void PrintOn(ostream & strm) const; 
#endif 
    Comparison Compare(const PObject & obj) const; 
    PObject * Clone() const; 
}; 
 
 
// 
// TIcf 
// 
 
class MCS_TIcf : public PASN_Sequence 
{ 
#ifndef PASN_LEANANDMEAN 
    PCLASSINFO(MCS_TIcf, PASN_Sequence); 
#endif 
  public: 
    MCS_TIcf(unsigned tag = 32, TagClass tagClass = ApplicationTagClass); 
 
    MCS_Result m_result; 
    MCS_UserId m_initiator; 
    MCS_TokenId m_tokenId; 
    MCS_TokenStatus m_tokenStatus; 
 
    PINDEX GetDataLength() const; 
    BOOL Decode(PASN_Stream & strm); 
    void Encode(PASN_Stream & strm) const; 
#ifndef PASN_NOPRINTON 
    void PrintOn(ostream & strm) const; 
#endif 
    Comparison Compare(const PObject & obj) const; 
    PObject * Clone() const; 
}; 
 
 
// 
// TVrs 
// 
 
class MCS_TVrs : public PASN_Sequence 
{ 
#ifndef PASN_LEANANDMEAN 
    PCLASSINFO(MCS_TVrs, PASN_Sequence); 
#endif 
  public: 
    MCS_TVrs(unsigned tag = 35, TagClass tagClass = ApplicationTagClass); 
 
    MCS_Result m_result; 
    MCS_UserId m_recipient; 
    MCS_TokenId m_tokenId; 
 
    PINDEX GetDataLength() const; 
    BOOL Decode(PASN_Stream & strm); 
    void Encode(PASN_Stream & strm) const; 
#ifndef PASN_NOPRINTON 
    void PrintOn(ostream & strm) const; 
#endif 
    Comparison Compare(const PObject & obj) const; 
    PObject * Clone() const; 
}; 
 
 
// 
// TVcf 
// 
 
class MCS_TVcf : public PASN_Sequence 
{ 
#ifndef PASN_LEANANDMEAN 
    PCLASSINFO(MCS_TVcf, PASN_Sequence); 
#endif 
  public: 
    MCS_TVcf(unsigned tag = 36, TagClass tagClass = ApplicationTagClass); 
 
    MCS_Result m_result; 
    MCS_UserId m_initiator; 
    MCS_TokenId m_tokenId; 
    MCS_TokenStatus m_tokenStatus; 
 
    PINDEX GetDataLength() const; 
    BOOL Decode(PASN_Stream & strm); 
    void Encode(PASN_Stream & strm) const; 
#ifndef PASN_NOPRINTON 
    void PrintOn(ostream & strm) const; 
#endif 
    Comparison Compare(const PObject & obj) const; 
    PObject * Clone() const; 
}; 
 
 
// 
// TRcf 
// 
 
class MCS_TRcf : public PASN_Sequence 
{ 
#ifndef PASN_LEANANDMEAN 
    PCLASSINFO(MCS_TRcf, PASN_Sequence); 
#endif 
  public: 
    MCS_TRcf(unsigned tag = 40, TagClass tagClass = ApplicationTagClass); 
 
    MCS_Result m_result; 
    MCS_UserId m_initiator; 
    MCS_TokenId m_tokenId; 
    MCS_TokenStatus m_tokenStatus; 
 
    PINDEX GetDataLength() const; 
    BOOL Decode(PASN_Stream & strm); 
    void Encode(PASN_Stream & strm) const; 
#ifndef PASN_NOPRINTON 
    void PrintOn(ostream & strm) const; 
#endif 
    Comparison Compare(const PObject & obj) const; 
    PObject * Clone() const; 
}; 
 
 
// 
// ChannelAttributes_private 
// 
 
class MCS_ChannelAttributes_private : public PASN_Sequence 
{ 
#ifndef PASN_LEANANDMEAN 
    PCLASSINFO(MCS_ChannelAttributes_private, PASN_Sequence); 
#endif 
  public: 
    MCS_ChannelAttributes_private(unsigned tag = 2, TagClass tagClass = ContextSpecificTagClass); 
 
    PASN_Boolean m_joined; 
    MCS_PrivateChannelId m_channelId; 
    MCS_UserId m_manager; 
    MCS_ArrayOf_UserId m_admitted; 
 
    PINDEX GetDataLength() const; 
    BOOL Decode(PASN_Stream & strm); 
    void Encode(PASN_Stream & strm) const; 
#ifndef PASN_NOPRINTON 
    void PrintOn(ostream & strm) const; 
#endif 
    Comparison Compare(const PObject & obj) const; 
    PObject * Clone() const; 
}; 
 
 
#endif // __MCS_H 
 
#endif // if ! H323_DISABLE_MCS 
 
 
// End of mcspdu.h