//
// OID2.h
//
// Code automatically generated by asnparse.
//

#if ! H323_DISABLE_H230OID2

#ifndef __H230OID2_H
#define __H230OID2_H

#ifdef P_USE_PRAGMA
#pragma interface
#endif

#include <ptclib/asner.h>

//
// Participant
//

class H230OID2_Participant : public PASN_Sequence
{
#ifndef PASN_LEANANDMEAN
    PCLASSINFO(H230OID2_Participant, PASN_Sequence);
#endif
  public:
    H230OID2_Participant(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);

    enum OptionalFields {
      e_name,
      e_vCard
    };

    PASN_Integer m_token;
    PASN_BMPString m_number;
    PASN_BMPString m_name;
    PASN_OctetString m_vCard;

    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_Participant
//

class H230OID2_Participant;

class H230OID2_ArrayOf_Participant : public PASN_Array
{
#ifndef PASN_LEANANDMEAN
    PCLASSINFO(H230OID2_ArrayOf_Participant, PASN_Array);
#endif
  public:
    H230OID2_ArrayOf_Participant(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);

    PASN_Object * CreateObject() const;
    H230OID2_Participant & operator[](PINDEX i) const;
    PObject * Clone() const;
};


//
// ParticipantList
//

class H230OID2_ParticipantList : public PASN_Sequence
{
#ifndef PASN_LEANANDMEAN
    PCLASSINFO(H230OID2_ParticipantList, PASN_Sequence);
#endif
  public:
    H230OID2_ParticipantList(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);

    H230OID2_ArrayOf_Participant m_list;

    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 // __H230OID2_H

#endif // if ! H323_DISABLE_H230OID2


// End of OID2.h
