00001
00002
00003
00004
00005
00006
00007 #if ! H323_DISABLE_H4508
00008
00009 #ifndef __H4508_H
00010 #define __H4508_H
00011
00012 #ifdef P_USE_PRAGMA
00013 #pragma interface
00014 #endif
00015
00016 #include <ptclib/asner.h>
00017
00018 #include "h4501.h"
00019 #include "h4505.h"
00020
00021
00022
00023
00024
00025
00026 class H4508_NameOperations : public PASN_Enumeration
00027 {
00028 #ifndef PASN_LEANANDMEAN
00029 PCLASSINFO(H4508_NameOperations, PASN_Enumeration);
00030 #endif
00031 public:
00032 H4508_NameOperations(unsigned tag = UniversalEnumeration, TagClass tagClass = UniversalTagClass);
00033
00034 enum Enumerations {
00035 e_callingName,
00036 e_alertingName,
00037 e_connectedName,
00038 e_busyName
00039 };
00040
00041 H4508_NameOperations & operator=(unsigned v);
00042 PObject * Clone() const;
00043 };
00044
00045
00046
00047
00048
00049
00050 class H4508_NamePresentationAllowed;
00051 class H4508_NamePresentationRestricted;
00052
00053 class H4508_Name : public PASN_Choice
00054 {
00055 #ifndef PASN_LEANANDMEAN
00056 PCLASSINFO(H4508_Name, PASN_Choice);
00057 #endif
00058 public:
00059 H4508_Name(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
00060
00061 enum Choices {
00062 e_namePresentationAllowed,
00063 e_namePresentationRestricted,
00064 e_nameNotAvailable
00065 };
00066
00067 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00068 operator H4508_NamePresentationAllowed &() const;
00069 #else
00070 operator H4508_NamePresentationAllowed &();
00071 operator const H4508_NamePresentationAllowed &() const;
00072 #endif
00073 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00074 operator H4508_NamePresentationRestricted &() const;
00075 #else
00076 operator H4508_NamePresentationRestricted &();
00077 operator const H4508_NamePresentationRestricted &() const;
00078 #endif
00079
00080 PBoolean CreateObject();
00081 PObject * Clone() const;
00082 };
00083
00084
00085
00086
00087
00088
00089 class H4508_SimpleName;
00090 class H4508_ExtendedName;
00091
00092 class H4508_NamePresentationAllowed : public PASN_Choice
00093 {
00094 #ifndef PASN_LEANANDMEAN
00095 PCLASSINFO(H4508_NamePresentationAllowed, PASN_Choice);
00096 #endif
00097 public:
00098 H4508_NamePresentationAllowed(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
00099
00100 enum Choices {
00101 e_simpleName,
00102 e_extendedName
00103 };
00104
00105 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00106 operator H4508_SimpleName &() const;
00107 #else
00108 operator H4508_SimpleName &();
00109 operator const H4508_SimpleName &() const;
00110 #endif
00111 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00112 operator H4508_ExtendedName &() const;
00113 #else
00114 operator H4508_ExtendedName &();
00115 operator const H4508_ExtendedName &() const;
00116 #endif
00117
00118 PBoolean CreateObject();
00119 PObject * Clone() const;
00120 };
00121
00122
00123
00124
00125
00126
00127 class H4508_SimpleName;
00128 class H4508_ExtendedName;
00129
00130 class H4508_NamePresentationRestricted : public PASN_Choice
00131 {
00132 #ifndef PASN_LEANANDMEAN
00133 PCLASSINFO(H4508_NamePresentationRestricted, PASN_Choice);
00134 #endif
00135 public:
00136 H4508_NamePresentationRestricted(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
00137
00138 enum Choices {
00139 e_simpleName,
00140 e_extendedName,
00141 e_restrictedNull
00142 };
00143
00144 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00145 operator H4508_SimpleName &() const;
00146 #else
00147 operator H4508_SimpleName &();
00148 operator const H4508_SimpleName &() const;
00149 #endif
00150 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00151 operator H4508_ExtendedName &() const;
00152 #else
00153 operator H4508_ExtendedName &();
00154 operator const H4508_ExtendedName &() const;
00155 #endif
00156
00157 PBoolean CreateObject();
00158 PObject * Clone() const;
00159 };
00160
00161
00162
00163
00164
00165
00166 class H4508_SimpleName : public PASN_OctetString
00167 {
00168 #ifndef PASN_LEANANDMEAN
00169 PCLASSINFO(H4508_SimpleName, PASN_OctetString);
00170 #endif
00171 public:
00172 H4508_SimpleName(unsigned tag = UniversalOctetString, TagClass tagClass = UniversalTagClass);
00173
00174 H4508_SimpleName(const char * v);
00175 H4508_SimpleName(const PString & v);
00176 H4508_SimpleName(const PBYTEArray & v);
00177
00178 H4508_SimpleName & operator=(const char * v);
00179 H4508_SimpleName & operator=(const PString & v);
00180 H4508_SimpleName & operator=(const PBYTEArray & v);
00181 PObject * Clone() const;
00182 };
00183
00184
00185
00186
00187
00188
00189 class H4508_ExtendedName : public PASN_BMPString
00190 {
00191 #ifndef PASN_LEANANDMEAN
00192 PCLASSINFO(H4508_ExtendedName, PASN_BMPString);
00193 #endif
00194 public:
00195 H4508_ExtendedName(unsigned tag = UniversalBMPString, TagClass tagClass = UniversalTagClass);
00196
00197 H4508_ExtendedName & operator=(const char * v);
00198 H4508_ExtendedName & operator=(const PString & v);
00199 H4508_ExtendedName & operator=(const PWCharArray & v);
00200 H4508_ExtendedName & operator=(const PASN_BMPString & v);
00201 PObject * Clone() const;
00202 };
00203
00204
00205 #endif // __H4508_H
00206
00207 #endif // if ! H323_DISABLE_H4508
00208
00209
00210