#ifndef GIAS_IDL #define GIAS_IDL //*************************************************************** //* APPROVED via RFC N01-0268 on 6 August 2001 //*************************************************************** //*************************************************************** //* //* The Geospatial and Imagery Access Service //* //* //* Description: Defines the data types and interfaces needed //* to support search, retrieval and access to geospatial //* data such as images, maps charts and their supporting //* data //* //* //* //* History: //* Date Author Comment //* ----- -------- ------------ //* 15 May 97 D. Lutz Initial release for review //* 2 July 97 D. Lutz Released for TEM Review //* 11 July 97 D. Lutz Changes based on 2 July TEM //* 18 July 97 D. Lutz Released for NIMA CCB //* 24 Oct 97 D. Lutz Changes based on 7 Oct TEM //* 14 Nov 97 D. Lutz Changes based on 4 Nov TEM //* 17 Dec 97 D. Lutz Changes based on 9 Dec TEM //* 15 Apr 98 J. Baldo changes based on Mar TEM //* 7 May 98 D.Lutz Changes based on 1 May TEM //* 2 Jul 98 J. Baldo/D. Lutz Changes based //* on 22-23 Jun TEM Requests - GIAS 3.2 //* 2 Jul 98 (J. Baldo): Callback module has been removed //* from previous GIAS 3.2 specification release //* 5 June 1998 and will be included in GIAS 3.3 //* 5 Nov 98 D. Lutz Added first version of UpdateMgr //* //* 10 Mar 99 J. Baldo Changes based on March 99 TEM //* //* 5 August D. Lutz Mods from 3-4 August UIP WG. //* 18 Februray 2000 D. Lutz New Generic Exception Model //* //* //* //* //*************************************************************** //*************************************************************** //* The USIGS Common Object Specification (UCOS) contains //* all the basic data types and interfaces common across //* USIGS //*************************************************************** #include "uco.idl" #include "cb.idl" #include "uid.idl" //*************************************************************** //* //* Module GIAS //* //* //* Description: The main module for the Geospatial & Imagery //* Access Service //* //* //*************************************************************** module GIAS { //Forward references for all interfaces, just for convenience // The Library itself interface Library; // Abstract classes that help define the managers interface LibraryManager; interface RequestManager; interface AccessManager; // Specific managers defined interface OrderMgr; interface CreationMgr; interface UpdateMgr; interface CatalogMgr; interface StandingQueryMgr; interface ProductMgr; interface IngestMgr; interface QueryOrderMgr; interface DataModelMgr; //interface VideoMgr; // The abstract request objects interface Request; // Specific requests defined interface OrderRequest; interface CreateRequest; interface CreateMetaDataRequest; interface UpdateRequest; interface SubmitQueryRequest; interface SubmitStandingQueryRequest; interface SetAvailabilityRequest; interface HitCountRequest; interface GetParametersRequest; interface IngestRequest; interface SubmitQueryOrderRequest; interface GetRelatedFilesRequest; interface CreateAssociationRequest; interface UpdateByQueryRequest; //*************************************************************** //* DataTypes re-used from UCOS //*************************************************************** typedef UCO::NameValueList PropertyList; typedef UCO::Rectangle GeoRegion; enum GeoRegionType { LINE_SAMPLE_FULL, LINE_SAMPLE_CHIP, LAT_LON , ALL, NULL_REGION}; //*************************************************************** //* GIAS specific data types //*************************************************************** enum AvailabilityRequirement { REQUIRED, NOT_REQUIRED }; typedef string UseMode; typedef sequence RsetList; enum OrderType {STANDING, IMMEDIATE}; typedef any ProductSpec; typedef string ProductFormat; typedef string ImageUniqueIdentifier; typedef string ImageFormat; typedef string Compression; typedef short BitsPerPixel; typedef string Algorithm; enum SupportDataEncoding {ASCII, EBCDIC}; typedef sequence < ProductFormat > ProductFormatList; struct ImageSpec { ImageFormat imgform; ImageUniqueIdentifier imageid; Compression comp; BitsPerPixel bpp; Algorithm algo; RsetList rrds; GeoRegion sub_section; GeoRegionType geo_region_type; SupportDataEncoding encoding; }; typedef sequence < ImageSpec > ImageSpecList; struct AlterationSpec { ProductFormat pf; ProductSpec ps; GeoRegion sub_section; GeoRegionType geo_region_type; }; typedef sequence < AlterationSpec > AlterationSpecList; struct PackagingSpec { string package_identifier; string packaging_format_and_compression; }; struct TailoringSpec { UCO::NameNameList specs; }; struct MediaType { string media_type; unsigned short quantity; }; typedef sequence < MediaType > MediaTypeList; struct PhysicalDelivery { string address; }; enum DestinationType { FTP, EMAIL, PHYSICAL }; union Destination switch (DestinationType) { case FTP: UCO::FileLocation f_dest; case EMAIL: UCO::EmailAddress e_dest; case PHYSICAL: PhysicalDelivery h_dest; }; typedef sequence < Destination > DestinationList; struct ValidationResults { boolean valid; boolean warning; string details; }; typedef sequence < ValidationResults > ValidationResultsList; typedef UCO::Name RelatedFileType; typedef sequence RelatedFileTypeList; struct RelatedFile { RelatedFileType file_type; UCO::FileLocation location; }; typedef sequence RelatedFileList; enum ConceptualAttributeType { FOOTPRINT, CLASSIFICATION, OVERVIEW, THUMBNAIL, DATASETTYPE, MODIFICATIONDATE, PRODUCTTITLE, DIRECTACCESS, DIRECTACCESSPROTOCOL, UNIQUEIDENTIFIER, DATASIZE}; typedef string Entity; typedef string ViewName; typedef sequence< ViewName > ViewNameList; struct View { ViewName view_name; boolean orderable; ViewNameList sub_views; }; typedef sequence < View > ViewList; enum DomainType { DATE_VALUE, TEXT_VALUE, INTEGER_VALUE, FLOATING_POINT_VALUE, LIST, ORDERED_LIST, INTEGER_RANGE, FLOATING_POINT_RANGE, GEOGRAPHIC, INTEGER_SET, FLOATING_POINT_SET, GEOGRAPHIC_SET, BINARY_DATA, BOOLEAN_VALUE }; struct DateRange { UCO::AbsTime earliest; UCO::AbsTime latest; }; struct IntegerRange { long lower_bound; long upper_bound; }; struct FloatingPointRange { double lower_bound; double upper_bound; }; typedef sequence < IntegerRange > IntegerRangeList; typedef sequence < FloatingPointRange > FloatingPointRangeList; union Domain switch (DomainType) { case DATE_VALUE: DateRange d; case TEXT_VALUE: unsigned long t; case INTEGER_VALUE: IntegerRange iv; case INTEGER_SET: IntegerRangeList is; case FLOATING_POINT_VALUE: FloatingPointRange fv; case FLOATING_POINT_SET: FloatingPointRangeList fps; case LIST: UCO::NameList l; case ORDERED_LIST: UCO::NameList ol; case INTEGER_RANGE: IntegerRange ir; case FLOATING_POINT_RANGE: FloatingPointRange fr; case GEOGRAPHIC: UCO::Rectangle g; case GEOGRAPHIC_SET: UCO::RectangleList gs; case BINARY_DATA: UCO::BinData bd; case BOOLEAN_VALUE: boolean bv; }; enum AttributeType { TEXT, INTEGER, FLOATING_POINT, UCOS_COORDINATE, UCOS_POLYGON, UCOS_ABS_TIME, UCOS_RECTANGLE, UCOS_SIMPLE_GS_IMAGE, UCOS_SIMPLE_C_IMAGE, UCOS_COMPRESSED_IMAGE, UCOS_HEIGHT, UCOS_ELEVATION, UCOS_DISTANCE, UCOS_PERCENTAGE, UCOS_RATIO, UCOS_ANGLE, UCOS_FILE_SIZE, UCOS_FILE_LOCATION, UCOS_COUNT, UCOS_WEIGHT, UCOS_DATE, UCOS_LINESTRING, UCOS_DATA_RATE, UCOS_BIN_DATA, BOOLEAN_DATA, UCOS_DURATION }; enum RequirementMode { MANDATORY, OPTIONAL }; struct AttributeInformation { string attribute_name; AttributeType attribute_type; Domain attribute_domain; string attribute_units; string attribute_reference; RequirementMode mode; string description; boolean sortable; boolean updateable; }; typedef sequence < AttributeInformation > AttributeInformationList; struct Association { string name; ViewName view_a; ViewName view_b; string description; UCO::Cardinality card; AttributeInformationList attribute_info; }; typedef sequence AssociationList; typedef sequence < Library > LibraryList; typedef string ManagerType; typedef sequence < ManagerType > ManagerTypeList; typedef sequence < Request > RequestList; typedef sequence < UseMode > UseModeList; struct LibraryDescription { string library_name; string library_description; string library_version_number; }; typedef sequence < LibraryDescription > LibraryDescriptionList; struct Query{ ViewName view; string bqs_query; }; typedef UCO::DAGList QueryResults; enum NamedEventType { START_EVENT, STOP_EVENT, FREQUENCY_EVENT }; struct Event { string event_name; NamedEventType event_type; string event_description; }; typedef sequence < Event > EventList; enum DayEvent { MON, TUE, WED, THU, FRI, SAT, SUN, FIRST_OF_MONTH, END_OF_MONTH }; struct DayEventTime { DayEvent day_event; UCO::Time time; }; enum LifeEventType {ABSOLUTE_TIME, DAY_EVENT_TIME, NAMED_EVENT, RELATIVE_TIME}; union LifeEvent switch ( LifeEventType) { case ABSOLUTE_TIME: UCO::AbsTime at; case DAY_EVENT_TIME: DayEventTime day_event; case NAMED_EVENT: string ev; case RELATIVE_TIME: UCO::Time rt; }; typedef sequence < LifeEvent > LifeEventList; struct QueryLifeSpan { LifeEvent start; LifeEvent stop; LifeEventList frequency; }; enum Polarity { ASCENDING, DESCENDING }; struct SortAttribute { UCO::Name attribute_name; Polarity sort_polarity; }; typedef sequence < SortAttribute > SortAttributeList; struct DelayEstimate { unsigned long time_delay; boolean valid_time_delay; }; struct ProductDetails { MediaTypeList mTypes; UCO::NameList benums; AlterationSpec aSpec; UID::Product aProduct; string info_system_name; }; typedef sequence ProductDetailsList; struct DeliveryDetails { Destination dests; string receiver; string shipmentMode; }; typedef sequence < DeliveryDetails > DeliveryDetailsList; struct OrderContents { string originator; TailoringSpec tSpec; PackagingSpec pSpec; UCO::AbsTime needByDate; string operatorNote; short orderPriority; ProductDetailsList prod_list; DeliveryDetailsList del_list; }; struct QueryOrderContents { string originator; TailoringSpec tSpec; PackagingSpec pSpec; string operatorNote; short orderPriority; AlterationSpec aSpec; DeliveryDetailsList del_list; }; struct AccessCriteria { string userID; string password; string licenseKey; }; struct PackageElement { UID::Product prod; UCO::NameList files; }; typedef sequence< PackageElement > PackageElementList; struct DeliveryManifest { string package_name; PackageElementList elements; }; typedef sequence DeliveryManifestList; typedef string CallbackID; //*************************************************************** //* The Exceptions Identifiers //* Note: Three sets of IDL Strings Constants are being used as //* the Exceptions for the GIAS //*************************************************************** // UCO::InvalidInputParameter Exceptions const string BadAccessCriteriaConst = "BadAccessCriteria"; const string BadAccessValueConst = "BadAccessValue"; const string BadCreationAttributeValueConst = "BadCreationAttributeValue"; const string BadEmailAddressConst = "BadEmailAddress"; const string BadGeoRegionConst = "BadGeoRegion"; const string BadLocationConst = "BadLocation"; const string BadPropertyValueConst = "BadPropertyValue"; const string BadQueryConst = "BadQuery"; const string BadQueryAttributeConst = "BadQueryAttribute"; const string BadQueryValueConst = "BadQueryValue"; const string BadTimeConst = "BadTime"; const string BadUseModeConst = "BadUseMode"; const string UnknownCallBackConst = "UnknownCallBack"; const string UnknownCreationAttributeConst = "UnknownCreationAttribute"; const string UnknownManagerTypeConst = "UnknownManagerType"; const string UnknownProductConst = "UnknownProduct"; const string UnknownPropertyConst = "UnknownProperty"; const string UnknownRequestConst = "UnknownRequest"; const string UnregisteredCallbackConst = "UnregisteredCallback"; const string UnknownUseModeConst = "UnknownUseMode"; const string BadOrderConst = "BadOrder"; const string UnknownViewNameConst = "UnknownViewName"; const string UnknownEntityConst = "UnknownEntity"; const string UnsupportedConceptualAttributeConst = "UnsupportedConceptualAttribute"; const string NoValuesRequestedConst = "NoValuesRequested"; const string BadSortAttributeConst = "BadSortAttribute"; const string NonUpdateableAttributeConst = "NonUpdateableAttribute"; const string BadFileTypeConst = "BadFileType"; const string InvalidCardinalityConst = "InvalidCardinality"; const string UnknownAssociationConst = "UnknownAssociation"; const string InvalidObjectConst = "InvalidObject"; const string UnknownCategoryConst = "UnknownCategory"; const string InvalidEventConst = "InvalidEvent"; const string BadResultAttributeConst = "BadResultAttribute"; const string BadUpdateAttributeConst = "BadUpdateAttribute"; const string ImplementationLimitConst = "ImplementationLimit"; // UCO::ProcessingFault Exceptions const string ProductUnavailableConst = "ProductUnavailable"; const string LockUnavailableConst = "LockUnavailable"; const string UnsafeUpdateConst = "UnsafeUpdate"; const string ProductLockedConst = "ProductLocked"; // UCO::SystemFault Exceptions const string GeneralSystemFaultConst = "GeneralSystemFault"; //*************************************************************** //* The Interfaces //*************************************************************** //*************************************************************** //* interface GIAS::Library. //* //* Description: This object represents a Library. It //* provides operations to discover and acquire manager objects, //* which provide access to all the functionality of this //* Library. //* //*************************************************************** interface Library { ManagerTypeList get_manager_types () raises (UCO::ProcessingFault, UCO::SystemFault); LibraryManager get_manager (in ManagerType manager_type, in AccessCriteria access_criteria) raises ( UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault); LibraryDescription get_library_description () raises (UCO::ProcessingFault, UCO::SystemFault); LibraryDescriptionList get_other_libraries (in AccessCriteria access_criteria) raises ( UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault); }; //*************************************************************** //* Interface GIAS::LibraryManager //* //* Description: This (abstract) object defines the basic //* functions common to all types of managers. //* //* //*************************************************************** interface LibraryManager { UCO::NameList get_property_names () raises (UCO::ProcessingFault, UCO::SystemFault); PropertyList get_property_values (in UCO::NameList desired_properties) raises ( UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault); LibraryList get_libraries () raises (UCO::ProcessingFault, UCO::SystemFault); }; //*************************************************************** //* Interface GIAS::RequestManager //* //* Description: This (abstact) object defines the basic //* functions common to managers that use operations that //* generate request objects. //* //* //*************************************************************** interface RequestManager { RequestList get_active_requests () raises (UCO::ProcessingFault, UCO::SystemFault); unsigned long get_default_timeout () raises (UCO::ProcessingFault, UCO::SystemFault); void set_default_timeout (in unsigned long new_default) raises ( UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault); unsigned long get_timeout (in Request aRequest) raises ( UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault); void set_timeout (in Request aRequest, in unsigned long new_lifetime) raises ( UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault); void delete_request (in Request aRequest) raises ( UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault); }; //*************************************************************** //* interface GIAS:: AccessManager //* //* Description: Provides functions to check and request the //* availability of Library products for specific purposes //* //*************************************************************** interface AccessManager:RequestManager { UseModeList get_use_modes () raises (UCO::ProcessingFault, UCO::SystemFault); boolean is_available (in UID::Product product, in UseMode use_mode) raises ( UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault); // Returns the time (in seconds) estimated to put the requested product // into the requested UseMode. DOES NOT request a change in the // availability of product. unsigned long query_availability_delay (in UID::Product product, in AvailabilityRequirement availability_requirement, in UseMode use_mode) raises ( UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault); short get_number_of_priorities() raises (UCO::ProcessingFault, UCO::SystemFault); SetAvailabilityRequest set_availability (in UID::ProductList products, in AvailabilityRequirement availability_requirement, in UseMode use_mode, in short priority) raises ( UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault); }; //*************************************************************** //* The Managers //* //*************************************************************** //*************************************************************** //* interface GIAS::QueryOrderMgr //* Derived from GIAS::LibraryManager and //* GIAS::RequestManager //* //* Description: Provides operations to submit a //* query based order. //* //* //*************************************************************** interface QueryOrderMgr:LibraryManager, RequestManager { EventList get_event_descriptions() raises (UCO::ProcessingFault, UCO::SystemFault); SubmitQueryOrderRequest submit_query_order ( in Query aQuery, in QueryLifeSpan lifespan, in OrderType o_type, in QueryOrderContents order, in PropertyList properties) raises ( UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault); }; //*************************************************************** //* interface GIAS:: VideoMgr //* Derived from GIAS::LibraryManager and GIAS::AccessManager //* //* Description: Provides operations to retrieve video data //* //* NOTE: This interface is TBR. //*************************************************************** //interface VideoMgr : LibraryManager, AccessManager { //}; //*************************************************************** //*************************************************************** //* interface GIAS:: OrderMgr //* Derived from GIAS:: LibraryManager and GIAS::AccessManager //* //* Description: Provides operations to submit orders for Products //* contained in the Library: //* //* //* //*************************************************************** interface OrderMgr:LibraryManager, AccessManager { UCO::NameList get_package_specifications() raises (UCO::ProcessingFault, UCO::SystemFault); ValidationResults validate_order (in OrderContents order, in PropertyList properties) raises ( UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault); OrderRequest order (in OrderContents order, in PropertyList properties) raises ( UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault); }; //*************************************************************** //* interface GIAS:: DataModelMgr //* Derived from GIAS:: LibraryManager //* //* Description: Provides operations to discover the elements of the //* data model in use by the library //* //* //* //*************************************************************** interface DataModelMgr:LibraryManager { UCO::AbsTime get_data_model_date (in PropertyList properties) raises ( UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault); UCO::NameList get_alias_categories(in PropertyList properties) raises ( UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault); UCO::NameNameList get_logical_aliases(in string category, in PropertyList properties) raises( UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault); string get_logical_attribute_name (in ViewName view_name,in ConceptualAttributeType attribute_type, in PropertyList properties) raises ( UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault); ViewList get_view_names (in PropertyList properties) raises ( UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault); AttributeInformationList get_attributes (in ViewName view_name,in PropertyList properties) raises ( UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault); AttributeInformationList get_queryable_attributes (in ViewName view_name,in PropertyList properties) raises ( UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault); UCO::EntityGraph get_entities (in ViewName view_name,in PropertyList properties) raises ( UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault); AttributeInformationList get_entity_attributes (in Entity aEntity,in PropertyList properties) raises ( UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault); AssociationList get_associations(in PropertyList properties) raises ( UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault); unsigned short get_max_vertices(in PropertyList properties) raises ( UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault); }; //*************************************************************** //* interface GIAS:: CreationMgr //* Derived from GIAS::RequestManager and //* GIAS::LibraryManager //* Description: Provides operations to request/nominate the //* archiving and cataloging of a new product to a Library. //* //* //*************************************************************** interface CreationMgr:LibraryManager, RequestManager { CreateRequest create (in UCO::FileLocationList new_product,in RelatedFileList related_files, in UCO::DAG creation_metadata,in PropertyList properties) raises ( UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault); CreateMetaDataRequest create_metadata (in UCO::DAG creation_metadata, in ViewName view_name, in RelatedFileList related_files, in PropertyList properties) raises ( UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault); CreateAssociationRequest create_association( in string assoc_name, in UID::Product view_a_object, in UID::ProductList view_b_objects, in UCO::NameValueList assoc_info) raises ( UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault); }; //*************************************************************** //* interface GIAS:: UpdateMgr //* Derived from GIAS:: LibraryManager, and GIAS::RequestManager //* Description: Provides operations to modify, extend or delete //* existing catalog entries in a GIAS Library. //* //* //*************************************************************** interface UpdateMgr: LibraryManager, RequestManager { void set_lock(in UID::Product lockedProduct) raises( UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault); UpdateRequest update (in ViewName view, in UCO::UpdateDAGList changes, in RelatedFileList relfiles, in PropertyList properties) raises( UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault); UpdateByQueryRequest update_by_query(in UCO::NameValue updated_attribute, in Query bqs_query, in PropertyList properties) raises ( UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault); void release_lock(in UID::Product lockedProduct) raises ( UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault); void delete_product(in UID::Product prod) raises(UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault ); }; //*************************************************************** //* interface GIAS:: CatalogMgr //* Derived from GIAS::LibraryManager and //* GIAS::RequestManager //* //* Description: Provides operations to submit a query for //* processing. //* //* //*************************************************************** interface CatalogMgr:LibraryManager, RequestManager { SubmitQueryRequest submit_query ( in Query aQuery, in UCO::NameList result_attributes, in SortAttributeList sort_attributes, in PropertyList properties) raises ( UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault); HitCountRequest hit_count (in Query aQuery, in PropertyList properties) raises ( UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault); }; //*************************************************************** //* interface GIAS::StandingQueryMgr //* Derived from GIAS::LibraryManager and //* GIAS::RequestManager //* //* Description: Provides operations to submit a //* standing query. //* //* //*************************************************************** interface StandingQueryMgr:LibraryManager, RequestManager { EventList get_event_descriptions() raises (UCO::ProcessingFault, UCO::SystemFault); SubmitStandingQueryRequest submit_standing_query ( in Query aQuery, in UCO::NameList result_attributes, in SortAttributeList sort_attributes, in QueryLifeSpan lifespan, in PropertyList properties) raises ( UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault); }; //*************************************************************** //* interface GIAS:: ProductMgr //* Derived from GIAS::LibraryManager and GIAS::AccessManager //* //* Description: Provides operations to retrieve data about a //* specific data set. //* //* //*************************************************************** interface ProductMgr:LibraryManager, AccessManager { GetParametersRequest get_parameters (in UID::Product product, in UCO::NameList desired_parameters, in PropertyList properties) raises ( UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault); RelatedFileTypeList get_related_file_types( in UID::Product prod) raises ( UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault); GetRelatedFilesRequest get_related_files ( in UID::ProductList products, in UCO::FileLocation location, in RelatedFileType type, in PropertyList properties ) raises ( UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault ); }; //*************************************************************** //* interface GIAS:: IngestMgr //* Derived from GIAS::LibraryManager and //* GIAS::RequestManager //* //* Description: Provides operations to perform bulk transfers //* of data between Libraries. //* //* //*************************************************************** interface IngestMgr:LibraryManager, RequestManager { // FileLocation contains a directory IngestRequest bulk_pull (in UCO::FileLocation location, in PropertyList property_list) raises ( UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault); // FileLocation contains a directory IngestRequest bulk_push (in Query aQuery, in UCO::FileLocation location, in PropertyList property_list) raises ( UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault); }; //*************************************************************** //* interface GIAS:: Request //* //* Description: An (abstract) object that provides operations //* common to all forms of requests. //* //* //*************************************************************** interface Request { UCO::RequestDescription get_request_description () raises (UCO::ProcessingFault, UCO::SystemFault); void set_user_info (in string message) raises ( UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault); UCO::Status get_status () raises (UCO::ProcessingFault, UCO::SystemFault); DelayEstimate get_remaining_delay () raises (UCO::ProcessingFault, UCO::SystemFault); void cancel () raises (UCO::ProcessingFault, UCO::SystemFault); CallbackID register_callback (in CB::Callback acallback) raises ( UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault); void free_callback (in CallbackID id) raises ( UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault); RequestManager get_request_manager () raises (UCO::ProcessingFault, UCO::SystemFault); }; //*************************************************************** //* interface GIAS:: OrderRequest //* Derived from GIAS::Request //* Description: Returned by calls to order. //* //* //*************************************************************** interface OrderRequest:Request { UCO::State complete (out DeliveryManifest prods) raises (UCO::ProcessingFault, UCO::SystemFault); }; //*************************************************************** //* interface GIAS:: SubmitQueryOrderRequest //* Derived from GIAS::Request //* Description: Returned by calls to submit_query_order. //* //* //*************************************************************** interface SubmitQueryOrderRequest:Request { void pause() raises (UCO::ProcessingFault, UCO::SystemFault); void resume() raises (UCO::ProcessingFault, UCO::SystemFault); UCO::State complete_list (out DeliveryManifestList prods) raises (UCO::ProcessingFault, UCO::SystemFault); UCO::State complete (out DeliveryManifest prods) raises (UCO::ProcessingFault, UCO::SystemFault); }; //*************************************************************** //*************************************************************** //* interface GIAS:: CreateRequest //* Derived from GIAS::Request //* //* Description: Returned by calls to create //* //* //*************************************************************** interface CreateRequest:Request { UCO::State complete (out UID::ProductList new_products) raises (UCO::ProcessingFault, UCO::SystemFault); }; //*************************************************************** //* interface GIAS:: CreateMetaDataRequest //* Derived from GIAS::Request //* //* Description: Returned by calls to create_metadata //* //* //*************************************************************** interface CreateMetaDataRequest:Request { UCO::State complete (out UID::Product new_product) raises (UCO::ProcessingFault, UCO::SystemFault); }; //*************************************************************** //* interface GIAS:: UpdateRequest //* Derived from GIAS::Request //* //* Description: Returned by calls to update //* //* //*************************************************************** interface UpdateRequest:Request { UCO::State complete () raises (UCO::ProcessingFault, UCO::SystemFault); }; //*************************************************************** //* interface GIAS:: SubmitQueryRequest //* Derived from GIAS::Request //* //* Description: Returned by calls to query //* //* //*************************************************************** interface SubmitQueryRequest:Request { void set_number_of_hits (in unsigned long hits) raises ( UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault); UCO::State complete_DAG_results (out QueryResults results) raises (UCO::ProcessingFault, UCO::SystemFault); UCO::State complete_stringDAG_results (out UCO::StringDAGList results) raises (UCO::ProcessingFault, UCO::SystemFault); UCO::State complete_XML_results (out UCO::XMLDocument results) raises (UCO::ProcessingFault, UCO::SystemFault); }; //*************************************************************** //* interface GIAS:: SubmitStandingQueryRequest //* Derived from GIAS::Request //* //* Description: Returned by calls to submit_standing_query //* //* //*************************************************************** interface SubmitStandingQueryRequest:Request { void set_number_of_hits (in unsigned long hits) raises ( UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault); unsigned long get_number_of_hits() raises (UCO::ProcessingFault, UCO::SystemFault); unsigned long get_number_of_hits_in_interval(in unsigned long interval) raises ( UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault); unsigned long get_number_of_intervals() raises (UCO::ProcessingFault, UCO::SystemFault); void clear_all() raises (UCO::ProcessingFault, UCO::SystemFault); void clear_intervals(in unsigned long num_intervals) raises ( UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault); void clear_before(in UCO::Time relative_time) raises ( UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault); void pause() raises (UCO::ProcessingFault, UCO::SystemFault); void resume() raises (UCO::ProcessingFault, UCO::SystemFault); UCO::AbsTime get_time_last_executed() raises (UCO::ProcessingFault, UCO::SystemFault); UCO::AbsTime get_time_next_execution() raises (UCO::ProcessingFault, UCO::SystemFault); UCO::State complete_DAG_results (out QueryResults results) raises (UCO::ProcessingFault, UCO::SystemFault); UCO::State complete_stringDAG_results (out UCO::StringDAGList results) raises (UCO::ProcessingFault, UCO::SystemFault); UCO::State complete_XML_results (out UCO::XMLDocument results) raises (UCO::ProcessingFault, UCO::SystemFault); }; //*************************************************************** //* interface GIAS:: SetAvailabilityRequest //* Derived from GIAS::Request //* //* Description: Returned by calls to makeAvailable //* //* ` //*************************************************************** interface SetAvailabilityRequest:Request { UCO::State complete () raises (UCO::ProcessingFault, UCO::SystemFault); }; //*************************************************************** //* interface GIAS:: HitCountRequest //* Derived from GIAS::Request //* //* Description: Returned by calls to Hitcount //* //* //*************************************************************** interface HitCountRequest:Request { UCO::State complete (out unsigned long number_of_hits) raises (UCO::ProcessingFault, UCO::SystemFault); }; //*************************************************************** //* interface GIAS:: GetParametersRequest //* Derived from GIAS::Request //* //* Description: Returned by calls to get_parameters //* //* //*************************************************************** interface GetParametersRequest:Request { UCO::State complete (out UCO::DAG parameters) raises (UCO::ProcessingFault, UCO::SystemFault); UCO::State complete_StringDAG (out UCO::StringDAG parameters) raises (UCO::ProcessingFault, UCO::SystemFault); }; //*************************************************************** //* interface GIAS:: IngestRequest //* Derived from GIAS::Request //* //* Description: Returned by calls to bulk_push and bulk_pull //* //* //*************************************************************** interface IngestRequest:Request { UCO::State complete () raises (UCO::ProcessingFault, UCO::SystemFault); }; //*************************************************************** //* interface GIAS:: GetRelatedFilesRequest //* Derived from GIAS::Request //* //* Description: Returned by calls to get_related_files //* //* //*************************************************************** interface GetRelatedFilesRequest:Request { UCO::State complete (out UCO::NameList locations) raises (UCO::ProcessingFault, UCO::SystemFault); }; //*************************************************************** //* interface GIAS:: CreateAssociationRequest //* Derived from GIAS::Request //* //* Description: Returned by calls to create_association //* //* //*************************************************************** interface CreateAssociationRequest:Request { UCO::State complete () raises (UCO::ProcessingFault, UCO::SystemFault); }; //******************************************************************* //* interface GIAS::UpdateByQueryRequest //* Derived from GIAS::Request //* Description: Returned by calls to update_by_query //* //******************************************************************* interface UpdateByQueryRequest:Request { UCO::State complete () raises (UCO::ProcessingFault, UCO::SystemFault); }; }; #endif