D:/Storage/CVS_Head/h323plus/include/h245.h

00001 //
00002 // h245.h
00003 //
00004 // Code automatically generated by asnparse.
00005 //
00006 
00007 #if ! H323_DISABLE_H245
00008 
00009 #ifndef __H245_H
00010 #define __H245_H
00011 
00012 #ifdef P_USE_PRAGMA
00013 #pragma interface
00014 #endif
00015 
00016 #include <ptclib/asner.h>
00017 
00018 //
00019 // MultimediaSystemControlMessage
00020 //
00021 
00022 class H245_RequestMessage;
00023 class H245_ResponseMessage;
00024 class H245_CommandMessage;
00025 class H245_IndicationMessage;
00026 
00027 class H245_MultimediaSystemControlMessage : public PASN_Choice
00028 {
00029 #ifndef PASN_LEANANDMEAN
00030     PCLASSINFO(H245_MultimediaSystemControlMessage, PASN_Choice);
00031 #endif
00032   public:
00033     H245_MultimediaSystemControlMessage(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
00034 
00035     enum Choices {
00036       e_request,
00037       e_response,
00038       e_command,
00039       e_indication
00040     };
00041 
00042 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00043     operator H245_RequestMessage &() const;
00044 #else
00045     operator H245_RequestMessage &();
00046     operator const H245_RequestMessage &() const;
00047 #endif
00048 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00049     operator H245_ResponseMessage &() const;
00050 #else
00051     operator H245_ResponseMessage &();
00052     operator const H245_ResponseMessage &() const;
00053 #endif
00054 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00055     operator H245_CommandMessage &() const;
00056 #else
00057     operator H245_CommandMessage &();
00058     operator const H245_CommandMessage &() const;
00059 #endif
00060 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00061     operator H245_IndicationMessage &() const;
00062 #else
00063     operator H245_IndicationMessage &();
00064     operator const H245_IndicationMessage &() const;
00065 #endif
00066 
00067     BOOL CreateObject();
00068     PObject * Clone() const;
00069 };
00070 
00071 
00072 //
00073 // RequestMessage
00074 //
00075 
00076 class H245_NonStandardMessage;
00077 class H245_MasterSlaveDetermination;
00078 class H245_TerminalCapabilitySet;
00079 class H245_OpenLogicalChannel;
00080 class H245_CloseLogicalChannel;
00081 class H245_RequestChannelClose;
00082 class H245_MultiplexEntrySend;
00083 class H245_RequestMultiplexEntry;
00084 class H245_RequestMode;
00085 class H245_RoundTripDelayRequest;
00086 class H245_MaintenanceLoopRequest;
00087 class H245_CommunicationModeRequest;
00088 class H245_ConferenceRequest;
00089 class H245_MultilinkRequest;
00090 class H245_LogicalChannelRateRequest;
00091 class H245_GenericMessage;
00092 
00093 class H245_RequestMessage : public PASN_Choice
00094 {
00095 #ifndef PASN_LEANANDMEAN
00096     PCLASSINFO(H245_RequestMessage, PASN_Choice);
00097 #endif
00098   public:
00099     H245_RequestMessage(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
00100 
00101     enum Choices {
00102       e_nonStandard,
00103       e_masterSlaveDetermination,
00104       e_terminalCapabilitySet,
00105       e_openLogicalChannel,
00106       e_closeLogicalChannel,
00107       e_requestChannelClose,
00108       e_multiplexEntrySend,
00109       e_requestMultiplexEntry,
00110       e_requestMode,
00111       e_roundTripDelayRequest,
00112       e_maintenanceLoopRequest,
00113       e_communicationModeRequest,
00114       e_conferenceRequest,
00115       e_multilinkRequest,
00116       e_logicalChannelRateRequest,
00117       e_genericRequest
00118     };
00119 
00120 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00121     operator H245_NonStandardMessage &() const;
00122 #else
00123     operator H245_NonStandardMessage &();
00124     operator const H245_NonStandardMessage &() const;
00125 #endif
00126 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00127     operator H245_MasterSlaveDetermination &() const;
00128 #else
00129     operator H245_MasterSlaveDetermination &();
00130     operator const H245_MasterSlaveDetermination &() const;
00131 #endif
00132 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00133     operator H245_TerminalCapabilitySet &() const;
00134 #else
00135     operator H245_TerminalCapabilitySet &();
00136     operator const H245_TerminalCapabilitySet &() const;
00137 #endif
00138 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00139     operator H245_OpenLogicalChannel &() const;
00140 #else
00141     operator H245_OpenLogicalChannel &();
00142     operator const H245_OpenLogicalChannel &() const;
00143 #endif
00144 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00145     operator H245_CloseLogicalChannel &() const;
00146 #else
00147     operator H245_CloseLogicalChannel &();
00148     operator const H245_CloseLogicalChannel &() const;
00149 #endif
00150 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00151     operator H245_RequestChannelClose &() const;
00152 #else
00153     operator H245_RequestChannelClose &();
00154     operator const H245_RequestChannelClose &() const;
00155 #endif
00156 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00157     operator H245_MultiplexEntrySend &() const;
00158 #else
00159     operator H245_MultiplexEntrySend &();
00160     operator const H245_MultiplexEntrySend &() const;
00161 #endif
00162 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00163     operator H245_RequestMultiplexEntry &() const;
00164 #else
00165     operator H245_RequestMultiplexEntry &();
00166     operator const H245_RequestMultiplexEntry &() const;
00167 #endif
00168 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00169     operator H245_RequestMode &() const;
00170 #else
00171     operator H245_RequestMode &();
00172     operator const H245_RequestMode &() const;
00173 #endif
00174 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00175     operator H245_RoundTripDelayRequest &() const;
00176 #else
00177     operator H245_RoundTripDelayRequest &();
00178     operator const H245_RoundTripDelayRequest &() const;
00179 #endif
00180 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00181     operator H245_MaintenanceLoopRequest &() const;
00182 #else
00183     operator H245_MaintenanceLoopRequest &();
00184     operator const H245_MaintenanceLoopRequest &() const;
00185 #endif
00186 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00187     operator H245_CommunicationModeRequest &() const;
00188 #else
00189     operator H245_CommunicationModeRequest &();
00190     operator const H245_CommunicationModeRequest &() const;
00191 #endif
00192 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00193     operator H245_ConferenceRequest &() const;
00194 #else
00195     operator H245_ConferenceRequest &();
00196     operator const H245_ConferenceRequest &() const;
00197 #endif
00198 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00199     operator H245_MultilinkRequest &() const;
00200 #else
00201     operator H245_MultilinkRequest &();
00202     operator const H245_MultilinkRequest &() const;
00203 #endif
00204 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00205     operator H245_LogicalChannelRateRequest &() const;
00206 #else
00207     operator H245_LogicalChannelRateRequest &();
00208     operator const H245_LogicalChannelRateRequest &() const;
00209 #endif
00210 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00211     operator H245_GenericMessage &() const;
00212 #else
00213     operator H245_GenericMessage &();
00214     operator const H245_GenericMessage &() const;
00215 #endif
00216 
00217     BOOL CreateObject();
00218     PObject * Clone() const;
00219 };
00220 
00221 
00222 //
00223 // ResponseMessage
00224 //
00225 
00226 class H245_NonStandardMessage;
00227 class H245_MasterSlaveDeterminationAck;
00228 class H245_MasterSlaveDeterminationReject;
00229 class H245_TerminalCapabilitySetAck;
00230 class H245_TerminalCapabilitySetReject;
00231 class H245_OpenLogicalChannelAck;
00232 class H245_OpenLogicalChannelReject;
00233 class H245_CloseLogicalChannelAck;
00234 class H245_RequestChannelCloseAck;
00235 class H245_RequestChannelCloseReject;
00236 class H245_MultiplexEntrySendAck;
00237 class H245_MultiplexEntrySendReject;
00238 class H245_RequestMultiplexEntryAck;
00239 class H245_RequestMultiplexEntryReject;
00240 class H245_RequestModeAck;
00241 class H245_RequestModeReject;
00242 class H245_RoundTripDelayResponse;
00243 class H245_MaintenanceLoopAck;
00244 class H245_MaintenanceLoopReject;
00245 class H245_CommunicationModeResponse;
00246 class H245_ConferenceResponse;
00247 class H245_MultilinkResponse;
00248 class H245_LogicalChannelRateAcknowledge;
00249 class H245_LogicalChannelRateReject;
00250 class H245_GenericMessage;
00251 
00252 class H245_ResponseMessage : public PASN_Choice
00253 {
00254 #ifndef PASN_LEANANDMEAN
00255     PCLASSINFO(H245_ResponseMessage, PASN_Choice);
00256 #endif
00257   public:
00258     H245_ResponseMessage(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
00259 
00260     enum Choices {
00261       e_nonStandard,
00262       e_masterSlaveDeterminationAck,
00263       e_masterSlaveDeterminationReject,
00264       e_terminalCapabilitySetAck,
00265       e_terminalCapabilitySetReject,
00266       e_openLogicalChannelAck,
00267       e_openLogicalChannelReject,
00268       e_closeLogicalChannelAck,
00269       e_requestChannelCloseAck,
00270       e_requestChannelCloseReject,
00271       e_multiplexEntrySendAck,
00272       e_multiplexEntrySendReject,
00273       e_requestMultiplexEntryAck,
00274       e_requestMultiplexEntryReject,
00275       e_requestModeAck,
00276       e_requestModeReject,
00277       e_roundTripDelayResponse,
00278       e_maintenanceLoopAck,
00279       e_maintenanceLoopReject,
00280       e_communicationModeResponse,
00281       e_conferenceResponse,
00282       e_multilinkResponse,
00283       e_logicalChannelRateAcknowledge,
00284       e_logicalChannelRateReject,
00285       e_genericResponse
00286     };
00287 
00288 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00289     operator H245_NonStandardMessage &() const;
00290 #else
00291     operator H245_NonStandardMessage &();
00292     operator const H245_NonStandardMessage &() const;
00293 #endif
00294 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00295     operator H245_MasterSlaveDeterminationAck &() const;
00296 #else
00297     operator H245_MasterSlaveDeterminationAck &();
00298     operator const H245_MasterSlaveDeterminationAck &() const;
00299 #endif
00300 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00301     operator H245_MasterSlaveDeterminationReject &() const;
00302 #else
00303     operator H245_MasterSlaveDeterminationReject &();
00304     operator const H245_MasterSlaveDeterminationReject &() const;
00305 #endif
00306 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00307     operator H245_TerminalCapabilitySetAck &() const;
00308 #else
00309     operator H245_TerminalCapabilitySetAck &();
00310     operator const H245_TerminalCapabilitySetAck &() const;
00311 #endif
00312 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00313     operator H245_TerminalCapabilitySetReject &() const;
00314 #else
00315     operator H245_TerminalCapabilitySetReject &();
00316     operator const H245_TerminalCapabilitySetReject &() const;
00317 #endif
00318 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00319     operator H245_OpenLogicalChannelAck &() const;
00320 #else
00321     operator H245_OpenLogicalChannelAck &();
00322     operator const H245_OpenLogicalChannelAck &() const;
00323 #endif
00324 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00325     operator H245_OpenLogicalChannelReject &() const;
00326 #else
00327     operator H245_OpenLogicalChannelReject &();
00328     operator const H245_OpenLogicalChannelReject &() const;
00329 #endif
00330 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00331     operator H245_CloseLogicalChannelAck &() const;
00332 #else
00333     operator H245_CloseLogicalChannelAck &();
00334     operator const H245_CloseLogicalChannelAck &() const;
00335 #endif
00336 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00337     operator H245_RequestChannelCloseAck &() const;
00338 #else
00339     operator H245_RequestChannelCloseAck &();
00340     operator const H245_RequestChannelCloseAck &() const;
00341 #endif
00342 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00343     operator H245_RequestChannelCloseReject &() const;
00344 #else
00345     operator H245_RequestChannelCloseReject &();
00346     operator const H245_RequestChannelCloseReject &() const;
00347 #endif
00348 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00349     operator H245_MultiplexEntrySendAck &() const;
00350 #else
00351     operator H245_MultiplexEntrySendAck &();
00352     operator const H245_MultiplexEntrySendAck &() const;
00353 #endif
00354 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00355     operator H245_MultiplexEntrySendReject &() const;
00356 #else
00357     operator H245_MultiplexEntrySendReject &();
00358     operator const H245_MultiplexEntrySendReject &() const;
00359 #endif
00360 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00361     operator H245_RequestMultiplexEntryAck &() const;
00362 #else
00363     operator H245_RequestMultiplexEntryAck &();
00364     operator const H245_RequestMultiplexEntryAck &() const;
00365 #endif
00366 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00367     operator H245_RequestMultiplexEntryReject &() const;
00368 #else
00369     operator H245_RequestMultiplexEntryReject &();
00370     operator const H245_RequestMultiplexEntryReject &() const;
00371 #endif
00372 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00373     operator H245_RequestModeAck &() const;
00374 #else
00375     operator H245_RequestModeAck &();
00376     operator const H245_RequestModeAck &() const;
00377 #endif
00378 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00379     operator H245_RequestModeReject &() const;
00380 #else
00381     operator H245_RequestModeReject &();
00382     operator const H245_RequestModeReject &() const;
00383 #endif
00384 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00385     operator H245_RoundTripDelayResponse &() const;
00386 #else
00387     operator H245_RoundTripDelayResponse &();
00388     operator const H245_RoundTripDelayResponse &() const;
00389 #endif
00390 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00391     operator H245_MaintenanceLoopAck &() const;
00392 #else
00393     operator H245_MaintenanceLoopAck &();
00394     operator const H245_MaintenanceLoopAck &() const;
00395 #endif
00396 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00397     operator H245_MaintenanceLoopReject &() const;
00398 #else
00399     operator H245_MaintenanceLoopReject &();
00400     operator const H245_MaintenanceLoopReject &() const;
00401 #endif
00402 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00403     operator H245_CommunicationModeResponse &() const;
00404 #else
00405     operator H245_CommunicationModeResponse &();
00406     operator const H245_CommunicationModeResponse &() const;
00407 #endif
00408 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00409     operator H245_ConferenceResponse &() const;
00410 #else
00411     operator H245_ConferenceResponse &();
00412     operator const H245_ConferenceResponse &() const;
00413 #endif
00414 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00415     operator H245_MultilinkResponse &() const;
00416 #else
00417     operator H245_MultilinkResponse &();
00418     operator const H245_MultilinkResponse &() const;
00419 #endif
00420 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00421     operator H245_LogicalChannelRateAcknowledge &() const;
00422 #else
00423     operator H245_LogicalChannelRateAcknowledge &();
00424     operator const H245_LogicalChannelRateAcknowledge &() const;
00425 #endif
00426 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00427     operator H245_LogicalChannelRateReject &() const;
00428 #else
00429     operator H245_LogicalChannelRateReject &();
00430     operator const H245_LogicalChannelRateReject &() const;
00431 #endif
00432 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00433     operator H245_GenericMessage &() const;
00434 #else
00435     operator H245_GenericMessage &();
00436     operator const H245_GenericMessage &() const;
00437 #endif
00438 
00439     BOOL CreateObject();
00440     PObject * Clone() const;
00441 };
00442 
00443 
00444 //
00445 // CommandMessage
00446 //
00447 
00448 class H245_NonStandardMessage;
00449 class H245_MaintenanceLoopOffCommand;
00450 class H245_SendTerminalCapabilitySet;
00451 class H245_EncryptionCommand;
00452 class H245_FlowControlCommand;
00453 class H245_EndSessionCommand;
00454 class H245_MiscellaneousCommand;
00455 class H245_CommunicationModeCommand;
00456 class H245_ConferenceCommand;
00457 class H245_H223MultiplexReconfiguration;
00458 class H245_NewATMVCCommand;
00459 class H245_MobileMultilinkReconfigurationCommand;
00460 class H245_GenericMessage;
00461 
00462 class H245_CommandMessage : public PASN_Choice
00463 {
00464 #ifndef PASN_LEANANDMEAN
00465     PCLASSINFO(H245_CommandMessage, PASN_Choice);
00466 #endif
00467   public:
00468     H245_CommandMessage(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
00469 
00470     enum Choices {
00471       e_nonStandard,
00472       e_maintenanceLoopOffCommand,
00473       e_sendTerminalCapabilitySet,
00474       e_encryptionCommand,
00475       e_flowControlCommand,
00476       e_endSessionCommand,
00477       e_miscellaneousCommand,
00478       e_communicationModeCommand,
00479       e_conferenceCommand,
00480       e_h223MultiplexReconfiguration,
00481       e_newATMVCCommand,
00482       e_mobileMultilinkReconfigurationCommand,
00483       e_genericCommand
00484     };
00485 
00486 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00487     operator H245_NonStandardMessage &() const;
00488 #else
00489     operator H245_NonStandardMessage &();
00490     operator const H245_NonStandardMessage &() const;
00491 #endif
00492 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00493     operator H245_MaintenanceLoopOffCommand &() const;
00494 #else
00495     operator H245_MaintenanceLoopOffCommand &();
00496     operator const H245_MaintenanceLoopOffCommand &() const;
00497 #endif
00498 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00499     operator H245_SendTerminalCapabilitySet &() const;
00500 #else
00501     operator H245_SendTerminalCapabilitySet &();
00502     operator const H245_SendTerminalCapabilitySet &() const;
00503 #endif
00504 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00505     operator H245_EncryptionCommand &() const;
00506 #else
00507     operator H245_EncryptionCommand &();
00508     operator const H245_EncryptionCommand &() const;
00509 #endif
00510 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00511     operator H245_FlowControlCommand &() const;
00512 #else
00513     operator H245_FlowControlCommand &();
00514     operator const H245_FlowControlCommand &() const;
00515 #endif
00516 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00517     operator H245_EndSessionCommand &() const;
00518 #else
00519     operator H245_EndSessionCommand &();
00520     operator const H245_EndSessionCommand &() const;
00521 #endif
00522 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00523     operator H245_MiscellaneousCommand &() const;
00524 #else
00525     operator H245_MiscellaneousCommand &();
00526     operator const H245_MiscellaneousCommand &() const;
00527 #endif
00528 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00529     operator H245_CommunicationModeCommand &() const;
00530 #else
00531     operator H245_CommunicationModeCommand &();
00532     operator const H245_CommunicationModeCommand &() const;
00533 #endif
00534 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00535     operator H245_ConferenceCommand &() const;
00536 #else
00537     operator H245_ConferenceCommand &();
00538     operator const H245_ConferenceCommand &() const;
00539 #endif
00540 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00541     operator H245_H223MultiplexReconfiguration &() const;
00542 #else
00543     operator H245_H223MultiplexReconfiguration &();
00544     operator const H245_H223MultiplexReconfiguration &() const;
00545 #endif
00546 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00547     operator H245_NewATMVCCommand &() const;
00548 #else
00549     operator H245_NewATMVCCommand &();
00550     operator const H245_NewATMVCCommand &() const;
00551 #endif
00552 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00553     operator H245_MobileMultilinkReconfigurationCommand &() const;
00554 #else
00555     operator H245_MobileMultilinkReconfigurationCommand &();
00556     operator const H245_MobileMultilinkReconfigurationCommand &() const;
00557 #endif
00558 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00559     operator H245_GenericMessage &() const;
00560 #else
00561     operator H245_GenericMessage &();
00562     operator const H245_GenericMessage &() const;
00563 #endif
00564 
00565     BOOL CreateObject();
00566     PObject * Clone() const;
00567 };
00568 
00569 
00570 //
00571 // IndicationMessage
00572 //
00573 
00574 class H245_NonStandardMessage;
00575 class H245_FunctionNotUnderstood;
00576 class H245_MasterSlaveDeterminationRelease;
00577 class H245_TerminalCapabilitySetRelease;
00578 class H245_OpenLogicalChannelConfirm;
00579 class H245_RequestChannelCloseRelease;
00580 class H245_MultiplexEntrySendRelease;
00581 class H245_RequestMultiplexEntryRelease;
00582 class H245_RequestModeRelease;
00583 class H245_MiscellaneousIndication;
00584 class H245_JitterIndication;
00585 class H245_H223SkewIndication;
00586 class H245_NewATMVCIndication;
00587 class H245_UserInputIndication;
00588 class H245_H2250MaximumSkewIndication;
00589 class H245_MCLocationIndication;
00590 class H245_ConferenceIndication;
00591 class H245_VendorIdentification;
00592 class H245_FunctionNotSupported;
00593 class H245_MultilinkIndication;
00594 class H245_LogicalChannelRateRelease;
00595 class H245_FlowControlIndication;
00596 class H245_MobileMultilinkReconfigurationIndication;
00597 class H245_GenericMessage;
00598 
00599 class H245_IndicationMessage : public PASN_Choice
00600 {
00601 #ifndef PASN_LEANANDMEAN
00602     PCLASSINFO(H245_IndicationMessage, PASN_Choice);
00603 #endif
00604   public:
00605     H245_IndicationMessage(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
00606 
00607     enum Choices {
00608       e_nonStandard,
00609       e_functionNotUnderstood,
00610       e_masterSlaveDeterminationRelease,
00611       e_terminalCapabilitySetRelease,
00612       e_openLogicalChannelConfirm,
00613       e_requestChannelCloseRelease,
00614       e_multiplexEntrySendRelease,
00615       e_requestMultiplexEntryRelease,
00616       e_requestModeRelease,
00617       e_miscellaneousIndication,
00618       e_jitterIndication,
00619       e_h223SkewIndication,
00620       e_newATMVCIndication,
00621       e_userInput,
00622       e_h2250MaximumSkewIndication,
00623       e_mcLocationIndication,
00624       e_conferenceIndication,
00625       e_vendorIdentification,
00626       e_functionNotSupported,
00627       e_multilinkIndication,
00628       e_logicalChannelRateRelease,
00629       e_flowControlIndication,
00630       e_mobileMultilinkReconfigurationIndication,
00631       e_genericIndication
00632     };
00633 
00634 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00635     operator H245_NonStandardMessage &() const;
00636 #else
00637     operator H245_NonStandardMessage &();
00638     operator const H245_NonStandardMessage &() const;
00639 #endif
00640 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00641     operator H245_FunctionNotUnderstood &() const;
00642 #else
00643     operator H245_FunctionNotUnderstood &();
00644     operator const H245_FunctionNotUnderstood &() const;
00645 #endif
00646 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00647     operator H245_MasterSlaveDeterminationRelease &() const;
00648 #else
00649     operator H245_MasterSlaveDeterminationRelease &();
00650     operator const H245_MasterSlaveDeterminationRelease &() const;
00651 #endif
00652 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00653     operator H245_TerminalCapabilitySetRelease &() const;
00654 #else
00655     operator H245_TerminalCapabilitySetRelease &();
00656     operator const H245_TerminalCapabilitySetRelease &() const;
00657 #endif
00658 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00659     operator H245_OpenLogicalChannelConfirm &() const;
00660 #else
00661     operator H245_OpenLogicalChannelConfirm &();
00662     operator const H245_OpenLogicalChannelConfirm &() const;
00663 #endif
00664 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00665     operator H245_RequestChannelCloseRelease &() const;
00666 #else
00667     operator H245_RequestChannelCloseRelease &();
00668     operator const H245_RequestChannelCloseRelease &() const;
00669 #endif
00670 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00671     operator H245_MultiplexEntrySendRelease &() const;
00672 #else
00673     operator H245_MultiplexEntrySendRelease &();
00674     operator const H245_MultiplexEntrySendRelease &() const;
00675 #endif
00676 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00677     operator H245_RequestMultiplexEntryRelease &() const;
00678 #else
00679     operator H245_RequestMultiplexEntryRelease &();
00680     operator const H245_RequestMultiplexEntryRelease &() const;
00681 #endif
00682 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00683     operator H245_RequestModeRelease &() const;
00684 #else
00685     operator H245_RequestModeRelease &();
00686     operator const H245_RequestModeRelease &() const;
00687 #endif
00688 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00689     operator H245_MiscellaneousIndication &() const;
00690 #else
00691     operator H245_MiscellaneousIndication &();
00692     operator const H245_MiscellaneousIndication &() const;
00693 #endif
00694 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00695     operator H245_JitterIndication &() const;
00696 #else
00697     operator H245_JitterIndication &();
00698     operator const H245_JitterIndication &() const;
00699 #endif
00700 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00701     operator H245_H223SkewIndication &() const;
00702 #else
00703     operator H245_H223SkewIndication &();
00704     operator const H245_H223SkewIndication &() const;
00705 #endif
00706 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00707     operator H245_NewATMVCIndication &() const;
00708 #else
00709     operator H245_NewATMVCIndication &();
00710     operator const H245_NewATMVCIndication &() const;
00711 #endif
00712 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00713     operator H245_UserInputIndication &() const;
00714 #else
00715     operator H245_UserInputIndication &();
00716     operator const H245_UserInputIndication &() const;
00717 #endif
00718 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00719     operator H245_H2250MaximumSkewIndication &() const;
00720 #else
00721     operator H245_H2250MaximumSkewIndication &();
00722     operator const H245_H2250MaximumSkewIndication &() const;
00723 #endif
00724 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00725     operator H245_MCLocationIndication &() const;
00726 #else
00727     operator H245_MCLocationIndication &();
00728     operator const H245_MCLocationIndication &() const;
00729 #endif
00730 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00731     operator H245_ConferenceIndication &() const;
00732 #else
00733     operator H245_ConferenceIndication &();
00734     operator const H245_ConferenceIndication &() const;
00735 #endif
00736 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00737     operator H245_VendorIdentification &() const;
00738 #else
00739     operator H245_VendorIdentification &();
00740     operator const H245_VendorIdentification &() const;
00741 #endif
00742 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00743     operator H245_FunctionNotSupported &() const;
00744 #else
00745     operator H245_FunctionNotSupported &();
00746     operator const H245_FunctionNotSupported &() const;
00747 #endif
00748 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00749     operator H245_MultilinkIndication &() const;
00750 #else
00751     operator H245_MultilinkIndication &();
00752     operator const H245_MultilinkIndication &() const;
00753 #endif
00754 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00755     operator H245_LogicalChannelRateRelease &() const;
00756 #else
00757     operator H245_LogicalChannelRateRelease &();
00758     operator const H245_LogicalChannelRateRelease &() const;
00759 #endif
00760 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00761     operator H245_FlowControlIndication &() const;
00762 #else
00763     operator H245_FlowControlIndication &();
00764     operator const H245_FlowControlIndication &() const;
00765 #endif
00766 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00767     operator H245_MobileMultilinkReconfigurationIndication &() const;
00768 #else
00769     operator H245_MobileMultilinkReconfigurationIndication &();
00770     operator const H245_MobileMultilinkReconfigurationIndication &() const;
00771 #endif
00772 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00773     operator H245_GenericMessage &() const;
00774 #else
00775     operator H245_GenericMessage &();
00776     operator const H245_GenericMessage &() const;
00777 #endif
00778 
00779     BOOL CreateObject();
00780     PObject * Clone() const;
00781 };
00782 
00783 
00784 //
00785 // SequenceNumber
00786 //
00787 
00788 class H245_SequenceNumber : public PASN_Integer
00789 {
00790 #ifndef PASN_LEANANDMEAN
00791     PCLASSINFO(H245_SequenceNumber, PASN_Integer);
00792 #endif
00793   public:
00794     H245_SequenceNumber(unsigned tag = UniversalInteger, TagClass tagClass = UniversalTagClass);
00795 
00796     H245_SequenceNumber & operator=(int v);
00797     H245_SequenceNumber & operator=(unsigned v);
00798     PObject * Clone() const;
00799 };
00800 
00801 
00802 //
00803 // NonStandardIdentifier
00804 //
00805 
00806 class H245_NonStandardIdentifier_h221NonStandard;
00807 
00808 class H245_NonStandardIdentifier : public PASN_Choice
00809 {
00810 #ifndef PASN_LEANANDMEAN
00811     PCLASSINFO(H245_NonStandardIdentifier, PASN_Choice);
00812 #endif
00813   public:
00814     H245_NonStandardIdentifier(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
00815 
00816     enum Choices {
00817       e_object,
00818       e_h221NonStandard
00819     };
00820 
00821 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00822     operator H245_NonStandardIdentifier_h221NonStandard &() const;
00823 #else
00824     operator H245_NonStandardIdentifier_h221NonStandard &();
00825     operator const H245_NonStandardIdentifier_h221NonStandard &() const;
00826 #endif
00827 
00828     BOOL CreateObject();
00829     PObject * Clone() const;
00830 };
00831 
00832 
00833 //
00834 // MasterSlaveDetermination
00835 //
00836 
00837 class H245_MasterSlaveDetermination : public PASN_Sequence
00838 {
00839 #ifndef PASN_LEANANDMEAN
00840     PCLASSINFO(H245_MasterSlaveDetermination, PASN_Sequence);
00841 #endif
00842   public:
00843     H245_MasterSlaveDetermination(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
00844 
00845     PASN_Integer m_terminalType;
00846     PASN_Integer m_statusDeterminationNumber;
00847 
00848     PINDEX GetDataLength() const;
00849     BOOL Decode(PASN_Stream & strm);
00850     void Encode(PASN_Stream & strm) const;
00851 #ifndef PASN_NOPRINTON
00852     void PrintOn(ostream & strm) const;
00853 #endif
00854     Comparison Compare(const PObject & obj) const;
00855     PObject * Clone() const;
00856 };
00857 
00858 
00859 //
00860 // MasterSlaveDeterminationRelease
00861 //
00862 
00863 class H245_MasterSlaveDeterminationRelease : public PASN_Sequence
00864 {
00865 #ifndef PASN_LEANANDMEAN
00866     PCLASSINFO(H245_MasterSlaveDeterminationRelease, PASN_Sequence);
00867 #endif
00868   public:
00869     H245_MasterSlaveDeterminationRelease(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
00870 
00871 
00872     PINDEX GetDataLength() const;
00873     BOOL Decode(PASN_Stream & strm);
00874     void Encode(PASN_Stream & strm) const;
00875 #ifndef PASN_NOPRINTON
00876     void PrintOn(ostream & strm) const;
00877 #endif
00878     PObject * Clone() const;
00879 };
00880 
00881 
00882 //
00883 // AlternativeCapabilitySet
00884 //
00885 
00886 class H245_CapabilityTableEntryNumber;
00887 
00888 class H245_AlternativeCapabilitySet : public PASN_Array
00889 {
00890 #ifndef PASN_LEANANDMEAN
00891     PCLASSINFO(H245_AlternativeCapabilitySet, PASN_Array);
00892 #endif
00893   public:
00894     H245_AlternativeCapabilitySet(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
00895 
00896     PASN_Object * CreateObject() const;
00897     H245_CapabilityTableEntryNumber & operator[](PINDEX i) const;
00898     PObject * Clone() const;
00899 };
00900 
00901 
00902 //
00903 // CapabilityTableEntryNumber
00904 //
00905 
00906 class H245_CapabilityTableEntryNumber : public PASN_Integer
00907 {
00908 #ifndef PASN_LEANANDMEAN
00909     PCLASSINFO(H245_CapabilityTableEntryNumber, PASN_Integer);
00910 #endif
00911   public:
00912     H245_CapabilityTableEntryNumber(unsigned tag = UniversalInteger, TagClass tagClass = UniversalTagClass);
00913 
00914     H245_CapabilityTableEntryNumber & operator=(int v);
00915     H245_CapabilityTableEntryNumber & operator=(unsigned v);
00916     PObject * Clone() const;
00917 };
00918 
00919 
00920 //
00921 // CapabilityDescriptorNumber
00922 //
00923 
00924 class H245_CapabilityDescriptorNumber : public PASN_Integer
00925 {
00926 #ifndef PASN_LEANANDMEAN
00927     PCLASSINFO(H245_CapabilityDescriptorNumber, PASN_Integer);
00928 #endif
00929   public:
00930     H245_CapabilityDescriptorNumber(unsigned tag = UniversalInteger, TagClass tagClass = UniversalTagClass);
00931 
00932     H245_CapabilityDescriptorNumber & operator=(int v);
00933     H245_CapabilityDescriptorNumber & operator=(unsigned v);
00934     PObject * Clone() const;
00935 };
00936 
00937 
00938 //
00939 // Capability
00940 //
00941 
00942 class H245_NonStandardParameter;
00943 class H245_VideoCapability;
00944 class H245_AudioCapability;
00945 class H245_DataApplicationCapability;
00946 class H245_Capability_h233EncryptionReceiveCapability;
00947 class H245_ConferenceCapability;
00948 class H245_H235SecurityCapability;
00949 class H245_UserInputCapability;
00950 class H245_GenericCapability;
00951 class H245_MultiplexedStreamCapability;
00952 class H245_AudioTelephonyEventCapability;
00953 class H245_AudioToneCapability;
00954 class H245_DepFECCapability;
00955 class H245_MultiplePayloadStreamCapability;
00956 class H245_FECCapability;
00957 class H245_RedundancyEncodingCapability;
00958 class H245_AlternativeCapabilitySet;
00959 
00960 class H245_Capability : public PASN_Choice
00961 {
00962 #ifndef PASN_LEANANDMEAN
00963     PCLASSINFO(H245_Capability, PASN_Choice);
00964 #endif
00965   public:
00966     H245_Capability(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
00967 
00968     enum Choices {
00969       e_nonStandard,
00970       e_receiveVideoCapability,
00971       e_transmitVideoCapability,
00972       e_receiveAndTransmitVideoCapability,
00973       e_receiveAudioCapability,
00974       e_transmitAudioCapability,
00975       e_receiveAndTransmitAudioCapability,
00976       e_receiveDataApplicationCapability,
00977       e_transmitDataApplicationCapability,
00978       e_receiveAndTransmitDataApplicationCapability,
00979       e_h233EncryptionTransmitCapability,
00980       e_h233EncryptionReceiveCapability,
00981       e_conferenceCapability,
00982       e_h235SecurityCapability,
00983       e_maxPendingReplacementFor,
00984       e_receiveUserInputCapability,
00985       e_transmitUserInputCapability,
00986       e_receiveAndTransmitUserInputCapability,
00987       e_genericControlCapability,
00988       e_receiveMultiplexedStreamCapability,
00989       e_transmitMultiplexedStreamCapability,
00990       e_receiveAndTransmitMultiplexedStreamCapability,
00991       e_receiveRTPAudioTelephonyEventCapability,
00992       e_receiveRTPAudioToneCapability,
00993       e_depFecCapability,
00994       e_multiplePayloadStreamCapability,
00995       e_fecCapability,
00996       e_redundancyEncodingCap,
00997       e_oneOfCapabilities
00998     };
00999 
01000 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01001     operator H245_NonStandardParameter &() const;
01002 #else
01003     operator H245_NonStandardParameter &();
01004     operator const H245_NonStandardParameter &() const;
01005 #endif
01006 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01007     operator H245_VideoCapability &() const;
01008 #else
01009     operator H245_VideoCapability &();
01010     operator const H245_VideoCapability &() const;
01011 #endif
01012 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01013     operator H245_AudioCapability &() const;
01014 #else
01015     operator H245_AudioCapability &();
01016     operator const H245_AudioCapability &() const;
01017 #endif
01018 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01019     operator H245_DataApplicationCapability &() const;
01020 #else
01021     operator H245_DataApplicationCapability &();
01022     operator const H245_DataApplicationCapability &() const;
01023 #endif
01024 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01025     operator H245_Capability_h233EncryptionReceiveCapability &() const;
01026 #else
01027     operator H245_Capability_h233EncryptionReceiveCapability &();
01028     operator const H245_Capability_h233EncryptionReceiveCapability &() const;
01029 #endif
01030 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01031     operator H245_ConferenceCapability &() const;
01032 #else
01033     operator H245_ConferenceCapability &();
01034     operator const H245_ConferenceCapability &() const;
01035 #endif
01036 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01037     operator H245_H235SecurityCapability &() const;
01038 #else
01039     operator H245_H235SecurityCapability &();
01040     operator const H245_H235SecurityCapability &() const;
01041 #endif
01042 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01043     operator H245_UserInputCapability &() const;
01044 #else
01045     operator H245_UserInputCapability &();
01046     operator const H245_UserInputCapability &() const;
01047 #endif
01048 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01049     operator H245_GenericCapability &() const;
01050 #else
01051     operator H245_GenericCapability &();
01052     operator const H245_GenericCapability &() const;
01053 #endif
01054 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01055     operator H245_MultiplexedStreamCapability &() const;
01056 #else
01057     operator H245_MultiplexedStreamCapability &();
01058     operator const H245_MultiplexedStreamCapability &() const;
01059 #endif
01060 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01061     operator H245_AudioTelephonyEventCapability &() const;
01062 #else
01063     operator H245_AudioTelephonyEventCapability &();
01064     operator const H245_AudioTelephonyEventCapability &() const;
01065 #endif
01066 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01067     operator H245_AudioToneCapability &() const;
01068 #else
01069     operator H245_AudioToneCapability &();
01070     operator const H245_AudioToneCapability &() const;
01071 #endif
01072 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01073     operator H245_DepFECCapability &() const;
01074 #else
01075     operator H245_DepFECCapability &();
01076     operator const H245_DepFECCapability &() const;
01077 #endif
01078 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01079     operator H245_MultiplePayloadStreamCapability &() const;
01080 #else
01081     operator H245_MultiplePayloadStreamCapability &();
01082     operator const H245_MultiplePayloadStreamCapability &() const;
01083 #endif
01084 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01085     operator H245_FECCapability &() const;
01086 #else
01087     operator H245_FECCapability &();
01088     operator const H245_FECCapability &() const;
01089 #endif
01090 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01091     operator H245_RedundancyEncodingCapability &() const;
01092 #else
01093     operator H245_RedundancyEncodingCapability &();
01094     operator const H245_RedundancyEncodingCapability &() const;
01095 #endif
01096 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01097     operator H245_AlternativeCapabilitySet &() const;
01098 #else
01099     operator H245_AlternativeCapabilitySet &();
01100     operator const H245_AlternativeCapabilitySet &() const;
01101 #endif
01102 
01103     BOOL CreateObject();
01104     PObject * Clone() const;
01105 };
01106 
01107 
01108 //
01109 // MultiplexCapability
01110 //
01111 
01112 class H245_NonStandardParameter;
01113 class H245_H222Capability;
01114 class H245_H223Capability;
01115 class H245_V76Capability;
01116 class H245_H2250Capability;
01117 class H245_GenericCapability;
01118 
01119 class H245_MultiplexCapability : public PASN_Choice
01120 {
01121 #ifndef PASN_LEANANDMEAN
01122     PCLASSINFO(H245_MultiplexCapability, PASN_Choice);
01123 #endif
01124   public:
01125     H245_MultiplexCapability(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
01126 
01127     enum Choices {
01128       e_nonStandard,
01129       e_h222Capability,
01130       e_h223Capability,
01131       e_v76Capability,
01132       e_h2250Capability,
01133       e_genericMultiplexCapability
01134     };
01135 
01136 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01137     operator H245_NonStandardParameter &() const;
01138 #else
01139     operator H245_NonStandardParameter &();
01140     operator const H245_NonStandardParameter &() const;
01141 #endif
01142 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01143     operator H245_H222Capability &() const;
01144 #else
01145     operator H245_H222Capability &();
01146     operator const H245_H222Capability &() const;
01147 #endif
01148 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01149     operator H245_H223Capability &() const;
01150 #else
01151     operator H245_H223Capability &();
01152     operator const H245_H223Capability &() const;
01153 #endif
01154 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01155     operator H245_V76Capability &() const;
01156 #else
01157     operator H245_V76Capability &();
01158     operator const H245_V76Capability &() const;
01159 #endif
01160 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01161     operator H245_H2250Capability &() const;
01162 #else
01163     operator H245_H2250Capability &();
01164     operator const H245_H2250Capability &() const;
01165 #endif
01166 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01167     operator H245_GenericCapability &() const;
01168 #else
01169     operator H245_GenericCapability &();
01170     operator const H245_GenericCapability &() const;
01171 #endif
01172 
01173     BOOL CreateObject();
01174     PObject * Clone() const;
01175 };
01176 
01177 
01178 //
01179 // H223AnnexCCapability
01180 //
01181 
01182 class H245_H223AnnexCCapability : public PASN_Sequence
01183 {
01184 #ifndef PASN_LEANANDMEAN
01185     PCLASSINFO(H245_H223AnnexCCapability, PASN_Sequence);
01186 #endif
01187   public:
01188     H245_H223AnnexCCapability(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
01189 
01190     enum OptionalFields {
01191       e_rsCodeCapability
01192     };
01193 
01194     PASN_Boolean m_videoWithAL1M;
01195     PASN_Boolean m_videoWithAL2M;
01196     PASN_Boolean m_videoWithAL3M;
01197     PASN_Boolean m_audioWithAL1M;
01198     PASN_Boolean m_audioWithAL2M;
01199     PASN_Boolean m_audioWithAL3M;
01200     PASN_Boolean m_dataWithAL1M;
01201     PASN_Boolean m_dataWithAL2M;
01202     PASN_Boolean m_dataWithAL3M;
01203     PASN_Boolean m_alpduInterleaving;
01204     PASN_Integer m_maximumAL1MPDUSize;
01205     PASN_Integer m_maximumAL2MSDUSize;
01206     PASN_Integer m_maximumAL3MSDUSize;
01207     PASN_Boolean m_rsCodeCapability;
01208 
01209     PINDEX GetDataLength() const;
01210     BOOL Decode(PASN_Stream & strm);
01211     void Encode(PASN_Stream & strm) const;
01212 #ifndef PASN_NOPRINTON
01213     void PrintOn(ostream & strm) const;
01214 #endif
01215     Comparison Compare(const PObject & obj) const;
01216     PObject * Clone() const;
01217 };
01218 
01219 
01220 //
01221 // V75Capability
01222 //
01223 
01224 class H245_V75Capability : public PASN_Sequence
01225 {
01226 #ifndef PASN_LEANANDMEAN
01227     PCLASSINFO(H245_V75Capability, PASN_Sequence);
01228 #endif
01229   public:
01230     H245_V75Capability(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
01231 
01232     PASN_Boolean m_audioHeader;
01233 
01234     PINDEX GetDataLength() const;
01235     BOOL Decode(PASN_Stream & strm);
01236     void Encode(PASN_Stream & strm) const;
01237 #ifndef PASN_NOPRINTON
01238     void PrintOn(ostream & strm) const;
01239 #endif
01240     Comparison Compare(const PObject & obj) const;
01241     PObject * Clone() const;
01242 };
01243 
01244 
01245 //
01246 // QOSMode
01247 //
01248 
01249 class H245_QOSMode : public PASN_Choice
01250 {
01251 #ifndef PASN_LEANANDMEAN
01252     PCLASSINFO(H245_QOSMode, PASN_Choice);
01253 #endif
01254   public:
01255     H245_QOSMode(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
01256 
01257     enum Choices {
01258       e_guaranteedQOS,
01259       e_controlledLoad
01260     };
01261 
01262     BOOL CreateObject();
01263     PObject * Clone() const;
01264 };
01265 
01266 
01267 //
01268 // ATMParameters
01269 //
01270 
01271 class H245_ATMParameters : public PASN_Sequence
01272 {
01273 #ifndef PASN_LEANANDMEAN
01274     PCLASSINFO(H245_ATMParameters, PASN_Sequence);
01275 #endif
01276   public:
01277     H245_ATMParameters(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
01278 
01279     PASN_Integer m_maxNTUSize;
01280     PASN_Boolean m_atmUBR;
01281     PASN_Boolean m_atmrtVBR;
01282     PASN_Boolean m_atmnrtVBR;
01283     PASN_Boolean m_atmABR;
01284     PASN_Boolean m_atmCBR;
01285 
01286     PINDEX GetDataLength() const;
01287     BOOL Decode(PASN_Stream & strm);
01288     void Encode(PASN_Stream & strm) const;
01289 #ifndef PASN_NOPRINTON
01290     void PrintOn(ostream & strm) const;
01291 #endif
01292     Comparison Compare(const PObject & obj) const;
01293     PObject * Clone() const;
01294 };
01295 
01296 
01297 //
01298 // QOSType
01299 //
01300 
01301 class H245_QOSType : public PASN_Choice
01302 {
01303 #ifndef PASN_LEANANDMEAN
01304     PCLASSINFO(H245_QOSType, PASN_Choice);
01305 #endif
01306   public:
01307     H245_QOSType(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
01308 
01309     enum Choices {
01310       e_desired,
01311       e_required
01312     };
01313 
01314     BOOL CreateObject();
01315     PObject * Clone() const;
01316 };
01317 
01318 
01319 //
01320 // QOSClass
01321 //
01322 
01323 class H245_QOSClass : public PASN_Choice
01324 {
01325 #ifndef PASN_LEANANDMEAN
01326     PCLASSINFO(H245_QOSClass, PASN_Choice);
01327 #endif
01328   public:
01329     H245_QOSClass(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
01330 
01331     enum Choices {
01332       e_class0,
01333       e_class1,
01334       e_class2,
01335       e_class3,
01336       e_class4,
01337       e_class5
01338     };
01339 
01340     BOOL CreateObject();
01341     PObject * Clone() const;
01342 };
01343 
01344 
01345 //
01346 // MediaTransportType
01347 //
01348 
01349 class H245_MediaTransportType_atm_AAL5_compressed;
01350 
01351 class H245_MediaTransportType : public PASN_Choice
01352 {
01353 #ifndef PASN_LEANANDMEAN
01354     PCLASSINFO(H245_MediaTransportType, PASN_Choice);
01355 #endif
01356   public:
01357     H245_MediaTransportType(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
01358 
01359     enum Choices {
01360       e_ip_UDP,
01361       e_ip_TCP,
01362       e_atm_AAL5_UNIDIR,
01363       e_atm_AAL5_BIDIR,
01364       e_atm_AAL5_compressed
01365     };
01366 
01367 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01368     operator H245_MediaTransportType_atm_AAL5_compressed &() const;
01369 #else
01370     operator H245_MediaTransportType_atm_AAL5_compressed &();
01371     operator const H245_MediaTransportType_atm_AAL5_compressed &() const;
01372 #endif
01373 
01374     BOOL CreateObject();
01375     PObject * Clone() const;
01376 };
01377 
01378 
01379 //
01380 // MediaChannelCapability
01381 //
01382 
01383 class H245_MediaChannelCapability : public PASN_Sequence
01384 {
01385 #ifndef PASN_LEANANDMEAN
01386     PCLASSINFO(H245_MediaChannelCapability, PASN_Sequence);
01387 #endif
01388   public:
01389     H245_MediaChannelCapability(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
01390 
01391     enum OptionalFields {
01392       e_mediaTransport
01393     };
01394 
01395     H245_MediaTransportType m_mediaTransport;
01396 
01397     PINDEX GetDataLength() const;
01398     BOOL Decode(PASN_Stream & strm);
01399     void Encode(PASN_Stream & strm) const;
01400 #ifndef PASN_NOPRINTON
01401     void PrintOn(ostream & strm) const;
01402 #endif
01403     Comparison Compare(const PObject & obj) const;
01404     PObject * Clone() const;
01405 };
01406 
01407 
01408 //
01409 // RedundancyEncodingMethod
01410 //
01411 
01412 class H245_NonStandardParameter;
01413 class H245_RTPH263VideoRedundancyEncoding;
01414 
01415 class H245_RedundancyEncodingMethod : public PASN_Choice
01416 {
01417 #ifndef PASN_LEANANDMEAN
01418     PCLASSINFO(H245_RedundancyEncodingMethod, PASN_Choice);
01419 #endif
01420   public:
01421     H245_RedundancyEncodingMethod(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
01422 
01423     enum Choices {
01424       e_nonStandard,
01425       e_rtpAudioRedundancyEncoding,
01426       e_rtpH263VideoRedundancyEncoding
01427     };
01428 
01429 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01430     operator H245_NonStandardParameter &() const;
01431 #else
01432     operator H245_NonStandardParameter &();
01433     operator const H245_NonStandardParameter &() const;
01434 #endif
01435 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01436     operator H245_RTPH263VideoRedundancyEncoding &() const;
01437 #else
01438     operator H245_RTPH263VideoRedundancyEncoding &();
01439     operator const H245_RTPH263VideoRedundancyEncoding &() const;
01440 #endif
01441 
01442     BOOL CreateObject();
01443     PObject * Clone() const;
01444 };
01445 
01446 
01447 //
01448 // VideoCapability
01449 //
01450 
01451 class H245_NonStandardParameter;
01452 class H245_H261VideoCapability;
01453 class H245_H262VideoCapability;
01454 class H245_H263VideoCapability;
01455 class H245_IS11172VideoCapability;
01456 class H245_GenericCapability;
01457 class H245_ExtendedVideoCapability;
01458 
01459 class H245_VideoCapability : public PASN_Choice
01460 {
01461 #ifndef PASN_LEANANDMEAN
01462     PCLASSINFO(H245_VideoCapability, PASN_Choice);
01463 #endif
01464   public:
01465     H245_VideoCapability(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
01466 
01467     enum Choices {
01468       e_nonStandard,
01469       e_h261VideoCapability,
01470       e_h262VideoCapability,
01471       e_h263VideoCapability,
01472       e_is11172VideoCapability,
01473       e_genericVideoCapability,
01474       e_extendedVideoCapability
01475     };
01476 
01477 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01478     operator H245_NonStandardParameter &() const;
01479 #else
01480     operator H245_NonStandardParameter &();
01481     operator const H245_NonStandardParameter &() const;
01482 #endif
01483 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01484     operator H245_H261VideoCapability &() const;
01485 #else
01486     operator H245_H261VideoCapability &();
01487     operator const H245_H261VideoCapability &() const;
01488 #endif
01489 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01490     operator H245_H262VideoCapability &() const;
01491 #else
01492     operator H245_H262VideoCapability &();
01493     operator const H245_H262VideoCapability &() const;
01494 #endif
01495 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01496     operator H245_H263VideoCapability &() const;
01497 #else
01498     operator H245_H263VideoCapability &();
01499     operator const H245_H263VideoCapability &() const;
01500 #endif
01501 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01502     operator H245_IS11172VideoCapability &() const;
01503 #else
01504     operator H245_IS11172VideoCapability &();
01505     operator const H245_IS11172VideoCapability &() const;
01506 #endif
01507 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01508     operator H245_GenericCapability &() const;
01509 #else
01510     operator H245_GenericCapability &();
01511     operator const H245_GenericCapability &() const;
01512 #endif
01513 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01514     operator H245_ExtendedVideoCapability &() const;
01515 #else
01516     operator H245_ExtendedVideoCapability &();
01517     operator const H245_ExtendedVideoCapability &() const;
01518 #endif
01519 
01520     BOOL CreateObject();
01521     PObject * Clone() const;
01522 };
01523 
01524 
01525 //
01526 // H261VideoCapability
01527 //
01528 
01529 class H245_H261VideoCapability : public PASN_Sequence
01530 {
01531 #ifndef PASN_LEANANDMEAN
01532     PCLASSINFO(H245_H261VideoCapability, PASN_Sequence);
01533 #endif
01534   public:
01535     H245_H261VideoCapability(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
01536 
01537     enum OptionalFields {
01538       e_qcifMPI,
01539       e_cifMPI,
01540       e_videoBadMBsCap
01541     };
01542 
01543     PASN_Integer m_qcifMPI;
01544     PASN_Integer m_cifMPI;
01545     PASN_Boolean m_temporalSpatialTradeOffCapability;
01546     PASN_Integer m_maxBitRate;
01547     PASN_Boolean m_stillImageTransmission;
01548     PASN_Boolean m_videoBadMBsCap;
01549 
01550     PINDEX GetDataLength() const;
01551     BOOL Decode(PASN_Stream & strm);
01552     void Encode(PASN_Stream & strm) const;
01553 #ifndef PASN_NOPRINTON
01554     void PrintOn(ostream & strm) const;
01555 #endif
01556     Comparison Compare(const PObject & obj) const;
01557     PObject * Clone() const;
01558 };
01559 
01560 
01561 //
01562 // H262VideoCapability
01563 //
01564 
01565 class H245_H262VideoCapability : public PASN_Sequence
01566 {
01567 #ifndef PASN_LEANANDMEAN
01568     PCLASSINFO(H245_H262VideoCapability, PASN_Sequence);
01569 #endif
01570   public:
01571     H245_H262VideoCapability(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
01572 
01573     enum OptionalFields {
01574       e_videoBitRate,
01575       e_vbvBufferSize,
01576       e_samplesPerLine,
01577       e_linesPerFrame,
01578       e_framesPerSecond,
01579       e_luminanceSampleRate
01580     };
01581 
01582     PASN_Boolean m_profileAndLevel_SPatML;
01583     PASN_Boolean m_profileAndLevel_MPatLL;
01584     PASN_Boolean m_profileAndLevel_MPatML;
01585     PASN_Boolean m_profileAndLevel_MPatH_14;
01586     PASN_Boolean m_profileAndLevel_MPatHL;
01587     PASN_Boolean m_profileAndLevel_SNRatLL;
01588     PASN_Boolean m_profileAndLevel_SNRatML;
01589     PASN_Boolean m_profileAndLevel_SpatialatH_14;
01590     PASN_Boolean m_profileAndLevel_HPatML;
01591     PASN_Boolean m_profileAndLevel_HPatH_14;
01592     PASN_Boolean m_profileAndLevel_HPatHL;
01593     PASN_Integer m_videoBitRate;
01594     PASN_Integer m_vbvBufferSize;
01595     PASN_Integer m_samplesPerLine;
01596     PASN_Integer m_linesPerFrame;
01597     PASN_Integer m_framesPerSecond;
01598     PASN_Integer m_luminanceSampleRate;
01599     PASN_Boolean m_videoBadMBsCap;
01600 
01601     PINDEX GetDataLength() const;
01602     BOOL Decode(PASN_Stream & strm);
01603     void Encode(PASN_Stream & strm) const;
01604 #ifndef PASN_NOPRINTON
01605     void PrintOn(ostream & strm) const;
01606 #endif
01607     Comparison Compare(const PObject & obj) const;
01608     PObject * Clone() const;
01609 };
01610 
01611 
01612 //
01613 // TransparencyParameters
01614 //
01615 
01616 class H245_TransparencyParameters : public PASN_Sequence
01617 {
01618 #ifndef PASN_LEANANDMEAN
01619     PCLASSINFO(H245_TransparencyParameters, PASN_Sequence);
01620 #endif
01621   public:
01622     H245_TransparencyParameters(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
01623 
01624     PASN_Integer m_presentationOrder;
01625     PASN_Integer m_offset_x;
01626     PASN_Integer m_offset_y;
01627     PASN_Integer m_scale_x;
01628     PASN_Integer m_scale_y;
01629 
01630     PINDEX GetDataLength() const;
01631     BOOL Decode(PASN_Stream & strm);
01632     void Encode(PASN_Stream & strm) const;
01633 #ifndef PASN_NOPRINTON
01634     void PrintOn(ostream & strm) const;
01635 #endif
01636     Comparison Compare(const PObject & obj) const;
01637     PObject * Clone() const;
01638 };
01639 
01640 
01641 //
01642 // CustomPictureClockFrequency
01643 //
01644 
01645 class H245_CustomPictureClockFrequency : public PASN_Sequence
01646 {
01647 #ifndef PASN_LEANANDMEAN
01648     PCLASSINFO(H245_CustomPictureClockFrequency, PASN_Sequence);
01649 #endif
01650   public:
01651     H245_CustomPictureClockFrequency(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
01652 
01653     enum OptionalFields {
01654       e_sqcifMPI,
01655       e_qcifMPI,
01656       e_cifMPI,
01657       e_cif4MPI,
01658       e_cif16MPI
01659     };
01660 
01661     PASN_Integer m_clockConversionCode;
01662     PASN_Integer m_clockDivisor;
01663     PASN_Integer m_sqcifMPI;
01664     PASN_Integer m_qcifMPI;
01665     PASN_Integer m_cifMPI;
01666     PASN_Integer m_cif4MPI;
01667     PASN_Integer m_cif16MPI;
01668 
01669     PINDEX GetDataLength() const;
01670     BOOL Decode(PASN_Stream & strm);
01671     void Encode(PASN_Stream & strm) const;
01672 #ifndef PASN_NOPRINTON
01673     void PrintOn(ostream & strm) const;
01674 #endif
01675     Comparison Compare(const PObject & obj) const;
01676     PObject * Clone() const;
01677 };
01678 
01679 
01680 //
01681 // H263Version3Options
01682 //
01683 
01684 class H245_H263Version3Options : public PASN_Sequence
01685 {
01686 #ifndef PASN_LEANANDMEAN
01687     PCLASSINFO(H245_H263Version3Options, PASN_Sequence);
01688 #endif
01689   public:
01690     H245_H263Version3Options(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
01691 
01692     PASN_Boolean m_dataPartitionedSlices;
01693     PASN_Boolean m_fixedPointIDCT0;
01694     PASN_Boolean m_interlacedFields;
01695     PASN_Boolean m_currentPictureHeaderRepetition;
01696     PASN_Boolean m_previousPictureHeaderRepetition;
01697     PASN_Boolean m_nextPictureHeaderRepetition;
01698     PASN_Boolean m_pictureNumber;
01699     PASN_Boolean m_spareReferencePictures;
01700 
01701     PINDEX GetDataLength() const;
01702     BOOL Decode(PASN_Stream & strm);
01703     void Encode(PASN_Stream & strm) const;
01704 #ifndef PASN_NOPRINTON
01705     void PrintOn(ostream & strm) const;
01706 #endif
01707     Comparison Compare(const PObject & obj) const;
01708     PObject * Clone() const;
01709 };
01710 
01711 
01712 //
01713 // IS11172VideoCapability
01714 //
01715 
01716 class H245_IS11172VideoCapability : public PASN_Sequence
01717 {
01718 #ifndef PASN_LEANANDMEAN
01719     PCLASSINFO(H245_IS11172VideoCapability, PASN_Sequence);
01720 #endif
01721   public:
01722     H245_IS11172VideoCapability(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
01723 
01724     enum OptionalFields {
01725       e_videoBitRate,
01726       e_vbvBufferSize,
01727       e_samplesPerLine,
01728       e_linesPerFrame,
01729       e_pictureRate,
01730       e_luminanceSampleRate,
01731       e_videoBadMBsCap
01732     };
01733 
01734     PASN_Boolean m_constrainedBitstream;
01735     PASN_Integer m_videoBitRate;
01736     PASN_Integer m_vbvBufferSize;
01737     PASN_Integer m_samplesPerLine;
01738     PASN_Integer m_linesPerFrame;
01739     PASN_Integer m_pictureRate;
01740     PASN_Integer m_luminanceSampleRate;
01741     PASN_Boolean m_videoBadMBsCap;
01742 
01743     PINDEX GetDataLength() const;
01744     BOOL Decode(PASN_Stream & strm);
01745     void Encode(PASN_Stream & strm) const;
01746 #ifndef PASN_NOPRINTON
01747     void PrintOn(ostream & strm) const;
01748 #endif
01749     Comparison Compare(const PObject & obj) const;
01750     PObject * Clone() const;
01751 };
01752 
01753 
01754 //
01755 // AudioCapability
01756 //
01757 
01758 class H245_NonStandardParameter;
01759 class H245_AudioCapability_g7231;
01760 class H245_IS11172AudioCapability;
01761 class H245_IS13818AudioCapability;
01762 class H245_G7231AnnexCCapability;
01763 class H245_GSMAudioCapability;
01764 class H245_GenericCapability;
01765 class H245_G729Extensions;
01766 class H245_VBDCapability;
01767 class H245_NoPTAudioTelephonyEventCapability;
01768 class H245_NoPTAudioToneCapability;
01769 
01770 class H245_AudioCapability : public PASN_Choice
01771 {
01772 #ifndef PASN_LEANANDMEAN
01773     PCLASSINFO(H245_AudioCapability, PASN_Choice);
01774 #endif
01775   public:
01776     H245_AudioCapability(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
01777 
01778     enum Choices {
01779       e_nonStandard,
01780       e_g711Alaw64k,
01781       e_g711Alaw56k,
01782       e_g711Ulaw64k,
01783       e_g711Ulaw56k,
01784       e_g722_64k,
01785       e_g722_56k,
01786       e_g722_48k,
01787       e_g7231,
01788       e_g728,
01789       e_g729,
01790       e_g729AnnexA,
01791       e_is11172AudioCapability,
01792       e_is13818AudioCapability,
01793       e_g729wAnnexB,
01794       e_g729AnnexAwAnnexB,
01795       e_g7231AnnexCCapability,
01796       e_gsmFullRate,
01797       e_gsmHalfRate,
01798       e_gsmEnhancedFullRate,
01799       e_genericAudioCapability,
01800       e_g729Extensions,
01801       e_vbd,
01802       e_audioTelephonyEvent,
01803       e_audioTone
01804     };
01805 
01806 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01807     operator H245_NonStandardParameter &() const;
01808 #else
01809     operator H245_NonStandardParameter &();
01810     operator const H245_NonStandardParameter &() const;
01811 #endif
01812 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01813     operator H245_AudioCapability_g7231 &() const;
01814 #else
01815     operator H245_AudioCapability_g7231 &();
01816     operator const H245_AudioCapability_g7231 &() const;
01817 #endif
01818 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01819     operator H245_IS11172AudioCapability &() const;
01820 #else
01821     operator H245_IS11172AudioCapability &();
01822     operator const H245_IS11172AudioCapability &() const;
01823 #endif
01824 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01825     operator H245_IS13818AudioCapability &() const;
01826 #else
01827     operator H245_IS13818AudioCapability &();
01828     operator const H245_IS13818AudioCapability &() const;
01829 #endif
01830 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01831     operator H245_G7231AnnexCCapability &() const;
01832 #else
01833     operator H245_G7231AnnexCCapability &();
01834     operator const H245_G7231AnnexCCapability &() const;
01835 #endif
01836 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01837     operator H245_GSMAudioCapability &() const;
01838 #else
01839     operator H245_GSMAudioCapability &();
01840     operator const H245_GSMAudioCapability &() const;
01841 #endif
01842 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01843     operator H245_GenericCapability &() const;
01844 #else
01845     operator H245_GenericCapability &();
01846     operator const H245_GenericCapability &() const;
01847 #endif
01848 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01849     operator H245_G729Extensions &() const;
01850 #else
01851     operator H245_G729Extensions &();
01852     operator const H245_G729Extensions &() const;
01853 #endif
01854 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01855     operator H245_VBDCapability &() const;
01856 #else
01857     operator H245_VBDCapability &();
01858     operator const H245_VBDCapability &() const;
01859 #endif
01860 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01861     operator H245_NoPTAudioTelephonyEventCapability &() const;
01862 #else
01863     operator H245_NoPTAudioTelephonyEventCapability &();
01864     operator const H245_NoPTAudioTelephonyEventCapability &() const;
01865 #endif
01866 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01867     operator H245_NoPTAudioToneCapability &() const;
01868 #else
01869     operator H245_NoPTAudioToneCapability &();
01870     operator const H245_NoPTAudioToneCapability &() const;
01871 #endif
01872 
01873 #ifndef PASN_NOPRINTON
01874     void PrintOn(ostream & strm) const;
01875 #endif
01876     BOOL CreateObject();
01877     PObject * Clone() const;
01878 };
01879 
01880 
01881 //
01882 // G729Extensions
01883 //
01884 
01885 class H245_G729Extensions : public PASN_Sequence
01886 {
01887 #ifndef PASN_LEANANDMEAN
01888     PCLASSINFO(H245_G729Extensions, PASN_Sequence);
01889 #endif
01890   public:
01891     H245_G729Extensions(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
01892 
01893     enum OptionalFields {
01894       e_audioUnit
01895     };
01896 
01897     PASN_Integer m_audioUnit;
01898     PASN_Boolean m_annexA;
01899     PASN_Boolean m_annexB;
01900     PASN_Boolean m_annexD;
01901     PASN_Boolean m_annexE;
01902     PASN_Boolean m_annexF;
01903     PASN_Boolean m_annexG;
01904     PASN_Boolean m_annexH;
01905 
01906     PINDEX GetDataLength() const;
01907     BOOL Decode(PASN_Stream & strm);
01908     void Encode(PASN_Stream & strm) const;
01909 #ifndef PASN_NOPRINTON
01910     void PrintOn(ostream & strm) const;
01911 #endif
01912     Comparison Compare(const PObject & obj) const;
01913     PObject * Clone() const;
01914 };
01915 
01916 
01917 //
01918 // IS11172AudioCapability
01919 //
01920 
01921 class H245_IS11172AudioCapability : public PASN_Sequence
01922 {
01923 #ifndef PASN_LEANANDMEAN
01924     PCLASSINFO(H245_IS11172AudioCapability, PASN_Sequence);
01925 #endif
01926   public:
01927     H245_IS11172AudioCapability(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
01928 
01929     PASN_Boolean m_audioLayer1;
01930     PASN_Boolean m_audioLayer2;
01931     PASN_Boolean m_audioLayer3;
01932     PASN_Boolean m_audioSampling32k;
01933     PASN_Boolean m_audioSampling44k1;
01934     PASN_Boolean m_audioSampling48k;
01935     PASN_Boolean m_singleChannel;
01936     PASN_Boolean m_twoChannels;
01937     PASN_Integer m_bitRate;
01938 
01939     PINDEX GetDataLength() const;
01940     BOOL Decode(PASN_Stream & strm);
01941     void Encode(PASN_Stream & strm) const;
01942 #ifndef PASN_NOPRINTON
01943     void PrintOn(ostream & strm) const;
01944 #endif
01945     Comparison Compare(const PObject & obj) const;
01946     PObject * Clone() const;
01947 };
01948 
01949 
01950 //
01951 // IS13818AudioCapability
01952 //
01953 
01954 class H245_IS13818AudioCapability : public PASN_Sequence
01955 {
01956 #ifndef PASN_LEANANDMEAN
01957     PCLASSINFO(H245_IS13818AudioCapability, PASN_Sequence);
01958 #endif
01959   public:
01960     H245_IS13818AudioCapability(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
01961 
01962     PASN_Boolean m_audioLayer1;
01963     PASN_Boolean m_audioLayer2;
01964     PASN_Boolean m_audioLayer3;
01965     PASN_Boolean m_audioSampling16k;
01966     PASN_Boolean m_audioSampling22k05;
01967     PASN_Boolean m_audioSampling24k;
01968     PASN_Boolean m_audioSampling32k;
01969     PASN_Boolean m_audioSampling44k1;
01970     PASN_Boolean m_audioSampling48k;
01971     PASN_Boolean m_singleChannel;
01972     PASN_Boolean m_twoChannels;
01973     PASN_Boolean m_threeChannels2_1;
01974     PASN_Boolean m_threeChannels3_0;
01975     PASN_Boolean m_fourChannels2_0_2_0;
01976     PASN_Boolean m_fourChannels2_2;
01977     PASN_Boolean m_fourChannels3_1;
01978     PASN_Boolean m_fiveChannels3_0_2_0;
01979     PASN_Boolean m_fiveChannels3_2;
01980     PASN_Boolean m_lowFrequencyEnhancement;
01981     PASN_Boolean m_multilingual;
01982     PASN_Integer m_bitRate;
01983 
01984     PINDEX GetDataLength() const;
01985     BOOL Decode(PASN_Stream & strm);
01986     void Encode(PASN_Stream & strm) const;
01987 #ifndef PASN_NOPRINTON
01988     void PrintOn(ostream & strm) const;
01989 #endif
01990     Comparison Compare(const PObject & obj) const;
01991     PObject * Clone() const;
01992 };
01993 
01994 
01995 //
01996 // GSMAudioCapability
01997 //
01998 
01999 class H245_GSMAudioCapability : public PASN_Sequence
02000 {
02001 #ifndef PASN_LEANANDMEAN
02002     PCLASSINFO(H245_GSMAudioCapability, PASN_Sequence);
02003 #endif
02004   public:
02005     H245_GSMAudioCapability(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
02006 
02007     PASN_Integer m_audioUnitSize;
02008     PASN_Boolean m_comfortNoise;
02009     PASN_Boolean m_scrambled;
02010 
02011     PINDEX GetDataLength() const;
02012     BOOL Decode(PASN_Stream & strm);
02013     void Encode(PASN_Stream & strm) const;
02014 #ifndef PASN_NOPRINTON
02015     void PrintOn(ostream & strm) const;
02016 #endif
02017     Comparison Compare(const PObject & obj) const;
02018     PObject * Clone() const;
02019 };
02020 
02021 
02022 //
02023 // VBDCapability
02024 //
02025 
02026 class H245_VBDCapability : public PASN_Sequence
02027 {
02028 #ifndef PASN_LEANANDMEAN
02029     PCLASSINFO(H245_VBDCapability, PASN_Sequence);
02030 #endif
02031   public:
02032     H245_VBDCapability(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
02033 
02034     H245_AudioCapability m_type;
02035 
02036     PINDEX GetDataLength() const;
02037     BOOL Decode(PASN_Stream & strm);
02038     void Encode(PASN_Stream & strm) const;
02039 #ifndef PASN_NOPRINTON
02040     void PrintOn(ostream & strm) const;
02041 #endif
02042     Comparison Compare(const PObject & obj) const;
02043     PObject * Clone() const;
02044 };
02045 
02046 
02047 //
02048 // DataProtocolCapability
02049 //
02050 
02051 class H245_NonStandardParameter;
02052 class H245_DataProtocolCapability_v76wCompression;
02053 
02054 class H245_DataProtocolCapability : public PASN_Choice
02055 {
02056 #ifndef PASN_LEANANDMEAN
02057     PCLASSINFO(H245_DataProtocolCapability, PASN_Choice);
02058 #endif
02059   public:
02060     H245_DataProtocolCapability(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
02061 
02062     enum Choices {
02063       e_nonStandard,
02064       e_v14buffered,
02065       e_v42lapm,
02066       e_hdlcFrameTunnelling,
02067       e_h310SeparateVCStack,
02068       e_h310SingleVCStack,
02069       e_transparent,
02070       e_segmentationAndReassembly,
02071       e_hdlcFrameTunnelingwSAR,
02072       e_v120,
02073       e_separateLANStack,
02074       e_v76wCompression,
02075       e_tcp,
02076       e_udp
02077     };
02078 
02079 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
02080     operator H245_NonStandardParameter &() const;
02081 #else
02082     operator H245_NonStandardParameter &();
02083     operator const H245_NonStandardParameter &() const;
02084 #endif
02085 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
02086     operator H245_DataProtocolCapability_v76wCompression &() const;
02087 #else
02088     operator H245_DataProtocolCapability_v76wCompression &();
02089     operator const H245_DataProtocolCapability_v76wCompression &() const;
02090 #endif
02091 
02092     BOOL CreateObject();
02093     PObject * Clone() const;
02094 };
02095 
02096 
02097 //
02098 // CompressionType
02099 //
02100 
02101 class H245_V42bis;
02102 
02103 class H245_CompressionType : public PASN_Choice
02104 {
02105 #ifndef PASN_LEANANDMEAN
02106     PCLASSINFO(H245_CompressionType, PASN_Choice);
02107 #endif
02108   public:
02109     H245_CompressionType(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
02110 
02111     enum Choices {
02112       e_v42bis
02113     };
02114 
02115 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
02116     operator H245_V42bis &() const;
02117 #else
02118     operator H245_V42bis &();
02119     operator const H245_V42bis &() const;
02120 #endif
02121 
02122     BOOL CreateObject();
02123     PObject * Clone() const;
02124 };
02125 
02126 
02127 //
02128 // V42bis
02129 //
02130 
02131 class H245_V42bis : public PASN_Sequence
02132 {
02133 #ifndef PASN_LEANANDMEAN
02134     PCLASSINFO(H245_V42bis, PASN_Sequence);
02135 #endif
02136   public:
02137     H245_V42bis(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
02138 
02139     PASN_Integer m_numberOfCodewords;
02140     PASN_Integer m_maximumStringLength;
02141 
02142     PINDEX GetDataLength() const;
02143     BOOL Decode(PASN_Stream & strm);
02144     void Encode(PASN_Stream & strm) const;
02145 #ifndef PASN_NOPRINTON
02146     void PrintOn(ostream & strm) const;
02147 #endif
02148     Comparison Compare(const PObject & obj) const;
02149     PObject * Clone() const;
02150 };
02151 
02152 
02153 //
02154 // T84Profile
02155 //
02156 
02157 class H245_T84Profile_t84Restricted;
02158 
02159 class H245_T84Profile : public PASN_Choice
02160 {
02161 #ifndef PASN_LEANANDMEAN
02162     PCLASSINFO(H245_T84Profile, PASN_Choice);
02163 #endif
02164   public:
02165     H245_T84Profile(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
02166 
02167     enum Choices {
02168       e_t84Unrestricted,
02169       e_t84Restricted
02170     };
02171 
02172 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
02173     operator H245_T84Profile_t84Restricted &() const;
02174 #else
02175     operator H245_T84Profile_t84Restricted &();
02176     operator const H245_T84Profile_t84Restricted &() const;
02177 #endif
02178 
02179     BOOL CreateObject();
02180     PObject * Clone() const;
02181 };
02182 
02183 
02184 //
02185 // T38FaxRateManagement
02186 //
02187 
02188 class H245_T38FaxRateManagement : public PASN_Choice
02189 {
02190 #ifndef PASN_LEANANDMEAN
02191     PCLASSINFO(H245_T38FaxRateManagement, PASN_Choice);
02192 #endif
02193   public:
02194     H245_T38FaxRateManagement(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
02195 
02196     enum Choices {
02197       e_localTCF,
02198       e_transferredTCF
02199     };
02200 
02201     BOOL CreateObject();
02202     PObject * Clone() const;
02203 };
02204 
02205 
02206 //
02207 // T38FaxTcpOptions
02208 //
02209 
02210 class H245_T38FaxTcpOptions : public PASN_Sequence
02211 {
02212 #ifndef PASN_LEANANDMEAN
02213     PCLASSINFO(H245_T38FaxTcpOptions, PASN_Sequence);
02214 #endif
02215   public:
02216     H245_T38FaxTcpOptions(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
02217 
02218     PASN_Boolean m_t38TCPBidirectionalMode;
02219 
02220     PINDEX GetDataLength() const;
02221     BOOL Decode(PASN_Stream & strm);
02222     void Encode(PASN_Stream & strm) const;
02223 #ifndef PASN_NOPRINTON
02224     void PrintOn(ostream & strm) const;
02225 #endif
02226     Comparison Compare(const PObject & obj) const;
02227     PObject * Clone() const;
02228 };
02229 
02230 
02231 //
02232 // EncryptionCapability
02233 //
02234 
02235 class H245_MediaEncryptionAlgorithm;
02236 
02237 class H245_EncryptionCapability : public PASN_Array
02238 {
02239 #ifndef PASN_LEANANDMEAN
02240     PCLASSINFO(H245_EncryptionCapability, PASN_Array);
02241 #endif
02242   public:
02243     H245_EncryptionCapability(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
02244 
02245     PASN_Object * CreateObject() const;
02246     H245_MediaEncryptionAlgorithm & operator[](PINDEX i) const;
02247     PObject * Clone() const;
02248 };
02249 
02250 
02251 //
02252 // MediaEncryptionAlgorithm
02253 //
02254 
02255 class H245_NonStandardParameter;
02256 
02257 class H245_MediaEncryptionAlgorithm : public PASN_Choice
02258 {
02259 #ifndef PASN_LEANANDMEAN
02260     PCLASSINFO(H245_MediaEncryptionAlgorithm, PASN_Choice);
02261 #endif
02262   public:
02263     H245_MediaEncryptionAlgorithm(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
02264 
02265     enum Choices {
02266       e_nonStandard,
02267       e_algorithm
02268     };
02269 
02270 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
02271     operator H245_NonStandardParameter &() const;
02272 #else
02273     operator H245_NonStandardParameter &();
02274     operator const H245_NonStandardParameter &() const;
02275 #endif
02276 
02277     BOOL CreateObject();
02278     PObject * Clone() const;
02279 };
02280 
02281 
02282 //
02283 // UserInputCapability
02284 //
02285 
02286 class H245_ArrayOf_NonStandardParameter;
02287 class H245_GenericCapability;
02288 
02289 class H245_UserInputCapability : public PASN_Choice
02290 {
02291 #ifndef PASN_LEANANDMEAN
02292     PCLASSINFO(H245_UserInputCapability, PASN_Choice);
02293 #endif
02294   public:
02295     H245_UserInputCapability(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
02296 
02297     enum Choices {
02298       e_nonStandard,
02299       e_basicString,
02300       e_iA5String,
02301       e_generalString,
02302       e_dtmf,
02303       e_hookflash,
02304       e_extendedAlphanumeric,
02305       e_encryptedBasicString,
02306       e_encryptedIA5String,
02307       e_encryptedGeneralString,
02308       e_secureDTMF,
02309       e_genericUserInputCapability
02310     };
02311 
02312 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
02313     operator H245_ArrayOf_NonStandardParameter &() const;
02314 #else
02315     operator H245_ArrayOf_NonStandardParameter &();
02316     operator const H245_ArrayOf_NonStandardParameter &() const;
02317 #endif
02318 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
02319     operator H245_GenericCapability &() const;
02320 #else
02321     operator H245_GenericCapability &();
02322     operator const H245_GenericCapability &() const;
02323 #endif
02324 
02325     BOOL CreateObject();
02326     PObject * Clone() const;
02327 };
02328 
02329 
02330 //
02331 // CapabilityIdentifier
02332 //
02333 
02334 class H245_NonStandardParameter;
02335 
02336 class H245_CapabilityIdentifier : public PASN_Choice
02337 {
02338 #ifndef PASN_LEANANDMEAN
02339     PCLASSINFO(H245_CapabilityIdentifier, PASN_Choice);
02340 #endif
02341   public:
02342     H245_CapabilityIdentifier(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
02343 
02344     enum Choices {
02345       e_standard,
02346       e_h221NonStandard,
02347       e_uuid,
02348       e_domainBased
02349     };
02350 
02351 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
02352     operator H245_NonStandardParameter &() const;
02353 #else
02354     operator H245_NonStandardParameter &();
02355     operator const H245_NonStandardParameter &() const;
02356 #endif
02357 
02358     BOOL CreateObject();
02359     PObject * Clone() const;
02360 };
02361 
02362 
02363 //
02364 // ParameterIdentifier
02365 //
02366 
02367 class H245_NonStandardParameter;
02368 
02369 class H245_ParameterIdentifier : public PASN_Choice
02370 {
02371 #ifndef PASN_LEANANDMEAN
02372     PCLASSINFO(H245_ParameterIdentifier, PASN_Choice);
02373 #endif
02374   public:
02375     H245_ParameterIdentifier(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
02376 
02377     enum Choices {
02378       e_standard,
02379       e_h221NonStandard,
02380       e_uuid,
02381       e_domainBased
02382     };
02383 
02384 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
02385     operator H245_NonStandardParameter &() const;
02386 #else
02387     operator H245_NonStandardParameter &();
02388     operator const H245_NonStandardParameter &() const;
02389 #endif
02390 
02391     BOOL CreateObject();
02392     PObject * Clone() const;
02393 };
02394 
02395 
02396 //
02397 // ParameterValue
02398 //
02399 
02400 class H245_ArrayOf_GenericParameter;
02401 
02402 class H245_ParameterValue : public PASN_Choice
02403 {
02404 #ifndef PASN_LEANANDMEAN
02405     PCLASSINFO(H245_ParameterValue, PASN_Choice);
02406 #endif
02407   public:
02408     H245_ParameterValue(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
02409 
02410     enum Choices {
02411       e_logical,
02412       e_booleanArray,
02413       e_unsignedMin,
02414       e_unsignedMax,
02415       e_unsigned32Min,
02416       e_unsigned32Max,
02417       e_octetString,
02418       e_genericParameter
02419     };
02420 
02421 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
02422     operator H245_ArrayOf_GenericParameter &() const;
02423 #else
02424     operator H245_ArrayOf_GenericParameter &();
02425     operator const H245_ArrayOf_GenericParameter &() const;
02426 #endif
02427 
02428     BOOL CreateObject();
02429     PObject * Clone() const;
02430 };
02431 
02432 
02433 //
02434 // MultiplexFormat
02435 //
02436 
02437 class H245_NonStandardParameter;
02438 class H245_H222Capability;
02439 class H245_H223Capability;
02440 
02441 class H245_MultiplexFormat : public PASN_Choice
02442 {
02443 #ifndef PASN_LEANANDMEAN
02444     PCLASSINFO(H245_MultiplexFormat, PASN_Choice);
02445 #endif
02446   public:
02447     H245_MultiplexFormat(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
02448 
02449     enum Choices {
02450       e_nonStandard,
02451       e_h222Capability,
02452       e_h223Capability
02453     };
02454 
02455 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
02456     operator H245_NonStandardParameter &() const;
02457 #else
02458     operator H245_NonStandardParameter &();
02459     operator const H245_NonStandardParameter &() const;
02460 #endif
02461 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
02462     operator H245_H222Capability &() const;
02463 #else
02464     operator H245_H222Capability &();
02465     operator const H245_H222Capability &() const;
02466 #endif
02467 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
02468     operator H245_H223Capability &() const;
02469 #else
02470     operator H245_H223Capability &();
02471     operator const H245_H223Capability &() const;
02472 #endif
02473 
02474     BOOL CreateObject();
02475     PObject * Clone() const;
02476 };
02477 
02478 
02479 //
02480 // AudioTelephonyEventCapability
02481 //
02482 
02483 class H245_AudioTelephonyEventCapability : public PASN_Sequence
02484 {
02485 #ifndef PASN_LEANANDMEAN
02486     PCLASSINFO(H245_AudioTelephonyEventCapability, PASN_Sequence);
02487 #endif
02488   public:
02489     H245_AudioTelephonyEventCapability(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
02490 
02491     PASN_Integer m_dynamicRTPPayloadType;
02492     PASN_GeneralString m_audioTelephoneEvent;
02493 
02494     PINDEX GetDataLength() const;
02495     BOOL Decode(PASN_Stream & strm);
02496     void Encode(PASN_Stream & strm) const;
02497 #ifndef PASN_NOPRINTON
02498     void PrintOn(ostream & strm) const;
02499 #endif
02500     Comparison Compare(const PObject & obj) const;
02501     PObject * Clone() const;
02502 };
02503 
02504 
02505 //
02506 // AudioToneCapability
02507 //
02508 
02509 class H245_AudioToneCapability : public PASN_Sequence
02510 {
02511 #ifndef PASN_LEANANDMEAN
02512     PCLASSINFO(H245_AudioToneCapability, PASN_Sequence);
02513 #endif
02514   public:
02515     H245_AudioToneCapability(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
02516 
02517     PASN_Integer m_dynamicRTPPayloadType;
02518 
02519     PINDEX GetDataLength() const;
02520     BOOL Decode(PASN_Stream & strm);
02521     void Encode(PASN_Stream & strm) const;
02522 #ifndef PASN_NOPRINTON
02523     void PrintOn(ostream & strm) const;
02524 #endif
02525     Comparison Compare(const PObject & obj) const;
02526     PObject * Clone() const;
02527 };
02528 
02529 
02530 //
02531 // NoPTAudioTelephonyEventCapability
02532 //
02533 
02534 class H245_NoPTAudioTelephonyEventCapability : public PASN_Sequence
02535 {
02536 #ifndef PASN_LEANANDMEAN
02537     PCLASSINFO(H245_NoPTAudioTelephonyEventCapability, PASN_Sequence);
02538 #endif
02539   public:
02540     H245_NoPTAudioTelephonyEventCapability(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
02541 
02542     PASN_GeneralString m_audioTelephoneEvent;
02543 
02544     PINDEX GetDataLength() const;
02545     BOOL Decode(PASN_Stream & strm);
02546     void Encode(PASN_Stream & strm) const;
02547 #ifndef PASN_NOPRINTON
02548     void PrintOn(ostream & strm) const;
02549 #endif
02550     Comparison Compare(const PObject & obj) const;
02551     PObject * Clone() const;
02552 };
02553 
02554 
02555 //
02556 // NoPTAudioToneCapability
02557 //
02558 
02559 class H245_NoPTAudioToneCapability : public PASN_Sequence
02560 {
02561 #ifndef PASN_LEANANDMEAN
02562     PCLASSINFO(H245_NoPTAudioToneCapability, PASN_Sequence);
02563 #endif
02564   public:
02565     H245_NoPTAudioToneCapability(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
02566 
02567 
02568     PINDEX GetDataLength() const;
02569     BOOL Decode(PASN_Stream & strm);
02570     void Encode(PASN_Stream & strm) const;
02571 #ifndef PASN_NOPRINTON
02572     void PrintOn(ostream & strm) const;
02573 #endif
02574     PObject * Clone() const;
02575 };
02576 
02577 
02578 //
02579 // DepFECCapability
02580 //
02581 
02582 class H245_DepFECCapability_rfc2733;
02583 
02584 class H245_DepFECCapability : public PASN_Choice
02585 {
02586 #ifndef PASN_LEANANDMEAN
02587     PCLASSINFO(H245_DepFECCapability, PASN_Choice);
02588 #endif
02589   public:
02590     H245_DepFECCapability(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
02591 
02592     enum Choices {
02593       e_rfc2733
02594     };
02595 
02596 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
02597     operator H245_DepFECCapability_rfc2733 &() const;
02598 #else
02599     operator H245_DepFECCapability_rfc2733 &();
02600     operator const H245_DepFECCapability_rfc2733 &() const;
02601 #endif
02602 
02603     BOOL CreateObject();
02604     PObject * Clone() const;
02605 };
02606 
02607 
02608 //
02609 // MaxRedundancy
02610 //
02611 
02612 class H245_MaxRedundancy : public PASN_Integer
02613 {
02614 #ifndef PASN_LEANANDMEAN
02615     PCLASSINFO(H245_MaxRedundancy, PASN_Integer);
02616 #endif
02617   public:
02618     H245_MaxRedundancy(unsigned tag = UniversalInteger, TagClass tagClass = UniversalTagClass);
02619 
02620     H245_MaxRedundancy & operator=(int v);
02621     H245_MaxRedundancy & operator=(unsigned v);
02622     PObject * Clone() const;
02623 };
02624 
02625 
02626 //
02627 // LogicalChannelNumber
02628 //
02629 
02630 class H245_LogicalChannelNumber : public PASN_Integer
02631 {
02632 #ifndef PASN_LEANANDMEAN
02633     PCLASSINFO(H245_LogicalChannelNumber, PASN_Integer);
02634 #endif
02635   public:
02636     H245_LogicalChannelNumber(unsigned tag = UniversalInteger, TagClass tagClass = UniversalTagClass);
02637 
02638     H245_LogicalChannelNumber & operator=(int v);
02639     H245_LogicalChannelNumber & operator=(unsigned v);
02640     PObject * Clone() const;
02641 };
02642 
02643 
02644 //
02645 // V75Parameters
02646 //
02647 
02648 class H245_V75Parameters : public PASN_Sequence
02649 {
02650 #ifndef PASN_LEANANDMEAN
02651     PCLASSINFO(H245_V75Parameters, PASN_Sequence);
02652 #endif
02653   public:
02654     H245_V75Parameters(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
02655 
02656     PASN_Boolean m_audioHeaderPresent;
02657 
02658     PINDEX GetDataLength() const;
02659     BOOL Decode(PASN_Stream & strm);
02660     void Encode(PASN_Stream & strm) const;
02661 #ifndef PASN_NOPRINTON
02662     void PrintOn(ostream & strm) const;
02663 #endif
02664     Comparison Compare(const PObject & obj) const;
02665     PObject * Clone() const;
02666 };
02667 
02668 
02669 //
02670 // DataType
02671 //
02672 
02673 class H245_NonStandardParameter;
02674 class H245_VideoCapability;
02675 class H245_AudioCapability;
02676 class H245_DataApplicationCapability;
02677 class H245_EncryptionMode;
02678 class H245_H235Media;
02679 class H245_MultiplexedStreamParameter;
02680 class H245_RedundancyEncoding;
02681 class H245_MultiplePayloadStream;
02682 class H245_DepFECData;
02683 class H245_FECData;
02684 
02685 class H245_DataType : public PASN_Choice
02686 {
02687 #ifndef PASN_LEANANDMEAN
02688     PCLASSINFO(H245_DataType, PASN_Choice);
02689 #endif
02690   public:
02691     H245_DataType(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
02692 
02693     enum Choices {
02694       e_nonStandard,
02695       e_nullData,
02696       e_videoData,
02697       e_audioData,
02698       e_data,
02699       e_encryptionData,
02700       e_h235Control,
02701       e_h235Media,
02702       e_multiplexedStream,
02703       e_redundancyEncoding,
02704       e_multiplePayloadStream,
02705       e_depFec,
02706       e_fec
02707     };
02708 
02709 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
02710     operator H245_NonStandardParameter &() const;
02711 #else
02712     operator H245_NonStandardParameter &();
02713     operator const H245_NonStandardParameter &() const;
02714 #endif
02715 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
02716     operator H245_VideoCapability &() const;
02717 #else
02718     operator H245_VideoCapability &();
02719     operator const H245_VideoCapability &() const;
02720 #endif
02721 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
02722     operator H245_AudioCapability &() const;
02723 #else
02724     operator H245_AudioCapability &();
02725     operator const H245_AudioCapability &() const;
02726 #endif
02727 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
02728     operator H245_DataApplicationCapability &() const;
02729 #else
02730     operator H245_DataApplicationCapability &();
02731     operator const H245_DataApplicationCapability &() const;
02732 #endif
02733 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
02734     operator H245_EncryptionMode &() const;
02735 #else
02736     operator H245_EncryptionMode &();
02737     operator const H245_EncryptionMode &() const;
02738 #endif
02739 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
02740     operator H245_H235Media &() const;
02741 #else
02742     operator H245_H235Media &();
02743     operator const H245_H235Media &() const;
02744 #endif
02745 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
02746     operator H245_MultiplexedStreamParameter &() const;
02747 #else
02748     operator H245_MultiplexedStreamParameter &();
02749     operator const H245_MultiplexedStreamParameter &() const;
02750 #endif
02751 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
02752     operator H245_RedundancyEncoding &() const;
02753 #else
02754     operator H245_RedundancyEncoding &();
02755     operator const H245_RedundancyEncoding &() const;
02756 #endif
02757 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
02758     operator H245_MultiplePayloadStream &() const;
02759 #else
02760     operator H245_MultiplePayloadStream &();
02761     operator const H245_MultiplePayloadStream &() const;
02762 #endif
02763 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
02764     operator H245_DepFECData &() const;
02765 #else
02766     operator H245_DepFECData &();
02767     operator const H245_DepFECData &() const;
02768 #endif
02769 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
02770     operator H245_FECData &() const;
02771 #else
02772     operator H245_FECData &();
02773     operator const H245_FECData &() const;
02774 #endif
02775 
02776     BOOL CreateObject();
02777     PObject * Clone() const;
02778 };
02779 
02780 
02781 //
02782 // MultiplexedStreamParameter
02783 //
02784 
02785 class H245_MultiplexedStreamParameter : public PASN_Sequence
02786 {
02787 #ifndef PASN_LEANANDMEAN
02788     PCLASSINFO(H245_MultiplexedStreamParameter, PASN_Sequence);
02789 #endif
02790   public:
02791     H245_MultiplexedStreamParameter(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
02792 
02793     H245_MultiplexFormat m_multiplexFormat;
02794     PASN_Boolean m_controlOnMuxStream;
02795 
02796     PINDEX GetDataLength() const;
02797     BOOL Decode(PASN_Stream & strm);
02798     void Encode(PASN_Stream & strm) const;
02799 #ifndef PASN_NOPRINTON
02800     void PrintOn(ostream & strm) const;
02801 #endif
02802     Comparison Compare(const PObject & obj) const;
02803     PObject * Clone() const;
02804 };
02805 
02806 
02807 //
02808 // H222LogicalChannelParameters
02809 //
02810 
02811 class H245_H222LogicalChannelParameters : public PASN_Sequence
02812 {
02813 #ifndef PASN_LEANANDMEAN
02814     PCLASSINFO(H245_H222LogicalChannelParameters, PASN_Sequence);
02815 #endif
02816   public:
02817     H245_H222LogicalChannelParameters(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
02818 
02819     enum OptionalFields {
02820       e_pcr_pid,
02821       e_programDescriptors,
02822       e_streamDescriptors
02823     };
02824 
02825     PASN_Integer m_resourceID;
02826     PASN_Integer m_subChannelID;
02827     PASN_Integer m_pcr_pid;
02828     PASN_OctetString m_programDescriptors;
02829     PASN_OctetString m_streamDescriptors;
02830 
02831     PINDEX GetDataLength() const;
02832     BOOL Decode(PASN_Stream & strm);
02833     void Encode(PASN_Stream & strm) const;
02834 #ifndef PASN_NOPRINTON
02835     void PrintOn(ostream & strm) const;
02836 #endif
02837     Comparison Compare(const PObject & obj) const;
02838     PObject * Clone() const;
02839 };
02840 
02841 
02842 //
02843 // CRCLength
02844 //
02845 
02846 class H245_CRCLength : public PASN_Choice
02847 {
02848 #ifndef PASN_LEANANDMEAN
02849     PCLASSINFO(H245_CRCLength, PASN_Choice);
02850 #endif
02851   public:
02852     H245_CRCLength(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
02853 
02854     enum Choices {
02855       e_crc8bit,
02856       e_crc16bit,
02857       e_crc32bit
02858     };
02859 
02860     BOOL CreateObject();
02861     PObject * Clone() const;
02862 };
02863 
02864 
02865 //
02866 // RedundancyEncodingElement
02867 //
02868 
02869 class H245_RedundancyEncodingElement : public PASN_Sequence
02870 {
02871 #ifndef PASN_LEANANDMEAN
02872     PCLASSINFO(H245_RedundancyEncodingElement, PASN_Sequence);
02873 #endif
02874   public:
02875     H245_RedundancyEncodingElement(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
02876 
02877     enum OptionalFields {
02878       e_payloadType
02879     };
02880 
02881     H245_DataType m_dataType;
02882     PASN_Integer m_payloadType;
02883 
02884     PINDEX GetDataLength() const;
02885     BOOL Decode(PASN_Stream & strm);
02886     void Encode(PASN_Stream & strm) const;
02887 #ifndef PASN_NOPRINTON
02888     void PrintOn(ostream & strm) const;
02889 #endif
02890     Comparison Compare(const PObject & obj) const;
02891     PObject * Clone() const;
02892 };
02893 
02894 
02895 //
02896 // MultiplePayloadStreamElement
02897 //
02898 
02899 class H245_MultiplePayloadStreamElement : public PASN_Sequence
02900 {
02901 #ifndef PASN_LEANANDMEAN
02902     PCLASSINFO(H245_MultiplePayloadStreamElement, PASN_Sequence);
02903 #endif
02904   public:
02905     H245_MultiplePayloadStreamElement(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
02906 
02907     enum OptionalFields {
02908       e_payloadType
02909     };
02910 
02911     H245_DataType m_dataType;
02912     PASN_Integer m_payloadType;
02913 
02914     PINDEX GetDataLength() const;
02915     BOOL Decode(PASN_Stream & strm);
02916     void Encode(PASN_Stream & strm) const;
02917 #ifndef PASN_NOPRINTON
02918     void PrintOn(ostream & strm) const;
02919 #endif
02920     Comparison Compare(const PObject & obj) const;
02921     PObject * Clone() const;
02922 };
02923 
02924 
02925 //
02926 // DepFECData
02927 //
02928 
02929 class H245_DepFECData_rfc2733;
02930 
02931 class H245_DepFECData : public PASN_Choice
02932 {
02933 #ifndef PASN_LEANANDMEAN
02934     PCLASSINFO(H245_DepFECData, PASN_Choice);
02935 #endif
02936   public:
02937     H245_DepFECData(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
02938 
02939     enum Choices {
02940       e_rfc2733
02941     };
02942 
02943 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
02944     operator H245_DepFECData_rfc2733 &() const;
02945 #else
02946     operator H245_DepFECData_rfc2733 &();
02947     operator const H245_DepFECData_rfc2733 &() const;
02948 #endif
02949 
02950     BOOL CreateObject();
02951     PObject * Clone() const;
02952 };
02953 
02954 
02955 //
02956 // FECData
02957 //
02958 
02959 class H245_FECData_rfc2733;
02960 
02961 class H245_FECData : public PASN_Choice
02962 {
02963 #ifndef PASN_LEANANDMEAN
02964     PCLASSINFO(H245_FECData, PASN_Choice);
02965 #endif
02966   public:
02967     H245_FECData(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
02968 
02969     enum Choices {
02970       e_rfc2733
02971     };
02972 
02973 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
02974     operator H245_FECData_rfc2733 &() const;
02975 #else
02976     operator H245_FECData_rfc2733 &();
02977     operator const H245_FECData_rfc2733 &() const;
02978 #endif
02979 
02980     BOOL CreateObject();
02981     PObject * Clone() const;
02982 };
02983 
02984 
02985 //
02986 // TransportAddress
02987 //
02988 
02989 class H245_UnicastAddress;
02990 class H245_MulticastAddress;
02991 
02992 class H245_TransportAddress : public PASN_Choice
02993 {
02994 #ifndef PASN_LEANANDMEAN
02995     PCLASSINFO(H245_TransportAddress, PASN_Choice);
02996 #endif
02997   public:
02998     H245_TransportAddress(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
02999 
03000     enum Choices {
03001       e_unicastAddress,
03002       e_multicastAddress
03003     };
03004 
03005 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
03006     operator H245_UnicastAddress &() const;
03007 #else
03008     operator H245_UnicastAddress &();
03009     operator const H245_UnicastAddress &() const;
03010 #endif
03011 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
03012     operator H245_MulticastAddress &() const;
03013 #else
03014     operator H245_MulticastAddress &();
03015     operator const H245_MulticastAddress &() const;
03016 #endif
03017 
03018     BOOL CreateObject();
03019     PObject * Clone() const;
03020 };
03021 
03022 
03023 //
03024 // UnicastAddress
03025 //
03026 
03027 class H245_UnicastAddress_iPAddress;
03028 class H245_UnicastAddress_iPXAddress;
03029 class H245_UnicastAddress_iP6Address;
03030 class H245_UnicastAddress_iPSourceRouteAddress;
03031 class H245_NonStandardParameter;
03032 
03033 class H245_UnicastAddress : public PASN_Choice
03034 {
03035 #ifndef PASN_LEANANDMEAN
03036     PCLASSINFO(H245_UnicastAddress, PASN_Choice);
03037 #endif
03038   public:
03039     H245_UnicastAddress(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
03040 
03041     enum Choices {
03042       e_iPAddress,
03043       e_iPXAddress,
03044       e_iP6Address,
03045       e_netBios,
03046       e_iPSourceRouteAddress,
03047       e_nsap,
03048       e_nonStandardAddress
03049     };
03050 
03051 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
03052     operator H245_UnicastAddress_iPAddress &() const;
03053 #else
03054     operator H245_UnicastAddress_iPAddress &();
03055     operator const H245_UnicastAddress_iPAddress &() const;
03056 #endif
03057 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
03058     operator H245_UnicastAddress_iPXAddress &() const;
03059 #else
03060     operator H245_UnicastAddress_iPXAddress &();
03061     operator const H245_UnicastAddress_iPXAddress &() const;
03062 #endif
03063 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
03064     operator H245_UnicastAddress_iP6Address &() const;
03065 #else
03066     operator H245_UnicastAddress_iP6Address &();
03067     operator const H245_UnicastAddress_iP6Address &() const;
03068 #endif
03069 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
03070     operator H245_UnicastAddress_iPSourceRouteAddress &() const;
03071 #else
03072     operator H245_UnicastAddress_iPSourceRouteAddress &();
03073     operator const H245_UnicastAddress_iPSourceRouteAddress &() const;
03074 #endif
03075 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
03076     operator H245_NonStandardParameter &() const;
03077 #else
03078     operator H245_NonStandardParameter &();
03079     operator const H245_NonStandardParameter &() const;
03080 #endif
03081 
03082     BOOL CreateObject();
03083     PObject * Clone() const;
03084 };
03085 
03086 
03087 //
03088 // MulticastAddress
03089 //
03090 
03091 class H245_MulticastAddress_iPAddress;
03092 class H245_MulticastAddress_iP6Address;
03093 class H245_NonStandardParameter;
03094 
03095 class H245_MulticastAddress : public PASN_Choice
03096 {
03097 #ifndef PASN_LEANANDMEAN
03098     PCLASSINFO(H245_MulticastAddress, PASN_Choice);
03099 #endif
03100   public:
03101     H245_MulticastAddress(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
03102 
03103     enum Choices {
03104       e_iPAddress,
03105       e_iP6Address,
03106       e_nsap,
03107       e_nonStandardAddress
03108     };
03109 
03110 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
03111     operator H245_MulticastAddress_iPAddress &() const;
03112 #else
03113     operator H245_MulticastAddress_iPAddress &();
03114     operator const H245_MulticastAddress_iPAddress &() const;
03115 #endif
03116 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
03117     operator H245_MulticastAddress_iP6Address &() const;
03118 #else
03119     operator H245_MulticastAddress_iP6Address &();
03120     operator const H245_MulticastAddress_iP6Address &() const;
03121 #endif
03122 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
03123     operator H245_NonStandardParameter &() const;
03124 #else
03125     operator H245_NonStandardParameter &();
03126     operator const H245_NonStandardParameter &() const;
03127 #endif
03128 
03129     BOOL CreateObject();
03130     PObject * Clone() const;
03131 };
03132 
03133 
03134 //
03135 // EscrowData
03136 //
03137 
03138 class H245_EscrowData : public PASN_Sequence
03139 {
03140 #ifndef PASN_LEANANDMEAN
03141     PCLASSINFO(H245_EscrowData, PASN_Sequence);
03142 #endif
03143   public:
03144     H245_EscrowData(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
03145 
03146     PASN_ObjectId m_escrowID;
03147     PASN_BitString m_escrowValue;
03148 
03149     PINDEX GetDataLength() const;
03150     BOOL Decode(PASN_Stream & strm);
03151     void Encode(PASN_Stream & strm) const;
03152 #ifndef PASN_NOPRINTON
03153     void PrintOn(ostream & strm) const;
03154 #endif
03155     Comparison Compare(const PObject & obj) const;
03156     PObject * Clone() const;
03157 };
03158 
03159 
03160 //
03161 // CloseLogicalChannelAck
03162 //
03163 
03164 class H245_CloseLogicalChannelAck : public PASN_Sequence
03165 {
03166 #ifndef PASN_LEANANDMEAN
03167     PCLASSINFO(H245_CloseLogicalChannelAck, PASN_Sequence);
03168 #endif
03169   public:
03170     H245_CloseLogicalChannelAck(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
03171 
03172     H245_LogicalChannelNumber m_forwardLogicalChannelNumber;
03173 
03174     PINDEX GetDataLength() const;
03175     BOOL Decode(PASN_Stream & strm);
03176     void Encode(PASN_Stream & strm) const;
03177 #ifndef PASN_NOPRINTON
03178     void PrintOn(ostream & strm) const;
03179 #endif
03180     Comparison Compare(const PObject & obj) const;
03181     PObject * Clone() const;
03182 };
03183 
03184 
03185 //
03186 // RequestChannelCloseAck
03187 //
03188 
03189 class H245_RequestChannelCloseAck : public PASN_Sequence
03190 {
03191 #ifndef PASN_LEANANDMEAN
03192     PCLASSINFO(H245_RequestChannelCloseAck, PASN_Sequence);
03193 #endif
03194   public:
03195     H245_RequestChannelCloseAck(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
03196 
03197     H245_LogicalChannelNumber m_forwardLogicalChannelNumber;
03198 
03199     PINDEX GetDataLength() const;
03200     BOOL Decode(PASN_Stream & strm);
03201     void Encode(PASN_Stream & strm) const;
03202 #ifndef PASN_NOPRINTON
03203     void PrintOn(ostream & strm) const;
03204 #endif
03205     Comparison Compare(const PObject & obj) const;
03206     PObject * Clone() const;
03207 };
03208 
03209 
03210 //
03211 // RequestChannelCloseRelease
03212 //
03213 
03214 class H245_RequestChannelCloseRelease : public PASN_Sequence
03215 {
03216 #ifndef PASN_LEANANDMEAN
03217     PCLASSINFO(H245_RequestChannelCloseRelease, PASN_Sequence);
03218 #endif
03219   public:
03220     H245_RequestChannelCloseRelease(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
03221 
03222     H245_LogicalChannelNumber m_forwardLogicalChannelNumber;
03223 
03224     PINDEX GetDataLength() const;
03225     BOOL Decode(PASN_Stream & strm);
03226     void Encode(PASN_Stream & strm) const;
03227 #ifndef PASN_NOPRINTON
03228     void PrintOn(ostream & strm) const;
03229 #endif
03230     Comparison Compare(const PObject & obj) const;
03231     PObject * Clone() const;
03232 };
03233 
03234 
03235 //
03236 // MultiplexTableEntryNumber
03237 //
03238 
03239 class H245_MultiplexTableEntryNumber : public PASN_Integer
03240 {
03241 #ifndef PASN_LEANANDMEAN
03242     PCLASSINFO(H245_MultiplexTableEntryNumber, PASN_Integer);
03243 #endif
03244   public:
03245     H245_MultiplexTableEntryNumber(unsigned tag = UniversalInteger, TagClass tagClass = UniversalTagClass);
03246 
03247     H245_MultiplexTableEntryNumber & operator=(int v);
03248     H245_MultiplexTableEntryNumber & operator=(unsigned v);
03249     PObject * Clone() const;
03250 };
03251 
03252 
03253 //
03254 // RequestModeRelease
03255 //
03256 
03257 class H245_RequestModeRelease : public PASN_Sequence
03258 {
03259 #ifndef PASN_LEANANDMEAN
03260     PCLASSINFO(H245_RequestModeRelease, PASN_Sequence);
03261 #endif
03262   public:
03263     H245_RequestModeRelease(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
03264 
03265 
03266     PINDEX GetDataLength() const;
03267     BOOL Decode(PASN_Stream & strm);
03268     void Encode(PASN_Stream & strm) const;
03269 #ifndef PASN_NOPRINTON
03270     void PrintOn(ostream & strm) const;
03271 #endif
03272     PObject * Clone() const;
03273 };
03274 
03275 
03276 //
03277 // ModeDescription
03278 //
03279 
03280 class H245_ModeElement;
03281 
03282 class H245_ModeDescription : public PASN_Array
03283 {
03284 #ifndef PASN_LEANANDMEAN
03285     PCLASSINFO(H245_ModeDescription, PASN_Array);
03286 #endif
03287   public:
03288     H245_ModeDescription(unsigned tag = UniversalSet, TagClass tagClass = UniversalTagClass);
03289 
03290     PASN_Object * CreateObject() const;
03291     H245_ModeElement & operator[](PINDEX i) const;
03292     PObject * Clone() const;
03293 };
03294 
03295 
03296 //
03297 // ModeElementType
03298 //
03299 
03300 class H245_NonStandardParameter;
03301 class H245_VideoMode;
03302 class H245_AudioMode;
03303 class H245_DataMode;
03304 class H245_EncryptionMode;
03305 class H245_H235Mode;
03306 class H245_MultiplexedStreamParameter;
03307 class H245_RedundancyEncodingDTMode;
03308 class H245_MultiplePayloadStreamMode;
03309 class H245_DepFECMode;
03310 class H245_FECMode;
03311 
03312 class H245_ModeElementType : public PASN_Choice
03313 {
03314 #ifndef PASN_LEANANDMEAN
03315     PCLASSINFO(H245_ModeElementType, PASN_Choice);
03316 #endif
03317   public:
03318     H245_ModeElementType(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
03319 
03320     enum Choices {
03321       e_nonStandard,
03322       e_videoMode,
03323       e_audioMode,
03324       e_dataMode,
03325       e_encryptionMode,
03326       e_h235Mode,
03327       e_multiplexedStreamMode,
03328       e_redundancyEncodingDTMode,
03329       e_multiplePayloadStreamMode,
03330       e_depFecMode,
03331       e_fecMode
03332     };
03333 
03334 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
03335     operator H245_NonStandardParameter &() const;
03336 #else
03337     operator H245_NonStandardParameter &();
03338     operator const H245_NonStandardParameter &() const;
03339 #endif
03340 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
03341     operator H245_VideoMode &() const;
03342 #else
03343     operator H245_VideoMode &();
03344     operator const H245_VideoMode &() const;
03345 #endif
03346 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
03347     operator H245_AudioMode &() const;
03348 #else
03349     operator H245_AudioMode &();
03350     operator const H245_AudioMode &() const;
03351 #endif
03352 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
03353     operator H245_DataMode &() const;
03354 #else
03355     operator H245_DataMode &();
03356     operator const H245_DataMode &() const;
03357 #endif
03358 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
03359     operator H245_EncryptionMode &() const;
03360 #else
03361     operator H245_EncryptionMode &();
03362     operator const H245_EncryptionMode &() const;
03363 #endif
03364 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
03365     operator H245_H235Mode &() const;
03366 #else
03367     operator H245_H235Mode &();
03368     operator const H245_H235Mode &() const;
03369 #endif
03370 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
03371     operator H245_MultiplexedStreamParameter &() const;
03372 #else
03373     operator H245_MultiplexedStreamParameter &();
03374     operator const H245_MultiplexedStreamParameter &() const;
03375 #endif
03376 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
03377     operator H245_RedundancyEncodingDTMode &() const;
03378 #else
03379     operator H245_RedundancyEncodingDTMode &();
03380     operator const H245_RedundancyEncodingDTMode &() const;
03381 #endif
03382 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
03383     operator H245_MultiplePayloadStreamMode &() const;
03384 #else
03385     operator H245_MultiplePayloadStreamMode &();
03386     operator const H245_MultiplePayloadStreamMode &() const;
03387 #endif
03388 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
03389     operator H245_DepFECMode &() const;
03390 #else
03391     operator H245_DepFECMode &();
03392     operator const H245_DepFECMode &() const;
03393 #endif
03394 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
03395     operator H245_FECMode &() const;
03396 #else
03397     operator H245_FECMode &();
03398     operator const H245_FECMode &() const;
03399 #endif
03400 
03401     BOOL CreateObject();
03402     PObject * Clone() const;
03403 };
03404 
03405 
03406 //
03407 // MultiplexedStreamModeParameters
03408 //
03409 
03410 class H245_MultiplexedStreamModeParameters : public PASN_Sequence
03411 {
03412 #ifndef PASN_LEANANDMEAN
03413     PCLASSINFO(H245_MultiplexedStreamModeParameters, PASN_Sequence);
03414 #endif
03415   public:
03416     H245_MultiplexedStreamModeParameters(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
03417 
03418     H245_LogicalChannelNumber m_logicalChannelNumber;
03419 
03420     PINDEX GetDataLength() const;
03421     BOOL Decode(PASN_Stream & strm);
03422     void Encode(PASN_Stream & strm) const;
03423 #ifndef PASN_NOPRINTON
03424     void PrintOn(ostream & strm) const;
03425 #endif
03426     Comparison Compare(const PObject & obj) const;
03427     PObject * Clone() const;
03428 };
03429 
03430 
03431 //
03432 // MultiplePayloadStreamElementMode
03433 //
03434 
03435 class H245_MultiplePayloadStreamElementMode : public PASN_Sequence
03436 {
03437 #ifndef PASN_LEANANDMEAN
03438     PCLASSINFO(H245_MultiplePayloadStreamElementMode, PASN_Sequence);
03439 #endif
03440   public:
03441     H245_MultiplePayloadStreamElementMode(unsigned tag = UniversalSequence, TagClass tagClass = UniversalTagClass);
03442 
03443     H245_ModeElementType m_type;
03444 
03445     PINDEX GetDataLength() const;
03446     BOOL Decode(PASN_Stream & strm);
03447     void Encode(PASN_Stream & strm) const;
03448 #ifndef PASN_NOPRINTON
03449     void PrintOn(ostream & strm) const;
03450 #endif
03451     Comparison Compare(const PObject & obj) const;
03452     PObject * Clone() const;
03453 };
03454 
03455 
03456 //
03457 // DepFECMode
03458 //
03459 
03460 class H245_DepFECMode_rfc2733Mode;
03461 
03462 class H245_DepFECMode : public PASN_Choice
03463 {
03464 #ifndef PASN_LEANANDMEAN
03465     PCLASSINFO(H245_DepFECMode, PASN_Choice);
03466 #endif
03467   public:
03468     H245_DepFECMode(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
03469 
03470     enum Choices {
03471       e_rfc2733Mode
03472     };
03473 
03474 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
03475     operator H245_DepFECMode_rfc2733Mode &() const;
03476 #else
03477     operator H245_DepFECMode_rfc2733Mode &();
03478     operator const H245_DepFECMode_rfc2733Mode &() const;
03479 #endif
03480 
03481     BOOL CreateObject();
03482     PObject * Clone() const;
03483 };
03484 
03485 
03486 //
03487 // V76ModeParameters
03488 //
03489 
03490 class H245_V76ModeParameters : public PASN_Choice
03491 {
03492 #ifndef PASN_LEANANDMEAN
03493     PCLASSINFO(H245_V76ModeParameters, PASN_Choice);
03494 #endif
03495   public:
03496     H245_V76ModeParameters(unsigned tag = 0, TagClass tagClass = UniversalTagClass);
03497 
03498     enum Choices {
03499       e_suspendResumewAddress,
03500       e_suspendResumewoAddress
03501     };
03502 
03503     BOOL CreateObject();
03504     PObject * Clone() const;
<