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