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 BOOL 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 BOOL 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 BOOL 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 PWORDArray & 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