-- IDL module extracted from ITU-T Q Suppl. 28 (12/1999)

// File SPFEEProviderAccess.idl #ifndef spfeeprovideraccess_idl #define spfeeprovideraccess_idl #include "SPFEECommonTypes.idl" #include "SPFEEAccessCommonTypes.idl" #include "SPFEEUserInitial.idl" module SPFEEProviderAccess { typedef string t_DateTimeRegistered; // DRAFT ONLY struct t_RegisteredInterfaceStruct { SPFEECommonTypes::t_InterfaceIndex index; SPFEECommonTypes::t_InterfaceStruct interfaceStruct; // DateTimeRegistered DRAFT ONLY: need some info on when // interface was registered. t_DateTimeRegistered when; SPFEECommonTypes::t_UserCtxtName where; }; typedef sequence<t_RegisteredInterfaceStruct> t_RegisteredInterfaceList; struct t_UserCtxt { SPFEECommonTypes::t_UserCtxtName ctxtName; SPFEEAccessCommonTypes::t_AccessSessionId asId; Object accessIR; // type: i_UserAccess Object terminalIR; // type: i_UserTerminal Object inviteIR; // type: i_UserInvite Object sessionInfoIR; // type: i_UserSessionInfo SPFEEAccessCommonTypes::t_TerminalConfig terminalConfig; }; typedef sequence<t_UserCtxt> t_UserCtxtList; enum t_WhichUserCtxt { CurrentUserCtxt, SpecifiedUserCtxts, AllUserCtxts }; // Implementation Note: // Orbix does not allow the creator of a union to set the // discriminator (switch tag). If true, this union requires // dummy cases for the other enums of t_WhichUserCtxt. union t_SpecifiedUserCtxt switch (t_WhichUserCtxt) { case SpecifiedUserCtxts: SPFEECommonTypes::t_UserCtxtNameList ctxtNames; case CurrentUserCtxt: octet dummy1; case AllUserCtxts: octet dummy2; // value should not be processed }; typedef SPFEECommonTypes::t_MatchProperties t_DiscoverServiceProperties; typedef SPFEECommonTypes::t_MatchProperties t_SubscribedServiceProperties; typedef SPFEECommonTypes::t_MatchProperties t_SessionSearchProperties; typedef SPFEECommonTypes::t_MatchProperties t_AnnouncementSearchProperties; enum t_EndAccessSessionOption { DefaultEndAccessSessionOption, SuspendActiveSessions, SuspendMyParticipationActiveSessions, EndActiveSessions, EndMyParticipationActiveSessions, EndAllSessions, EndMyParticipationAllSessions }; typedef SPFEEAccessCommonTypes::t_AppName t_AppName; typedef SPFEEAccessCommonTypes::t_AppVersion t_AppVersion; typedef SPFEEAccessCommonTypes::t_AppSerialNum t_AppSerialNum; typedef SPFEEAccessCommonTypes::t_AppLicenceNum t_AppLicenceNum; typedef SPFEEAccessCommonTypes::t_ApplicationInfo t_ApplicationInfo; typedef SPFEEAccessCommonTypes::t_StartServiceUAProperties t_StartServiceUAProperties; typedef SPFEEAccessCommonTypes::t_StartServiceSSProperties t_StartServiceSSProperties; // Exceptions enum t_SessionErrorCode { UnknownSessionError, InvalidSessionId, SessionDoesNotExist, InvalidUserSessionState, SessionNotAllowed, SessionNotAccepted, SessionOpNotSupported }; exception e_SessionError { t_SessionErrorCode errorCode; SPFEEAccessCommonTypes::t_UserSessionState state; }; enum t_UserCtxtErrorCode { InvalidUserCtxtName, InvalidUserAccessIR, InvalidUserTerminalIR, InvalidUserInviteIR, InvalidTerminalId, InvalidTerminalType, InvalidNAPId, InvalidNAPType, InvalidTerminalProperty, UserCtxtNotAvailable }; exception e_UserCtxtError { t_UserCtxtErrorCode errorCode; SPFEECommonTypes::t_UserCtxtName ctxtName; SPFEECommonTypes::t_PropertyErrorStruct propertyError; //PropertyError, if errorCode= InvalidTerminalProperty }; enum t_RegisterUserCtxtErrorCode { UnableToRegisterUserCtxt }; exception e_RegisterUserCtxtError { t_RegisterUserCtxtErrorCode errorCode; }; enum t_EndAccessSessionErrorCode { EASE_UnknownError, EASE_InvalidOption, EASE_ActiveSession, EASE_SuspendedSession, EASE_SuspendedParticipation }; exception e_EndAccessSessionError { t_EndAccessSessionErrorCode errorCode; // sessions causing a problem. SPFEECommonTypes::t_SessionIdList sessions; }; // ExceptionCodes t_ServiceErrorCode; // Example of Exception codes definition enum t_ServiceErrorCode { InvalidServiceId, ServiceUnavailable, SessionCreationDenied, SessionNotPossibleDueToUserCtxt }; exception e_ServiceError { t_ServiceErrorCode errorCode; }; // e_StartServiceUAPropertyError & e_StartServiceSSPropertyError // are defined to distinguish property errors in // t_StartServiceUAProperties & t_StartServiceUAProperties respectively exception e_StartServiceUAPropertyError { // use the errorCodes as for e_PropertyError SPFEECommonTypes::t_PropertyErrorStruct propertyError; }; exception e_StartServiceSSPropertyError { // use the errorCodes as for e_PropertyError SPFEECommonTypes::t_PropertyErrorStruct propertyError; }; enum t_ApplicationInfoErrorCode { UnknownAppInfoError, InvalidApplication, // Can't use this application with this // service/session InvalidAppInfo, UnknownAppName, // I didn't recognise your app name InvalidAppName, // I don't understand your app name // (eg. badly formatted) UnknownAppVersion, InvalidAppVersion, InvalidAppSerialNum, InvalidAppLicenceNum, AppPropertyError, AppSessionInterfacesError, AppSessionModelsError, AppSIDescError }; exception e_ApplicationInfoError { t_ApplicationInfoErrorCode errorCode; // t_PropertyErrorStruct: // Contains the t_PropertyName and t_PropertyValue in error, // (if t_ApplicationInfoError.errorCode==AppPropertyError // OR t_PropertyErrorStruct.errorCode==NoPropertyError), // if error is not due to a property SPFEECommonTypes::t_PropertyErrorStruct propertyError; // t_SessionInterfacesErrorStruct // Only used if: // t_AppInfoError.errorCode == AppIntRefInfoError SPFEECommonTypes::t_InterfacesErrorStruct itfsError; }; enum t_AnnouncementErrorCode { InvalidAnnouncementId }; exception e_AnnouncementError { t_AnnouncementErrorCode errorCode; }; interface i_ProviderAccessGetInterfaces { // behaviour // behaviourText // "This interface allows the user domain to get // interfaces exported by this provider domain." // usage // "This interface is not to be exported across // Ret RP. It is inherited into the exported interfaces." void getInterfaceTypes ( in SPFEEAccessCommonTypes::t_AccessSessionSecretId asSecretId, out SPFEECommonTypes::t_InterfaceTypeList itfTypes ) raises ( SPFEEAccessCommonTypes::e_AccessError, SPFEECommonTypes::e_ListError ); void getInterface ( in SPFEEAccessCommonTypes::t_AccessSessionSecretId asSecretId, in SPFEECommonTypes::t_InterfaceTypeName itfType, in SPFEECommonTypes::t_MatchProperties desiredProperties, out SPFEECommonTypes::t_InterfaceStruct itf ) raises ( SPFEEAccessCommonTypes::e_AccessError, SPFEECommonTypes::e_InterfacesError, SPFEECommonTypes::e_PropertyError ); void getInterfaces ( in SPFEEAccessCommonTypes::t_AccessSessionSecretId asSecretId, in SPFEECommonTypes::t_MatchProperties desiredProperties, out SPFEECommonTypes::t_InterfaceList itfs ) raises ( SPFEEAccessCommonTypes::e_AccessError, SPFEECommonTypes::e_PropertyError, SPFEECommonTypes::e_ListError ); }; // i_ProviderAccessGetInterfaces interface i_ProviderAccessRegisterInterfaces { // behaviour // behaviourText // "This interface allows the client to register interfaces // exported by the client domain." // usage // "This interface is not to be exported across Ret RP. // It is inherited into the exported interfaces." // register interfaces to be used only during // current access session void registerInterface ( in SPFEEAccessCommonTypes::t_AccessSessionSecretId asSecretId, inout SPFEECommonTypes::t_RegisterInterfaceStruct itf ) raises ( SPFEEAccessCommonTypes::e_AccessError, SPFEECommonTypes::e_InterfacesError, SPFEECommonTypes::e_RegisterError ); void registerInterfaces ( in SPFEEAccessCommonTypes::t_AccessSessionSecretId asSecretId, inout SPFEECommonTypes::t_RegisterInterfaceList itfs ) raises ( SPFEEAccessCommonTypes::e_AccessError, SPFEECommonTypes::e_InterfacesError, SPFEECommonTypes::e_RegisterError ); // register interfaces which will be accessible // outside the access session. void registerInterfaceOutsideAccessSession ( in SPFEEAccessCommonTypes::t_AccessSessionSecretId asSecretId, inout SPFEECommonTypes::t_RegisterInterfaceStruct itf ) raises ( SPFEEAccessCommonTypes::e_AccessError, SPFEECommonTypes::e_InterfacesError, SPFEECommonTypes::e_RegisterError ); void registerInterfacesOutsideAccessSession ( in SPFEEAccessCommonTypes::t_AccessSessionSecretId asSecretId, inout SPFEECommonTypes::t_RegisterInterfaceList itfs ) raises ( SPFEEAccessCommonTypes::e_AccessError, SPFEECommonTypes::e_InterfacesError, SPFEECommonTypes::e_RegisterError ); void listRegisteredInterfaces ( in SPFEEAccessCommonTypes:: t_AccessSessionSecretId asSecretId, in SPFEEAccessCommonTypes::t_SpecifiedAccessSession as, out t_RegisteredInterfaceList itfs ) raises ( SPFEEAccessCommonTypes::e_AccessError, SPFEEAccessCommonTypes::e_SpecifiedAccessSessionError, SPFEECommonTypes::e_ListError ); void unregisterInterface ( in SPFEEAccessCommonTypes::t_AccessSessionSecretId asSecretId, in SPFEECommonTypes::t_InterfaceIndex index ) raises ( SPFEEAccessCommonTypes::e_AccessError, SPFEECommonTypes::e_InterfacesError, SPFEECommonTypes::e_UnregisterError ); void unregisterInterfaces ( in SPFEEAccessCommonTypes::t_AccessSessionSecretId asSecretId, in SPFEECommonTypes::t_InterfaceIndexList indexes ) raises ( SPFEEAccessCommonTypes::e_AccessError, SPFEECommonTypes::e_InterfacesError, SPFEECommonTypes::e_UnregisterError ); }; // i_ProviderAccessRegisterInterfaces interface i_ProviderAccessInterfaces : i_ProviderAccessGetInterfaces, i_ProviderAccessRegisterInterfaces { // behaviour // behaviourText // "This interface allows the client to get interfaces // exported by this domain, and register interfaces exported // by the client domain." // usage // "This interface is not to be exported across Ret RP. // It is inherited into the exported interfaces." // No additional operations are defined }; // i_ProviderAccessInterfaces interface i_ProviderAccess: i_ProviderAccessInterfaces { // behaviour // behaviourText // "This interface is the place to put operations which should be // shared between i_ProviderNamedAccess and i_ProviderAnonAccess. // Currently none are defined." // usage // "This interface is not to be exported across Ret RP. // It is inherited into the exported interfaces." // No additional operations are defined }; // interface i_ProviderAccess interface i_ProviderNamedAccess : i_ProviderAccess { void setUserCtxt ( in SPFEEAccessCommonTypes::t_AccessSessionSecretId asSecretId, in t_UserCtxt userCtxt ) raises ( SPFEEAccessCommonTypes::e_AccessError, e_UserCtxtError ); void getUserCtxt ( in SPFEEAccessCommonTypes::t_AccessSessionSecretId asSecretId, in SPFEECommonTypes::t_UserCtxtName ctxtName, out t_UserCtxt userCtxt ) raises ( SPFEEAccessCommonTypes::e_AccessError, e_UserCtxtError ); void getUserCtxts ( in SPFEEAccessCommonTypes::t_AccessSessionSecretId asSecretId, in t_SpecifiedUserCtxt ctxt, out t_UserCtxtList userCtxts ) raises ( SPFEEAccessCommonTypes::e_AccessError, e_UserCtxtError, SPFEECommonTypes::e_ListError ); void getUserCtxtsAccessSessions ( in SPFEEAccessCommonTypes::t_AccessSessionSecretId asSecretId, in SPFEEAccessCommonTypes::t_SpecifiedAccessSession as, out t_UserCtxtList userCtxts ) raises ( SPFEEAccessCommonTypes::e_AccessError, SPFEEAccessCommonTypes::e_SpecifiedAccessSessionError, SPFEECommonTypes::e_ListError ); void registerUserCtxtsAccessSessions ( in SPFEEAccessCommonTypes::t_AccessSessionSecretId asSecretId, in SPFEEAccessCommonTypes::t_SpecifiedAccessSession as ) raises ( SPFEEAccessCommonTypes::e_AccessError, SPFEEAccessCommonTypes::e_SpecifiedAccessSessionError, e_RegisterUserCtxtError ); void listAccessSessions ( in SPFEEAccessCommonTypes::t_AccessSessionSecretId asSecretId, out SPFEEAccessCommonTypes::t_AccessSessionList asList ) raises ( SPFEEAccessCommonTypes::e_AccessError, SPFEECommonTypes::e_ListError ); void endAccessSession( in SPFEEAccessCommonTypes::t_AccessSessionSecretId asSecretId, in SPFEEAccessCommonTypes::t_SpecifiedAccessSession as, in t_EndAccessSessionOption option ) raises ( SPFEEAccessCommonTypes::e_AccessError, SPFEEAccessCommonTypes::e_SpecifiedAccessSessionError, e_EndAccessSessionError ); void getUserInfo( in SPFEEAccessCommonTypes::t_AccessSessionSecretId asSecretId, out SPFEEAccessCommonTypes::t_UserInfo userInfo ) raises ( SPFEEAccessCommonTypes::e_AccessError ); void listSubscribedServices ( in SPFEEAccessCommonTypes::t_AccessSessionSecretId asSecretId, in t_SubscribedServiceProperties desiredProperties, out SPFEEAccessCommonTypes::t_ServiceList services ) raises ( SPFEEAccessCommonTypes::e_AccessError, SPFEECommonTypes::e_PropertyError, SPFEECommonTypes::e_ListError ); void discoverServices( in SPFEEAccessCommonTypes::t_AccessSessionSecretId asSecretId, in t_DiscoverServiceProperties desiredProperties, in unsigned long howMany, out SPFEEAccessCommonTypes::t_ServiceList services, // type: i_DiscoverServicesIterator out Object iteratorIR ) raises ( SPFEEAccessCommonTypes::e_AccessError, SPFEECommonTypes::e_PropertyError, SPFEECommonTypes::e_ListError ); void getServiceInfo ( in SPFEEAccessCommonTypes::t_AccessSessionSecretId asSecretId, in SPFEEAccessCommonTypes::t_ServiceId serviceId, in SPFEEProviderAccess::t_SubscribedServiceProperties desiredProperties, out SPFEEAccessCommonTypes::t_ServiceProperties serviceProperties ) raises ( SPFEEAccessCommonTypes::e_AccessError, SPFEEProviderAccess::e_ServiceError ); void listRequiredServiceComponents ( in SPFEEAccessCommonTypes::t_AccessSessionSecretId asSecretId, in SPFEEAccessCommonTypes::t_ServiceId serviceId, in SPFEEAccessCommonTypes::t_TerminalConfig terminalConfig, in SPFEEAccessCommonTypes::t_TerminalInfo terminalInfo, // Example of usage for Java applet download: // name-value pair describing the url of a Java applet // name = "URL" // type = "string" out SPFEECommonTypes::t_PropertyList locations ) raises ( SPFEEAccessCommonTypes::e_AccessError, SPFEEProviderAccess::e_ServiceError ); void listServiceSessions ( in SPFEEAccessCommonTypes::t_AccessSessionSecretId asSecretId, in SPFEEAccessCommonTypes::t_SpecifiedAccessSession as, in t_SessionSearchProperties desiredProperties, out SPFEEAccessCommonTypes::t_SessionList sessions ) raises ( SPFEEAccessCommonTypes::e_AccessError, SPFEEAccessCommonTypes::e_SpecifiedAccessSessionError, SPFEECommonTypes::e_PropertyError, SPFEECommonTypes::e_ListError ); void getSessionModels ( in SPFEEAccessCommonTypes::t_AccessSessionSecretId asSecretId, in SPFEECommonTypes::t_SessionId sessionId, out SPFEECommonTypes::t_SessionModelList sessionModels ) raises ( SPFEEAccessCommonTypes::e_AccessError, e_SessionError, SPFEECommonTypes::e_ListError ); void getSessionInterfaceTypes ( in SPFEEAccessCommonTypes::t_AccessSessionSecretId asSecretId, in SPFEECommonTypes::t_SessionId sessionId, out SPFEECommonTypes::t_InterfaceTypeList itfTypes ) raises ( SPFEEAccessCommonTypes::e_AccessError, e_SessionError, SPFEECommonTypes::e_ListError ); void getSessionInterface ( in SPFEEAccessCommonTypes::t_AccessSessionSecretId asSecretId, in SPFEECommonTypes::t_SessionId sessionId, in SPFEECommonTypes::t_InterfaceTypeName itfType, out SPFEECommonTypes::t_InterfaceStruct itf ) raises ( SPFEEAccessCommonTypes::e_AccessError, e_SessionError, SPFEECommonTypes::e_InterfacesError ); void getSessionInterfaces ( in SPFEEAccessCommonTypes::t_AccessSessionSecretId asSecretId, in SPFEECommonTypes::t_SessionId sessionId, out SPFEECommonTypes::t_InterfaceList itfs ) raises ( SPFEEAccessCommonTypes::e_AccessError, e_SessionError, SPFEECommonTypes::e_ListError ); void listSessionInvitations ( in SPFEEAccessCommonTypes::t_AccessSessionSecretId asSecretId, out SPFEEAccessCommonTypes::t_InvitationList invitations ) raises ( SPFEEAccessCommonTypes::e_AccessError, SPFEECommonTypes::e_ListError ); void listSessionAnnouncements ( in SPFEEAccessCommonTypes::t_AccessSessionSecretId asSecretId, in t_AnnouncementSearchProperties desiredProperties, out SPFEECommonTypes::t_AnnouncementList announcements ) raises ( SPFEEAccessCommonTypes::e_AccessError, SPFEECommonTypes::e_PropertyError, SPFEECommonTypes::e_ListError ); void startService ( in SPFEEAccessCommonTypes::t_AccessSessionSecretId asSecretId, in SPFEEAccessCommonTypes::t_ServiceId serviceId, in t_ApplicationInfo app, in SPFEECommonTypes::t_SessionModelReq sessionModelReq, in t_StartServiceUAProperties uaProperties, in t_StartServiceSSProperties ssProperties, out SPFEEAccessCommonTypes::t_SessionInfo sessionInfo ) raises ( SPFEEAccessCommonTypes::e_AccessError, e_ServiceError, e_ApplicationInfoError, SPFEECommonTypes::e_SessionModelError, e_StartServiceUAPropertyError, e_StartServiceSSPropertyError ); void endSession ( in SPFEEAccessCommonTypes::t_AccessSessionSecretId asSecretId, in SPFEECommonTypes::t_SessionId sessionId ) raises ( SPFEEAccessCommonTypes::e_AccessError, e_SessionError ); void endMyParticipation ( in SPFEEAccessCommonTypes::t_AccessSessionSecretId asSecretId, in SPFEECommonTypes::t_SessionId sessionId ) raises ( SPFEEAccessCommonTypes::e_AccessError, e_SessionError ); void suspendSession ( in SPFEEAccessCommonTypes::t_AccessSessionSecretId asSecretId, in SPFEECommonTypes::t_SessionId sessionId ) raises ( SPFEEAccessCommonTypes::e_AccessError, e_SessionError ); void suspendMyParticipation ( in SPFEEAccessCommonTypes::t_AccessSessionSecretId asSecretId, in SPFEECommonTypes::t_SessionId sessionId ) raises ( SPFEEAccessCommonTypes::e_AccessError, e_SessionError ); void resumeSession ( in SPFEEAccessCommonTypes::t_AccessSessionSecretId asSecretId, in SPFEECommonTypes::t_SessionId sessionId, in t_ApplicationInfo app, out SPFEEAccessCommonTypes::t_SessionInfo sessionInfo ) raises ( SPFEEAccessCommonTypes::e_AccessError, e_SessionError, e_ApplicationInfoError ); void resumeMyParticipation ( in SPFEEAccessCommonTypes::t_AccessSessionSecretId asSecretId, in SPFEECommonTypes::t_SessionId sessionId, in t_ApplicationInfo app, out SPFEEAccessCommonTypes::t_SessionInfo sessionInfo ) raises ( SPFEEAccessCommonTypes::e_AccessError, e_SessionError, e_ApplicationInfoError ); void joinSessionWithInvitation ( in SPFEEAccessCommonTypes::t_AccessSessionSecretId asSecretId, in SPFEEAccessCommonTypes::t_InvitationId invitationId, in t_ApplicationInfo app, in SPFEECommonTypes::t_PropertyList joinProperties, out SPFEEAccessCommonTypes::t_SessionInfo sessionInfo ) raises ( SPFEEAccessCommonTypes::e_AccessError, e_SessionError, SPFEEAccessCommonTypes::e_InvitationError, e_ApplicationInfoError ); void joinSessionWithAnnouncement ( in SPFEEAccessCommonTypes::t_AccessSessionSecretId asSecretId, in SPFEEAccessCommonTypes::t_AnnouncementId announcementId, in t_ApplicationInfo app, in SPFEECommonTypes::t_PropertyList joinProperties, out SPFEEAccessCommonTypes::t_SessionInfo sessionInfo ) raises ( SPFEEAccessCommonTypes::e_AccessError, e_SessionError, e_AnnouncementError, e_ApplicationInfoError ); void replyToInvitation ( in SPFEEAccessCommonTypes::t_AccessSessionSecretId asSecretId, in SPFEEAccessCommonTypes::t_InvitationId invitationId, in SPFEECommonTypes::t_InvitationReply reply ) raises ( SPFEEAccessCommonTypes::e_AccessError, SPFEEAccessCommonTypes::e_InvitationError, SPFEECommonTypes::e_InvitationReplyError ); }; // i_ProviderNamedAccess interface i_ProviderAnonAccess : i_ProviderAccess { // No additional operations defined. }; // i_ProviderAnonAccess interface i_DiscoverServicesIterator { exception e_UnknownDiscoverServicesMaxLeft {}; void maxLeft ( out unsigned long n ) raises ( e_UnknownDiscoverServicesMaxLeft ); // moreLeft: true if there are more interfaces, // (accessible thru the iterator (This interface)), // false if there are no more interfaces to retrieve void nextN ( in unsigned long n, // n >= number returned in services out SPFEEAccessCommonTypes::t_ServiceList services, out boolean moreLeft ) raises ( SPFEECommonTypes::e_ListError ); void destroy (); }; // i_DiscoverServicesIterator }; // module SPFEEProviderAccess #endif