forked from osmocom/wireshark
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>
This commit is contained in:
parent
4c52738243
commit
085e95a3ad
|
@ -708,6 +708,7 @@ set(DISSECTOR_SRC
|
|||
dissectors/packet-gearman.c
|
||||
dissectors/packet-ged125.c
|
||||
dissectors/packet-geneve.c
|
||||
dissectors/packet-gias.c
|
||||
dissectors/packet-gift.c
|
||||
dissectors/packet-giop.c
|
||||
dissectors/packet-git.c
|
||||
|
|
|
@ -624,6 +624,7 @@ DISSECTOR_SRC = \
|
|||
packet-gearman.c \
|
||||
packet-ged125.c \
|
||||
packet-geneve.c \
|
||||
packet-gias.c \
|
||||
packet-gift.c \
|
||||
packet-giop.c \
|
||||
packet-git.c \
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -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
|
|
@ -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
|
File diff suppressed because it is too large
Load Diff
|
@ -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
|
|
@ -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
|
|
@ -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
|
Loading…
Reference in New Issue