aboutsummaryrefslogtreecommitdiffstats
path: root/idl
diff options
context:
space:
mode:
authorgal <graeme.lunt@smhs.co.uk>2015-04-07 09:35:16 +0100
committerAnders Broman <a.broman58@gmail.com>2015-04-14 06:10:15 +0000
commit085e95a3adfbe84432910a5e7f7c3c3127c244cc (patch)
treef351525358f026c85e1745bbc16d30d4f3cab86f /idl
parent4c52738243215409ee93db845d98a817c1a0450a (diff)
Geospatial and Imagery Access Service (GIAS) Dissector
A Corba (GIOP) based protocol for the exchange of Intelligence, Surveillance and Reconnaissance (ISR) products. Defined in STANAG 4559/AEDP-5 "NATO Standard ISR Library Interface (NSILI)" See http://www.nato.int/structur/ac/224/standard/4559/4559.htm for more information. The dissector is generated using idl2wrs using the gias.idl, with some manual corrections, as noted in README.gias. Patch Set 4: Initialise uninitialised variables and no longer mark them as unused. Change-Id: Ieae93a135b30078f2d34e66f8c7b2e476438224e Reviewed-on: https://code.wireshark.org/review/7965 Petri-Dish: Alexis La Goutte <alexis.lagoutte@gmail.com> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Anders Broman <a.broman58@gmail.com>
Diffstat (limited to 'idl')
-rw-r--r--idl/gias/README.gias33
-rw-r--r--idl/gias/cb.idl34
-rw-r--r--idl/gias/gias.idl1271
-rw-r--r--idl/gias/ps.idl979
-rw-r--r--idl/gias/uco.idl417
-rw-r--r--idl/gias/uid.idl38
6 files changed, 2772 insertions, 0 deletions
diff --git a/idl/gias/README.gias b/idl/gias/README.gias
new file mode 100644
index 0000000000..a44b50c126
--- /dev/null
+++ b/idl/gias/README.gias
@@ -0,0 +1,33 @@
+Geospatial and Imagery Access Service (GIAS)
+
+see http://www.nato.int/structur/AC/224/standard/4559/4559_documents/4559_GIAS351_Approved_nu.pdf
+
+To generate the gias dissector from the .idl documents run:
+
+omniidl -p ../../tools -b wireshark_be gias.idl
+
+(Note this is similar to the command that idl2wrs would run but explicitly identifies the backend is to be used.)
+
+The gias.idl file includes all the other .idl files to create one
+dissector for gias.
+
+Note that due to a bug in ommniidl, the following needs to be manually added to the generated dissector:
+
+Errors
+======
+
+Define the heading field:
+static int hf_UCO_InvalidInputParameter_badInputParameters = -1;
+
+Register the headings fields:
+{&hf_UCO_CompressedImage_data_loop, {"Seq length of CompressedImage_data","giop-gias.CompressedImage.data.size",FT_UINT32,BASE_DEC,NULL,0x0,NULL,
+{&hf_UCO_Buffer_octet_buffer_loop, {"Seq length of Buffer_octet_buffer","giop-gias.UCO.Buffer.octet_buffer.size",FT_UINT32,BASE_DEC,NULL,0x0,NULL,HFILL}},
+{&hf_GIAS_Domain_bd_loop, {"Seq length of Domain_bd","giop-gias.GIAS.Domain.bd.size",FT_UINT32,BASE_DEC,NULL,0x0,NULL,HFILL}},
+
+Warnings
+========
+
+Make the following 3 variables const gchar * :
+binary_seq_UCO_CompressedImage_data
+binary_seq_UCO_Buffer_octet_buffer
+binary_seq_GIAS_Domain_bd
diff --git a/idl/gias/cb.idl b/idl/gias/cb.idl
new file mode 100644
index 0000000000..90da87fef2
--- /dev/null
+++ b/idl/gias/cb.idl
@@ -0,0 +1,34 @@
+#ifndef CB_IDL
+#define CB_IDL
+
+//***************************************************************
+ //* APPROVED via RFC N01-0268 on 6 August 2001
+//***************************************************************
+
+
+//***************************************************************
+ //* interface GIAS::Callback
+ //*
+ //* Description: General callback interface
+ //*
+ //* NOTE: The Callback interface is implemented on the
+ //* "client" side to allow "servers" to notify clients of
+ //* completion of requests.
+ //*
+ //* NOTE: Callback module is now compiled as a separate IDL file.
+ //* This will be changed in GIAS 3.3
+ //***************************************************************
+#include "uco.idl"
+
+module CB
+{
+interface Callback
+ {
+ void notify (in UCO::State theState, in UCO::RequestDescription description)
+ raises ( UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault);
+
+ void release ()
+ raises (UCO::ProcessingFault, UCO::SystemFault);
+ };
+};
+#endif
diff --git a/idl/gias/gias.idl b/idl/gias/gias.idl
new file mode 100644
index 0000000000..89aa20bbaa
--- /dev/null
+++ b/idl/gias/gias.idl
@@ -0,0 +1,1271 @@
+#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 &amp; 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 <short> 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<RelatedFileType> RelatedFileTypeList;
+struct RelatedFile
+ {
+ RelatedFileType file_type;
+ UCO::FileLocation location;
+ };
+typedef sequence <RelatedFile> 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 <Association> 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 <ProductDetails> 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<DeliveryManifest> 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
diff --git a/idl/gias/ps.idl b/idl/gias/ps.idl
new file mode 100644
index 0000000000..08691f5022
--- /dev/null
+++ b/idl/gias/ps.idl
@@ -0,0 +1,979 @@
+#ifndef PS_IDL
+#define PS_IDL
+
+//***************************************************************
+ //* APPROVED via RFC N01-0268 on 6 August 2001
+//***************************************************************
+
+//*****************************************************************
+ // FILE: profile.idl
+ //
+ //
+ //
+ // DESCRIPTION: Profile Service
+ //
+ // Defines the data types and interfaces needed to support search,
+ // retrieval and access to user, node, and system profiles.
+ //
+ // LIMITATIONS:
+ //
+ //
+ // SOFTWARE HISTORY:
+ //
+ //<
+ //***************************************************************************
+
+ #include "uco.idl"
+ #include "gias.idl"
+
+ //***************************************************************************
+ // MODULE: PS
+ //> The main module for the Profile Service
+ //<
+ //***************************************************************************
+ module PS
+ {
+
+//***************************************************************
+//* The Exception Identifiers for Profile Service (PS) Module
+//***************************************************************
+
+ const string UnknownProfileElementTypeConst = "UnknownProfileElementType";
+ const string BadAccessCriteriaConst = "BadAccessCriteria";
+ const string BadProfileElementConst = "BadProfileElement";
+ const string BadAccessValueConst = "BadAccessValue";
+ const string PasswordExpiredConst = "PasswordExpired";
+ const string InvalidOrderConst = "InvalidOrder";
+ const string InvalidQueryConst = "InvalidQuery";
+ const string UnknownOperationConst = "UnknownOperation";
+ const string VolumeReadAccessDeniedConst = "VolumeReadAccessDenied";
+ const string VolumeWriteAccessDeniedConst = "VolumeWriteAccessDenied";
+ const string FolderNotEmptyConst = "FolderNotEmpty";
+ const string FolderExistsConst = "FolderExists";
+ const string UnknownFolderItemTypeConst = "UnknownFolderItemType";
+ const string UnknownVolumeConst = "UnknownVolume";
+ const string UnknownPRIDConst = "UnknownPRID";
+ const string PermissionDeniedConst = "PermissionDenied";
+ const string BadFileLocationConst = "BadFileLocation";
+ const string SystemFaultConst = "SystemFault";
+
+ typedef string ProfileElementType;
+
+ typedef sequence <ProfileElementType> ProfileElementTypeList;
+
+ //***
+ // Forward References
+ //***
+ interface ProfileMgr;
+ interface Profile;
+ interface ProfileElement;
+
+ //***
+ // Forward References to the specific ProfileElements
+ //***
+ interface BasicProfile;
+ interface GIASProfile;
+ interface SecureProfile;
+ interface SecureViewProfile;
+
+ //**************************************************************************
+ // INTERFACE: ProfileMgr
+ //> The ProfileMgr provides access control to Profile objects
+ //<
+ //**************************************************************************
+ interface ProfileMgr
+ {
+ Profile get_profile(in UCO::NameValueList access_criteria)
+ raises (UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault);
+ //> Returns the Profile for the user identified in access_criteria.
+ //<
+
+ string get_version()
+ raises (UCO::ProcessingFault, UCO::SystemFault);
+ //> Returns the version of this Profile manager.
+ //<
+
+ void set_user_password
+ (in UCO::NameValueList access_criteria,
+ in string new_password)
+ raises (UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault);
+
+ };
+
+ //**************************************************************************
+ // INTERFACE: Profile
+ //> The Profile object provides access to the contents of a Profile
+ // by serving as a container for ProfileElement objects of different types.
+ //<
+ //**************************************************************************
+ interface Profile
+ {
+ ProfileElementTypeList get_profile_element_types()
+ raises (UCO::ProcessingFault, UCO::SystemFault);
+
+ //> Returns a list of all ProfileElementTypes contained in this Profile.
+ //<
+
+ ProfileElement get_profile_element(in ProfileElementType element_type)
+ raises (UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault);
+ //> Returns the ProfileElement of the specified type.
+ //<
+
+ SecureProfile get_secure_profile_element
+ (in UCO::NameValueList trusted_access_criteria)
+ raises (UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault);
+ //> This operation returns the secure profile element that contains
+ // user security information that does not change across views.
+ // The trusted access criteria limits the availability of this
+ // information. If the access criteria does not contain expected names,
+ // the operation will return a BadAccessCriteria exception identifier. If the access
+ // criteria does not contain expected values, the operation will return a
+ // BadAccessValue exception identifier.
+ //<
+
+ SecureViewProfile get_secure_view_profile_element
+ (in UCO::NameValueList trusted_access_criteria,
+ in GIAS::ViewName view)
+ raises (UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault);
+ //> This method returns the secure profile element that contains
+ // user security information that is view specific. The
+ // trusted access criteria limits the availability of this
+ // information. If the access criteria does not contain expected names,
+ // the operation will return a BadAccessCriteria exception identifier. If the access
+ // criteria does not contain expected values, the operation will return a
+ // BadAccessValue exception identifier.
+ //<
+
+ UCO::AbsTime get_last_update_time()
+ raises (UCO::ProcessingFault, UCO::SystemFault);
+ //> Returns the time the Profile was last changed.
+ //<
+
+ void get_profiled_views(out UCO::NameList view_list)
+ raises (UCO::ProcessingFault, UCO::SystemFault);
+ //> Returns a list of views that are valid for a particular profile
+ //<
+
+ };
+
+
+ //**************************************************************************
+ // INTERFACE ProfileElement
+ //> The ProfileElement object serves as the base abstract class for all
+ // types of content objects in a Profile. It contains operations common to
+ // all types of ProfileElement objects.
+ //<
+ //**************************************************************************
+ interface ProfileElement
+ {
+ UCO::AbsTime get_last_update_time()
+ raises (UCO::ProcessingFault, UCO::SystemFault);
+ //> Returns the time this ProfileElement was last changed.
+ //<
+ };
+
+
+ //**************************************************************************
+ // INTERFACE: BasicProfile
+ //
+ //> The BasicProfile object is a specialization of the ProfileElement
+ // object to support all types of users. It contains operations and
+ // types common to all types of users.
+ //<
+ //**************************************************************************
+ interface BasicProfile : ProfileElement
+ {
+
+ struct TelephoneNumber
+ {
+ string name;
+ string number;
+ };
+
+ typedef sequence<TelephoneNumber> TelephoneNumberList;
+
+ struct UserInformation
+ {
+ string name;
+ string organization;
+ string address;
+ string city;
+ string state;
+ string zip;
+ string country;
+ string email;
+ TelephoneNumberList phone_numbers;
+ UCO::FileLocation ftp_location;
+ UCO::AbsTime password_expiration;
+
+ };
+
+ struct UserPreference
+ {
+ string name;
+ string value;
+ boolean editable;
+ string description;
+ };
+
+ typedef sequence<UserPreference> UserPreferenceList;
+
+
+ typedef sequence<string> PreferenceNameList;
+
+ struct UserPreferenceDomain
+ {
+ GIAS::Domain adomain;
+ boolean multi_select;
+ };
+
+ struct SecurityInformation
+ {
+ string classification;
+ boolean security_administrator_flag;
+ };
+
+ void get_user_information (out UserInformation info)
+ raises (UCO::ProcessingFault, UCO::SystemFault);
+
+ void set_user_information (in UserInformation info)
+ raises (UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault);
+
+ void get_security_information (out SecurityInformation info)
+ raises (UCO::ProcessingFault, UCO::SystemFault);
+
+ void get_available_preferences (out PreferenceNameList names)
+ raises (UCO::ProcessingFault, UCO::SystemFault);
+
+ void get_preference_domain (in string preference_name,
+ out GIAS::Domain domain)
+ raises (UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault);
+
+ void get_user_preference (in string preference_name,
+ out UserPreference preference)
+ raises (UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault);
+
+ void get_user_preferences (out UserPreferenceList list)
+ raises (UCO::ProcessingFault, UCO::SystemFault);
+
+ void set_user_preference (in UserPreference preference)
+ raises (UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault);
+
+ void set_user_preferences (in UserPreferenceList preferences)
+ raises (UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault);
+
+ };
+
+ //**************************************************************************
+ // INTERFACE: SecureProfile
+ //
+ //> The SecureProfile object is a specialization of the ProfileElement
+ // object to support basic security information access.
+ //<
+ //**************************************************************************
+ interface SecureProfile : ProfileElement
+ {
+ //***
+ // Authorization Information
+ //***
+
+ struct Authorization
+ {
+ string authorization_classification;
+ UCO::NameList exception_country_list;
+ UCO::NameList releasable_country_list;
+ UCO::NameList releasable_org_list;
+ UCO::NameList distribution_limit_code_list;
+ UCO::NameList access_agreement_list;
+ UCO::NameList compartment_list;
+ };
+ //> This data structure holds the elements that constitute
+ // a discretionary access authorization for the user.
+ //<
+
+ void get_authorization
+ (out Authorization aauthorization)
+ raises (UCO::ProcessingFault, UCO::SystemFault);
+ //> This operation returns the authorization information.
+ //<
+
+ void get_authorization_classification
+ (out string classification)
+ raises (UCO::ProcessingFault, UCO::SystemFault);
+ //> This operation returns a user's authorization classification level.
+ //<
+
+ void get_exception_by_countries
+ (out UCO::NameList country_list)
+ raises (UCO::ProcessingFault, UCO::SystemFault);
+
+ //> This operation returns the exception by country list.
+ //<
+
+ void get_releasable_countries
+ (out UCO::NameList country_list)
+ raises (UCO::ProcessingFault, UCO::SystemFault);
+
+ //> This operation returns the releasable country list.
+ //<
+
+ void get_releasable_organizations
+ (out UCO::NameList organization_list)
+ raises (UCO::ProcessingFault, UCO::SystemFault);
+
+ //> This operation returns the releasable organization list.
+ //<
+
+ void get_distribution_limitation_codes
+ (out UCO::NameList code_list)
+ raises (UCO::ProcessingFault, UCO::SystemFault);
+
+ //> This operation returns the distribution limitation code list.
+ //<
+
+ void get_access_agreements
+ (out UCO::NameList agreement_list)
+ raises (UCO::ProcessingFault, UCO::SystemFault);
+
+ //> This operation returns the access agreement list.
+ //<
+
+ void get_compartments
+ (out UCO::NameList compartment_list)
+ raises (UCO::ProcessingFault, UCO::SystemFault);
+
+ //> This operation returns the compartment list for the user.
+ //<
+
+ //***
+ // Attribute/entity Restriction Information
+ //***
+
+ enum AccessType {READ_DENIED, WRITE_DENIED};
+
+ void get_restricted_attributes
+ (in AccessType access_type,
+ out UCO::NameList attribute_list)
+ raises (UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault);
+ //> This operation returns the restricted attribute identifiers
+ // for the user relative to a specific view.
+ //<
+
+ void get_restricted_entities
+ (in AccessType access_type,
+ out UCO::NameList entity_list)
+ raises (UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault);
+ //> This operation returns the restricted entity identifiers
+ // for the user relative to a specific view.
+ //<
+
+
+ };
+
+ //**************************************************************************
+ // INTERFACE: SecureViewProfile
+ //
+ //> The SecureViewProfile object is a specialization of the SecureProfile
+ // object to support view-oriented security information access.
+ //<
+ //**************************************************************************
+ interface SecureViewProfile : SecureProfile
+ {
+ //***
+ // Authorization Information
+ //***
+
+ boolean use_authorization()
+ raises (UCO::ProcessingFault, UCO::SystemFault);
+
+ //> This operation returns a true indication if the authorizaton
+ // is to be used for discretionary access control for
+ // the specified view.
+ //<
+
+
+ //***
+ // Attribute Value Restriction Information
+ //***
+
+ void get_restricted_attribute_values
+ (out string restriction)
+ raises (UCO::ProcessingFault, UCO::SystemFault);
+ //> This operation returns the restricted attribute value
+ // string for the user relative to a specific view.
+ //<
+ };
+
+
+ //**************************************************************************
+ // INTERFACE: GIASProfile
+ //
+ //> The GIASProfile object is a specialization of the ProfileElement
+ // object to support users of GIAS Libraries. It contains methods and
+ // types specific to GIAS libraries operations.
+ //<
+ //**************************************************************************
+ interface GIASProfile : ProfileElement
+ {
+
+
+ //***
+ // Defines a profile id used to uniquely identify objects within the
+ // user profile
+ //***
+ typedef string PRID;
+ typedef sequence <PRID> PRIDList;
+
+ void get_allowable_operations(out UCO::NameList operation_list)
+ raises (UCO::ProcessingFault, UCO::SystemFault);
+ //> This operation returns a list of the allowable operations for
+ // a particular user.
+ //<
+
+ boolean operation_is_allowed (in string operation)
+ raises (UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault);
+ //> This operation returns TRUE if the specified manager is
+ // accessible by the user, otherwise FALSE is returned.
+ //<
+
+ typedef string FolderTree;
+ // string defined as: \folder1\folder2\folder3\etc...
+ // An empty string or '\' denotes the root folder.
+
+ struct FolderLocation
+ {
+ string volume;
+ FolderTree folder;
+ };
+
+ struct VolumeInfo
+ {
+ boolean default_volume;
+ string volume;
+ boolean read_permission;
+ boolean write_permission;
+ boolean create_delete_permission;
+ };
+
+ typedef sequence < VolumeInfo > VolumeInfoList;
+ typedef sequence < FolderLocation> FolderLocationList;
+
+ enum FolderItemType
+ {
+ SAVED_QUERY,
+ SUBMITTED_QUERY,
+ SUBMITTED_QUERY_AND_HIT_COUNT,
+ STANDING_QUERY,
+ SAVED_ORDER,
+ SUBMITTED_ORDER,
+ STANDING_ORDER,
+ SUBMITTED_CREATE,
+ SUBMITTED_HIT_COUNT,
+ RESULTS_DIGEST,
+ SESSION,
+ ALL
+ };
+
+ struct FolderItem
+ {
+ PRID item_id;
+ FolderLocation location;
+ string name;
+ string description;
+ FolderItemType type;
+ UCO::AbsTime creation_time;
+ UCO::AbsTime last_accessed_time;
+ UCO::AbsTime last_modified_time;
+ string owner_name;
+ string user_created_name;
+ string user_last_accessed_name;
+ string user_last_modified_name;
+ UCO::Rectangle area_of_interest_mbr;
+ };
+
+ typedef sequence < FolderItem > FolderItemList;
+
+ //***
+ // FolderItem holds one of the following:
+ // SubmittedQuery
+ // SubmittedQueryAndHitCount
+ // SubmittedOrder
+ // SubmittedCreate
+ // StandingQuery
+ // StandingOrder
+ // SavedQuery
+ // SavedOrder
+ // ResultsDigest
+ // SavedSession
+ //***
+ typedef any FolderContent;
+ typedef sequence <FolderContent> FolderContentList;
+
+ enum SearchDepth
+ {
+ SINGLE_FOLDER,
+ FOLDER_TREE
+ };
+
+ //***
+ // Return a list of available volumes
+ //***
+ void list_volumes(
+ out VolumeInfoList volume_list)
+ raises (UCO::ProcessingFault, UCO::SystemFault);
+
+ //***
+ // Creates a new folder in the location specified
+ //***
+ void new_folder (
+ in FolderLocation folder)
+ raises (
+ UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault);
+
+ //***
+ // Moves a folder's location
+ //***
+ void update_folder (
+ in FolderLocation folder,
+ in FolderLocation new_location)
+ raises (
+ UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault);
+
+ //***
+ // Removes an empty folder
+ //***
+ void remove_folder (
+ in FolderLocation folder)
+ raises (
+ UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault);
+
+ //***
+ // Return a list of folders in a specific folder
+ //***
+ void list_folders (
+ in FolderLocation folder,
+ out FolderLocationList query_items)
+ raises (
+ UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault);
+
+ //***
+ // Update a specific folder item in the profile
+ //***
+ void update_folder_item (
+ in PRID item_id,
+ in FolderLocation location,
+ in string name,
+ in string description,
+ in UCO::Rectangle area_of_interest_mbr)
+ raises (
+ UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault);
+
+ //***
+ // Returns the contents of a folder item
+ // N.B. Some folder item types may override this operation.
+ //***
+ void get_entry (
+ in PRID item_id,
+ out FolderContent entry)
+ raises (
+ UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault);
+
+ //***
+ // Removes a folder item
+ //***
+ void remove_entry (
+ in PRID item_id)
+ raises (
+ UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault);
+
+ //***
+ // Returns a list of folder contents of a given type.
+ // Can search just in a given folder or recursively search the folder
+ // tree starting at a given folder location.
+ // N.B. This call may not be useful for some folder item types.
+ //***
+ void list_entries (
+ in FolderItemType type,
+ in FolderLocation starting_point,
+ in SearchDepth depth,
+ out FolderContentList entries)
+ raises (
+ UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault);
+
+ //***
+ // Returns a list of folder information for a given folder item type.
+ // Can search just in a given folder or recursively search the folder
+ // tree starting at a given folder location.
+ //***
+ void list_entry_items (
+ in FolderItemType type,
+ in FolderLocation starting_point,
+ in SearchDepth depth,
+ out FolderItemList entry_items)
+ raises (
+ UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault);
+
+
+ //***********************************************************************
+ // Submitted Queries
+ //
+ //> These are queries that have been submitted to a Library, but the
+ // client has not yet completed the retrieval of the query results.
+ // This is useful when queries are time-consuming.
+ //<
+ //***********************************************************************
+ struct SubmittedQuery
+ {
+ FolderItem item_info;
+ GIAS::SubmitQueryRequest request;
+ };
+ typedef sequence<SubmittedQuery> SubmittedQueryList;
+
+
+//***********************************************************************
+ // Submitted Queries and Hit Count
+ //
+ //> These are queries that have been submitted to a Library, but the
+ // client has not yet completed the retrieval of the query results.
+ // This is useful when queries are time-consuming.
+ //<
+ //***********************************************************************
+ struct SubmittedQueryAndHitCount
+ {
+ FolderItem item_info;
+ GIAS::SubmitQueryRequest request;
+ GIAS::RequestList hit_count_requests;
+ };
+ typedef sequence<SubmittedQueryAndHitCount> SubmittedQueryAndHitCountList;
+
+ PRID new_submitted_query (
+ in FolderLocation folder,
+ in string name,
+ in string description,
+ in UCO::Rectangle area_of_interest_mbr,
+ in GIAS::SubmitQueryRequest request)
+ raises (
+ UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault);
+
+ PRID new_submitted_query_and_hitcount (
+ in FolderLocation folder,
+ in string name,
+ in string description,
+ in UCO::Rectangle area_of_interest_mbr,
+ in GIAS::SubmitQueryRequest request,
+ in GIAS::RequestList hit_count_requests)
+ raises ( UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault);
+
+
+struct SubmittedHitCount
+ {
+ FolderItem item_info;
+ GIAS::HitCountRequest request;
+ };
+ typedef sequence<SubmittedHitCount> SubmittedHitCountList;
+
+
+
+
+ PRID new_submitted_hitcount (
+ in FolderLocation folder,
+ in string name,
+ in string description,
+ in UCO::Rectangle area_of_interest_mbr,
+ in GIAS::HitCountRequest request)
+ raises (UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault);
+ //***********************************************************************
+ // Submitted Orders
+ //
+ //> These are orders that have been submitted to a Library, but the
+ // user has not yet deleted. A user may need to keep orders around
+ // if they take a long time to complete.
+ //<
+ //***********************************************************************
+ struct SubmittedOrder
+ {
+ FolderItem item_info;
+ GIAS::OrderRequest request;
+ };
+ typedef sequence<SubmittedOrder> SubmittedOrderList;
+
+ PRID new_submitted_order(
+ in FolderLocation folder,
+ in string name,
+ in string description,
+ in UCO::Rectangle area_of_interest_mbr,
+ in GIAS::OrderRequest order)
+ raises (
+ UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault);
+
+ //***********************************************************************
+ // Submitted Creates
+ //
+ //> These are creates that have been submitted to a Library, but the
+ // user has not yet deleted. A user may need to keep these around
+ // if they take a long time to complete.
+ //<
+ //***********************************************************************
+ struct SubmittedCreate
+ {
+ FolderItem item_info;
+ GIAS::CreateRequest request;
+ };
+ typedef sequence<SubmittedCreate> SubmittedCreateList;
+
+ PRID new_submitted_create(
+ in FolderLocation folder,
+ in string name,
+ in string description,
+ in UCO::Rectangle area_of_interest_mbr,
+ in GIAS::CreateRequest create_request)
+ raises (
+ UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault);
+
+
+ //***********************************************************************
+ // Standing Queries
+ //
+ //> These are queries that get executed on a scheduled basis. The client
+ // needs to be able to access the query request at any time.
+ //<
+ //***********************************************************************
+ struct StandingQuery
+ {
+ FolderItem item_info;
+ GIAS::SubmitStandingQueryRequest request;
+ };
+
+ typedef sequence <StandingQuery> StandingQueryList;
+
+ PRID new_standing_query (
+ in FolderLocation folder,
+ in string name,
+ in string description,
+ in UCO::Rectangle area_of_interest_mbr,
+ in GIAS::SubmitStandingQueryRequest request)
+ raises (
+ UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault);
+
+
+ //***********************************************************************
+ // Standing Orders
+ //
+ //> These are orders that get executed on a scheduled basis. The client
+ // needs to be able to access the order request at any time.
+ //<
+ //***********************************************************************
+ struct StandingOrder
+ {
+ FolderItem item_info;
+ GIAS::QueryOrderContents order;
+ GIAS::SubmitStandingQueryRequest query;
+ };
+
+ typedef sequence <StandingOrder> StandingOrderList;
+
+ PRID new_standing_order(
+ in FolderLocation folder,
+ in string name,
+ in string description,
+ in GIAS::QueryOrderContents order,
+ in UCO::Rectangle area_of_interest_mbr,
+ in GIAS::SubmitStandingQueryRequest query)
+ raises (UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault);
+
+
+ //***********************************************************************
+ // Saved Queries
+ //
+ //>
+ //<
+ //***********************************************************************
+ struct SavedQuery
+ {
+ FolderItem item_info;
+ GIAS::Query bqs;
+ UCO::FileLocation thumbnail_location;
+ boolean browse_image_returned_flag;
+ UCO::NameList result_attributes;
+ GIAS::SortAttributeList sort_attributes;
+ string geographic_datum;
+ UCO::AbsTime last_submitted_date;
+ };
+
+ typedef sequence < SavedQuery > SavedQueryList;
+
+
+
+ //***
+ // Save the query information to the specified folder.
+ //***
+ PRID new_saved_query (
+ in FolderLocation folder,
+ in string name,
+ in string description,
+ in GIAS::Query bqs,
+ in boolean browse_image_returned_flag,
+ in UCO::NameList result_attributes,
+ in GIAS::SortAttributeList sort_attributes,
+ in string geographic_datum,
+ in UCO::AbsTime last_submitted_date,
+ in UCO::Rectangle area_of_interest_mbr)
+ raises ( UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault);
+
+ //***
+ // Update a specified query from the profile
+ //***
+ void update_saved_query (
+ in PRID saved_query_id,
+ in string name,
+ in string description,
+ in GIAS::Query bqs,
+ in boolean browse_image_returned_flag,
+ in UCO::NameList result_attributes,
+ in GIAS::SortAttributeList sort_attributes,
+ in string geographic_datum,
+ in UCO::AbsTime last_submitted_date,
+ in UCO::Rectangle area_of_interest_mbr)
+ raises (
+ UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault);
+
+
+
+
+ //***********************************************************************
+ // Saved Orders
+ //
+ //>
+ //<
+ //***********************************************************************
+ struct SavedOrder
+ {
+ FolderItem item_info;
+ GIAS::OrderContents order;
+ };
+
+ typedef sequence < SavedOrder > SavedOrderList;
+
+ PRID new_saved_order (
+ in FolderLocation folder,
+ in string name,
+ in string description,
+ in UCO::Rectangle area_of_interest_mbr,
+ in GIAS::OrderContents order)
+ raises (
+ UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault);
+
+ void update_saved_order(
+ in PRID saved_order_id,
+ in string name,
+ in string description,
+ in UCO::Rectangle area_of_interest_mbr,
+ in GIAS::OrderContents order)
+ raises (
+ UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault);
+
+
+ //***********************************************************************
+ // Results Digests
+ //
+ //>
+ //<
+ //***********************************************************************
+ struct ResultsDigest
+ {
+ FolderItem item_info;
+ };
+
+ typedef sequence < ResultsDigest > ResultsDigestList;
+
+ //***
+ // Save the results digest to the specified folder... the
+ // server will ftp get the digest from the specified file
+ // location.
+ //***
+ PRID new_results_digest (
+ in FolderLocation folder,
+ in string name,
+ in string description,
+ in UCO::Rectangle area_of_interest_mbr,
+ in UCO::FileLocation digest_location)
+ raises (
+ UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault);
+
+ //***
+ // Update the specified results digest in the profile
+ //***
+ void update_results_digest(
+ in PRID results_digest_id,
+ in string name,
+ in string description,
+ in UCO::Rectangle area_of_interest_mbr,
+ in UCO::FileLocation digest_location)
+ raises (
+ UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault);
+
+ //***
+ // Get the results digest for the specified ID... the server
+ // will ftp put the digest to the specified file location.
+ //***
+ void get_results_digest (
+ in PRID query_id,
+ in UCO::FileLocation destination_file)
+ raises (
+ UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault);
+
+
+ //***********************************************************************
+ // Saved Sessions
+ //
+ //>
+ //<
+ //***********************************************************************
+ struct SavedSession
+ {
+ FolderItem item_info;
+ string session_text;
+ };
+
+ typedef sequence < SavedSession > SavedSessionList;
+
+ //***
+ // Save the session to the specified folder... the
+ // server will ftp get the session from the specified file
+ // location.
+ // ***
+ PRID new_saved_session (
+ in FolderLocation folder,
+ in string name,
+ in string description,
+ in UCO::Rectangle area_of_interest_mbr,
+ in UCO::FileLocation session_location)
+ raises (
+ UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault);
+
+ //***
+ // Update the specified saved session in the profile
+ //***
+ void update_saved_session(
+ in PRID saved_session_id,
+ in string name,
+ in string description,
+ in UCO::Rectangle area_of_interest_mbr,
+ in UCO::FileLocation session_location)
+ raises (
+ UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault);
+
+ //***
+ // Get the saved session for the specified ID... the server
+ // will ftp put the session to the specified file location.
+ //***
+ void get_saved_session (
+ in PRID query_id,
+ in UCO::FileLocation destination_file)
+ raises (
+ UCO::InvalidInputParameter, UCO::ProcessingFault, UCO::SystemFault);
+
+ }; // end interface GIASProfile
+
+ };
+#endif
diff --git a/idl/gias/uco.idl b/idl/gias/uco.idl
new file mode 100644
index 0000000000..d0fbe7d8dd
--- /dev/null
+++ b/idl/gias/uco.idl
@@ -0,0 +1,417 @@
+#ifndef UCO_IDL
+#define UCO_IDL
+
+//***************************************************************
+ //* APPROVED via RFC N01-0268 on 6 August 2001
+//***************************************************************
+
+
+// *************************************************************
+//*
+//* The USIGS Common Object Specification
+//*
+//*
+//* Description: Defines fundamental data types and
+//* interfaces to be used by other specifications to
+//* support interoperation across independently designed
+//* interfaces.
+//*
+//*
+//*
+//* 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
+//* Comments
+//* 16 Oct 97 D. Lutz Changes based on 7 Oct TEM
+//* Comments
+//* 14 Nov 97 D. Lutz Changes based on 4 Nov TEM
+//* Comments
+//* 17 Dec 97 D. Lutz Changes based on 9 Dec TEM
+//* Comments
+//* 13 Apr 98 J. Baldo Changes based on feedback from
+//* distributions of UCOS v1.1 and
+//* GIAS v3.1
+//* 2 July 98 J. Baldo/D. Lutz Changes based on feedback
+//* from 22-23 June 98 TEM
+//* 29 Sept 98 J. Baldo/D. Lutz Changes based on feedback
+//* from 22-23 September 1998 TEM
+//*
+//* from 4-5 August 1999 TEM - Simplified the 2 and 3D Coordinates to be floats only.
+//* from 19 January 2000 TEM -
+//* included a generic exceptionÆs model that GIXS,
+//*GIAS Profile will use.
+//* 7 March 2000 from March 2000 TEM - added new //* structure that is somewhat similar //* to NameValueTable called a //* StringTable
+//*
+//* Notes
+//* -------
+//* 7 March 2000 Needed to include the UID Module
+//*
+//*************************************************************
+
+#include "uid.idl"
+
+// The USIGS Common Objects
+module UCO
+{
+ // Generic data types
+
+
+ typedef string Name;
+ typedef sequence < Name > NameList;
+
+ struct NameName
+ {
+ Name name1;
+ Name name2;
+ };
+
+ typedef sequence <NameName> NameNameList;
+
+ struct NameValue
+ {
+ Name aname;
+ any value;
+ };
+
+ typedef sequence < NameValue > NameValueList;
+
+ typedef float Percentage;
+
+
+ typedef double Angle;
+
+ struct Ratio {
+ double numerator;
+ double denominator;
+ };
+
+
+typedef double DataRate;
+
+ typedef string UCOS_NULL;
+
+ struct FileLocation
+ {
+ string user_name;
+ string password;
+ string host_name;
+ string path_name;
+ string file_name;
+ };
+
+ typedef sequence < FileLocation > FileLocationList;
+
+ enum Protocol { HTTP, FTP, FILE };
+
+ struct DirectAccessLocation
+ {
+ Protocol access_protocol;
+ FileLocation file_location;
+ };
+
+ struct Date
+ {
+ unsigned short year;
+ unsigned short month;
+ unsigned short day;
+ };
+
+ struct Time
+ {
+ unsigned short hour;
+ unsigned short minute;
+ float second;
+ };
+
+ typedef Time Duration;
+
+ struct AbsTime
+ {
+ Date aDate;
+ Time aTime;
+ };
+
+
+ typedef string EmailAddress;
+
+ // Begin DAG definition
+
+ typedef unsigned long NodeID;
+
+ enum NodeType { ROOT_NODE, ENTITY_NODE, RECORD_NODE,
+ ATTRIBUTE_NODE };
+
+ struct Node
+ {
+ NodeID id;
+ NodeType node_type;
+ Name attribute_name;
+ any value;
+ };
+ enum Cardinality { ONE_TO_ONE, ONE_TO_MANY, MANY_TO_ONE, MANY_TO_MANY, ONE_TO_ZERO_OR_MORE, ONE_TO_ONE_OR_MORE, ONE_TO_ZERO_OR_ONE };
+
+ struct Edge
+ {
+ NodeID start_node;
+ NodeID end_node;
+ string relationship_type;
+};
+
+ typedef sequence < Node > NodeList;
+ typedef sequence < Edge > EdgeList;
+
+
+ struct DAG
+ {
+ NodeList nodes;
+ EdgeList edges;
+ };
+
+ typedef sequence < DAG > DAGList;
+
+// Begin StringDAG definition
+struct StringNode
+ {
+ NodeID id;
+ NodeType node_type;
+ Name attribute_name;
+ string value;
+ };
+typedef sequence < StringNode > StringNodeList;
+
+struct StringDAG
+ {
+ any prod;
+ StringNodeList nodes;
+ EdgeList edges;
+ };
+
+typedef sequence < StringDAG > StringDAGList;
+
+
+
+enum ChangeType { ADD_CHANGE, UPDATE_CHANGE, DELETE_CHANGE };
+
+struct Change {
+
+ NodeID changed_node;
+ ChangeType change_type;
+
+};
+
+typedef sequence <Change> ChangeList;
+
+struct UpdateDAG {
+
+ DAG data;
+ ChangeList changes;
+
+};
+
+typedef sequence <UpdateDAG> UpdateDAGList;
+
+ struct RequestDescription
+ {
+ string user_info;
+ string request_type;
+ string request_info;
+ NameValueList request_details;
+ };
+typedef sequence < RequestDescription > RequestDescriptionList;
+typedef sequence <octet> BinData;
+
+typedef string XMLDocument;
+
+
+
+ // Basic Geospatial data types
+
+
+ // 3D and 2D floating point coordinate
+ struct Coordinate2d {
+ double x;
+ double y;
+ };
+
+ struct Coordinate3d {
+ double x;
+ double y;
+ double z;
+ };
+
+
+ struct LinearDimension
+ {
+ double dimension;
+ string reference_system;
+ };
+
+
+typedef double AreaDimension;
+
+ typedef LinearDimension Height;
+ typedef LinearDimension Elevation;
+ typedef LinearDimension Distance;
+ typedef LinearDimension Radius;
+ typedef sequence < Coordinate2d > LineString2d;
+ typedef sequence < Coordinate3d > LineString3d;
+ typedef sequence < Coordinate2d > Polygon;
+ typedef sequence < Polygon > PolygonSet;
+
+ struct Circle
+ {
+ Coordinate2d centerpoint;
+ Radius aRadius;
+ };
+
+ struct Ellipse
+ {
+ Coordinate2d centerpoint;
+ Distance minor_axis_len;
+ Distance major_axis_len;
+ Angle north_angle;
+ };
+
+ struct Rectangle
+ {
+ Coordinate2d upper_left;
+ Coordinate2d lower_right;
+ };
+
+ typedef sequence < Rectangle > RectangleList;
+
+
+ typedef double FileSize;
+
+
+
+typedef double Weight;
+
+ // Simple composite geospatial datatypes
+
+ enum BufferType
+ {
+ OCTET_DATA, CHAR_DATA, SHORT_DATA, USHORT_DATA,
+ LONG_DATA, ULONG_DATA, FLOAT_DATA, DOUBLE_DATA
+ };
+
+ typedef sequence < octet > octetList;
+ typedef sequence < char >charList;
+ typedef sequence < unsigned short >ushortList;
+ typedef sequence < short >shortList;
+ typedef sequence < unsigned long >ulongList;
+ typedef sequence < long >longList;
+ typedef sequence < float >floatList;
+ typedef sequence < double >doubleList;
+
+ union Buffer
+ switch (BufferType)
+ {
+ case OCTET_DATA: octetList octet_buffer;
+ case CHAR_DATA: charList char_buffer;
+ case USHORT_DATA:ushortList ushort_buffer;
+ case SHORT_DATA: shortList short_buffer;
+ case ULONG_DATA: ulongList ulong_buffer;
+ case LONG_DATA: longList long_buffer;
+ case FLOAT_DATA: floatList float_buffer;
+ case DOUBLE_DATA:doubleList double_buffer;
+ };
+
+
+ struct SimpleGSImage
+ {
+ unsigned long width;
+ unsigned long height;
+ Buffer pixels;
+ };
+
+
+ struct SimpleCImage
+ {
+ unsigned long width;
+ unsigned long height;
+ Buffer red_pixels;
+ Buffer green_pixels;
+ Buffer blue_pixels;
+ };
+
+ struct CompressedImage
+ {
+ unsigned long width;
+ unsigned long height;
+ string compression_form;
+ octetList data;
+ };
+
+
+ enum State
+ {
+ COMPLETED, IN_PROGRESS, ABORTED, CANCELED, PENDING,
+ SUSPENDED, RESULTS_AVAILABLE, TRANSFER_COMPLETE
+ };
+
+ struct Status
+ {
+ State completion_state;
+ boolean warning;
+ string status_message;
+ };
+
+ struct EntityNode
+ {
+ NodeID id;
+ string entity_name;
+ };
+
+struct EntityRelationship
+ {
+ NodeID start_node;
+ NodeID end_node;
+ Cardinality start_to_end_card;
+ Cardinality end_to_start_card;
+ };
+
+typedef sequence < EntityNode > EntityNodeList;
+typedef sequence < EntityRelationship > EntityRelationshipList;
+
+struct EntityGraph
+ {
+ EntityNodeList nodes;
+ EntityRelationshipList relationship;
+ };
+
+//***********************************************************
+// Exception Structure and Exceptions for the UCO (also
+// used for GIAS, GIXS and Profile Service)
+//************************************************************
+
+ struct exception_details {
+ string exception_name;
+ boolean standard_exception_name;
+ string exception_desc;
+ };
+
+//InvalidInputParameter Exception
+
+exception InvalidInputParameter {
+ exception_details details;
+ UCO::NameList badInputParameters;
+ };
+
+//Processing Fault Exception
+
+exception ProcessingFault {
+ exception_details details;
+ };
+
+//System Fault Exception
+
+exception SystemFault {
+ exception_details details;
+ };
+
+};
+#endif
diff --git a/idl/gias/uid.idl b/idl/gias/uid.idl
new file mode 100644
index 0000000000..cbb54ca2de
--- /dev/null
+++ b/idl/gias/uid.idl
@@ -0,0 +1,38 @@
+#ifndef UID_IDL
+#define UID_IDL
+
+//***************************************************************
+ //* APPROVED via RFC N01-0268 on 6 August 2001
+//***************************************************************
+
+// *************************************************************
+//*
+//* The USIGS Universal Product Identifier
+//* Specification
+//*
+//*
+//* Description: Defines a universal USIGS product
+//* identification.
+//*
+//*
+//* History:
+//* Date Author Comment
+//* ----- ------ --------
+//* 29 Sept 98 J. Baldo and D. Lutz Initial release for
+//* review.
+//*
+//* Notes
+//* -------
+//* NONE
+//*
+//*
+// *************************************************************
+module UID
+{
+interface Product
+ {
+ };
+
+typedef sequence < Product > ProductList;
+};
+#endif