-- 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