// File: ATLAS.idl #ifndef _ATLAS_IDL_ #define _ATLAS_IDL_ #include //#include #include #include #pragma prefix "omg.org" module ATLAS { typedef sequence ExpiryTime; typedef sequence IdTokenOption; struct AuthTokenData { IdTokenOption ident_token; CSI::AuthorizationToken auth_token; ExpiryTime expiry_time; }; exception IllegalTokenRequest { unsigned long the_errnum; string the_reason; }; exception TokenOkay { }; interface AuthTokenDispenser { AuthTokenData get_my_authorization_token() raises (IllegalTokenRequest); AuthTokenData translate_authorization_token (in CSI::IdentityToken the_subject, in CSI::AuthorizationToken the_token) raises (IllegalTokenRequest, TokenOkay); }; // struct CosNamingLocator { // CosNaming::NamingContext name_service; // CosNaming::Name the_name; // }; // // This type specifies a string encoded in UTF-8 form [IETF RFC 2044]. // typedef sequence UTF8String; // typedef CosNaming::NamingContextExt::URLString URLocator; typedef unsigned long ATLASLocatorType; const ATLASLocatorType ATLASCosNaming = 1; const ATLASLocatorType ATLASURL = 2; const ATLASLocatorType ATLASObject = 3; union ATLASLocator switch (ATLASLocatorType) { // case ATLASCosNaming: CosNamingLocator naming_locator; // case ATLASURL: URLocator the_url; case ATLASObject: AuthTokenDispenser the_dispenser; }; typedef sequence ATLASCacheId; struct ATLASProfile { ATLASLocator the_locator; ATLASCacheId the_cache_id; }; const CSIIOP::ServiceConfigurationSyntax SCS_ATLAS = 3; }; #endif // _ATLAS_IDL_