*****************************************************************************
* LEGAL NOTICE *
*****************************************************************************
This software, documentation and associated material was developed by various
people in the Institute of Geophysics and Planetary Physics (IGPP) at the
University of California, Los Angeles (UCLA). Some or all portions of the
software, documentation and associated material is copyrighted by the the
Regents of the University of California. All afore mentioned parties
are referred herein as the "authors".
Permission to use, copy, modify and distribute without charge this
software, documentation, etc. is granted, provided that this comment is
retained, and that all copyright notices and the names of the authors
remains intact, and that the names of the authors not be used in
advertising or publicity pertaining to distribution of the software
without specific, written prior permission. The author makes no
representations about the suitability of this software for any
purpose. It is provided "as is" without express or implied warranty.
The authors disclaim all warranties with regard to this software, including
all implied warranties of merchantability and fitness, in no event shall
the authors be liable for any special, indirect or consequential damages or
any damages whatsoever resulting from loss of use, data or profits,
whether in an action of contract, negligence or other tortuous action,
arising out of or in connection with the use or performance of this
software.
******************************************************************************
This particular CDROM contains only a single application which runs in the PC DOS
environment. The software is a display package for Plasma Wave 4 sec spectra.
Other more general software will be available in the future through our anonymous
FTP account. In order to obtain software from the Node, access the ftp-anonymous
account on srvsun.igpp.ucla.edu (128.97.68.55). The software is located in
the /pds/SOFTWARE directory.
The PPI Node of PDS supports platforms which run under the following operating systems:
VMS, UNIX, DOS. Software to run on each of these platforms can be found in the
sub-directories bearing those names. The organizational structure for each of these
systems is summarized below:
+- bin (executable versions of applications)
|
+- obj (compiled object libraries)
|
+- man (manual pages - if there were any)
|
+- src (source code for everything)
|
+- app (source code for applications)
| |
| +- ditdos (The ditdos client)
| |
| +- ditdos_server (The ditdos server)
| |
| +- pdstotxt (IGPP Flatfile to ASCII converter)
| |
| +- scripts ( Various scripts)
|
+- lib (source code for libraries)
|
+- bc (Binary conversion functions)
|
+- dfs (Data Flow System functions)
|
+- ditdos (ditdos client/server functions)
|
+- ffio (IGPP Flatfile I/O library)
|
+- fnc (File Name Conversion library)
|
+- igpp_sql (The IGPP SQL parser library)
|
+- list (Object oriented list manager functions)
|
+- message (Generic message reporting functions)
|
+- packet (tagged packet library)
|
+- parserc (string parsing functions)
Here is a list of the various software products provided in this
distribution.
** Special Note **
The binary data conversion library and the file name conversion libraries
are beta releases and are currently being tested.
Libraries:
File Name Conversion Library: For converting to and from file paths in
a variety of operating system environments.
Included are POSIX, VMS, MS-DOS, MAC-OS.
Binary Data Conversion Library : For converting between various machine
representation of binary numbers and IEEE
format.
Data Flow System Library : For passing data in the UCLA/IGPP flatfile
format using the packet library.
DITDOS Library : For creating distributed information tracking and
data ordering system applications.
Flatfile I/O Library : For creating, deleting, managing and using UCLA/IGPP
flatfiles.
IGPP SQL Parser Library : Parses a textual SQL query into a data structure
for use by applications which need to provide SQL query support.
The parser does have some IGPP specific additions such as fuzzy
query support. The parser does not support sub-queries.
List Management Library : Provides a simple method for managing
collects of data.
Message Management Library : Provides a formal way to define
collections of messages an application may print to the
screen. Messages may contain any number of variables.
Packet Library : For establishing connections to between applications
and passing tagged packets of information.
Parser Library : Contains functions for parsing and manipulating strings
Applications:
ditdos : The DITDOS administrators application. Provides a command
shell for creating, deleting and managing DITDOS data brokers.
ditdos_server : A server which provides SQL access to registered datasets.
ffinventory : Creates DITDOS commands for populating the inventory
tables with information about all flatfiles at or below a
given path. Reference names are the same as the flatfile name.
Commands generated by this application can be read b 'ditdos'.
pdsinventory : Creates DITDOS commands for populating the inventory
tables with information about all flatfiles at or below a
given path. Reference names are modified PDS datasets IDs.
Commands generated by this application can be read b 'ditdos'.
Here is a detailed catalog of the software libraries.
----------------------------------------------------------------------------
File Name Conversion Library : For converting file names for use between i
operating system environments.
----------------------------------------------------------------------------
FNCPathType : Determines the originating operating system environment by
inspection of the file name path.
FNCMakeFileReference : Create an instance of an FNC file reference
structure.
FNCMakePathNode : Create an instance of an FNC path node structure.
FNCPushPathNode : Adds a path node structure to a path link list.
FNCDumpPath: Prints a human readable description of a path link list.
FNCSetFile : Set the file portion of an internal format file reference.
FNCSetDevice : Set the device portion of an internal format file reference.
FNCParseFileReference : Parses a fully qualified file reference into its
components (i.e., file name and path). The format
the file reference is in must be specified. Output
from FNCPathType may be used.
FNCParsePOSIXFileReference : Parses a fully qualified POSIX file reference
into its components (i.e., file name and path).
FNCParseMSDOSFileReference : Parses a fully qualified MSDOS file reference
into its components (i.e., file name and path).
FNCParseVMSFileReference : Parses a fully qualified VMS file reference
into its components (i.e., file name and path).
FNCParseMACOSFileReference : Parses a fully qualified MACOS file reference
into its components (i.e., file name and path).
FNCParseFilePath : Parses a file path into an internal format.
FNCParsePOSIXFilePath: Parses a POSIX file path into an internal format.
FNCParseMSDOSFilePath: Parses a MSDOS file path into an internal format.
FNCParseMACOSFilePath: Parses a MACOS file path into an internal format.
FNCParseVMSFilePath: Parses a VMS file path into an internal format.
FNCFileReferenceToPOSIX : Generates a POSIX compliant file reference
from an internal format file reference structure.
FNCFileReferenceToMSDOS : Generates a MSDOS compliant file reference
from an internal format file reference structure.
FNCFileReferenceToMACOS : Generates a MACOS compliant file reference
from an internal format file reference structure.
FNCFileReferenceToVMS : Generates a VMS compliant file reference
from an internal format file reference structure.
FNCFileReferenceString: General purpose file reference generator.
----------------------------------------------------------------------------
Binary Data Conversion Library : For converting between various machine
representation of binary numbers and IEEE
format.
----------------------------------------------------------------------------
BCFloatToIEEE : Convert a machine dependent format single precision
floating point number to IEEE format.
BCIEEEToFloat : Convert an IEEE format single precision
floating point number to current machine dependent format.
BCDoubleToIEEE : Convert a machine dependent format double precision
floating point number to IEEE format.
BCIEEEToDouble: Convert an IEEE format double precision
floating point number to current machine dependent format.
BCGFloatToIEEE: Convert a machine dependent format double precision
floating point number to IEEE format.
Alternate representation available only on VAX/VMS systems.
BCIEEEToGFloat: Convert an IEEE format double precision
floating point number to current machine dependent format.
Alternate representation available only on VAX/VMS systems.
BCShortToIEEE : Convert a machine dependent format two byte integer
number to IEEE format.
BCIEEEToShort : Convert an IEEE format two byte integer
number to current machine dependent format.
BCIntegerToIEEE: Convert a machine dependent format four byte integer
number to IEEE format.
BCIEEEToInteger: Convert an IEEE format four byte integer
number to current machine dependent format.
BCLongIntegerToIEEE: Convert a machine dependent format eight byte integer
number to IEEE format.
BCIEEEToLongInteger: Convert an IEEE format eight byte integer
number to current machine dependent format.
BCReverseByteOrder : Reverse the store order of a string of bytes.
Does byte and word swapping.
VAXSetFormat : Define the machine dependent format to be VAX/VMS systems.
SunSetFormat : Define the machine dependent format to be Sun systems.
PCSetFormat : Define the machine dependent format to be Intel PC systems
using IEEE format.
MSBSetFormat : Define the machine dependent format to be Intel PC systems
using Microsofts Binary format (prominent pre 1987).
IBM370SetFormat : Define the machine dependent format to be IBM 370 systems.
HP1000SetFormat : Define the machine dependent format to be HP 1000 systems.
----------------------------------------------------------------------------
parser library : Contains functions for parsing and manipulating strings
----------------------------------------------------------------------------
cleanparse : Divides a string into sub parts and removes any
leading or trailing spaces from each part.
clispc : Remove trailing spaces from a string.
colparse : Generates a list of columns names which match a given pattern.
Requires DFS.
dojustify : Justify text within an array. Center, left and right
justification is supported.
findrep : Find all occurrence of a substring in a string and replace
it with another substring.
findrep2 : Find all occurrence of a substring in a string and replace
it with another substring. This does not alter the original
string.
findstr : Find a substring in a string and return the index of
where it begins in the string. A search toggle may be
provide to allow "quoted" to skipped.
getword : Retrieve the next textual word from a file pointer.
glob : Return a list of file names which match a given pattern.
ismatch : Determines if a string matches a given pattern.
kw_match : Return the index the keyword a given string matches.
Unique partial matches are allowed.
mop : Parse a string using a mask. String must match all fixed
portions of pattern.
mop2 : Parse a string using a mask. Partial matches of pattern are
allowed.
nextword : Returns the next word from a given string.
nstrcpy : Copies a specific number of bytes from one string to another
and insures that the destination string is NULL terminated.
packlist : Removes all strings in an array of strings which have
zero length.
pad_str : Pads a string with spaces to a given length.
parse : Divide a string into substrings according to a given
delimiter. Quoted portions of string are not divided.
pattern_compare : Compares a string to a given pattern. The pattern is
specified in textual form. Much better than
ismatch(), more like UNIX pattern matching.
pattern_dump : Describe a compiled pattern.
pattern_free : Deletes a PATTERN structure from memory.
pattern_make : Creates and instance of a PATTERN structure.
pattern_match : Determines if a string matches a given pattern. The
pattern is given in compiled form.
pattern_parse : Compiles a pattern by converting a textual pattern into
a token list.
rcomfile : Reads a command line from a file. Specific to DFS.
scasedown : Convert a string to lower case.
scaseup : Convert a string to upper case.
setstr : Duplicates a string in memory (just like strdup(),
you should use strdup()).
strip_comment : Removes comment text from a string. A comment begins
with a "/*".
stripnl : Removes the trailing newline from a string.
trimspc : Removes trailing and leading spaces from a line.
truncate_str : Truncates a string to a given length.
unescape : Remove all occurrences of the given "escape" character
from a string.
unquote : Remove all quote (") from a string.
unquote2 : Removes just the first and last quote from a string.
----------------------------------------------------------------------------
List Management Library : Provides a simple method for managing
collects of data.
----------------------------------------------------------------------------
list_dump : Dump the contents of a list for debugging purposes.
list_find_node : Locate a node in list given a node name.
list_free : Free all memory associated with a list.
list_free_node : Free all memory associated with a list node.
list_get_data : Return the data portion of a list node.
list_insert_node : Insert a node after a given node.
list_make_node : Create an instance of a list node.
list_pop_node : Remove the first node in a list.
list_push_node : Add a node to the end of a list.
list_set_data : Define the data portion a node.
----------------------------------------------------------------------------
Message Management Library : Provides a formal way to define
collections of messages an application may print to the
screen. Messages may contain any number of variables.
----------------------------------------------------------------------------
mm_pmessage : Format and print a message to the current output
file. Messages are prefixed with trace information.
mm_set_output : Define which file to place the messages in.
mm_trace_pop : Removes the most recently added prefix from the
prefix list.
mm_trace_push : Adds text to the prefix list.
----------------------------------------------------------------------------
IGPP SQL Parser Library : Parses a textual SQL query into a data structure
for use by applications which need to provide SQL query support.
The parser does have some IGPP specific additions such as fuzzy
query support. The parser does not support sub-queries.
----------------------------------------------------------------------------
sql_parse_query : Parses a textual query in SQL syntax into a
a data structure.
sql_dump_query : Dumps a textual description of an SQL query data
structure. (Meant for debugging purposes).
----------------------------------------------------------------------------
Packet Library : For establishing connections to between applications
and passing tagged packets of information.
----------------------------------------------------------------------------
close_con : Close a connection to a server.
gread : A low level read of a port with a guaranteed
number of bytes read.
gwrite : A low level write of a port with a guaranteed
number of bytes written.
init_app : Initializes an application for use of the packet
library.
net_close_db : Sends a request to close a database at a server.
net_done : Graceful termination a connection to a server.
net_open_db : Sends a request to open a database at a server.
net_query.c : Sends a query to a server.
net_register : Send user and host registration information to a server.
net_return : Determine the return status of a remotely executed
operation.
net_set_timeout : Set the number of seconds which the client is to wait
for a response before the connection is considered dead.
net_update : Send an update type query the server.
net_version : Send the registered version/identification information
down a connection.
open_con : Open a connection to another application. Used by both
clients and servers.
packet_dump : Dump the contents of a packet (Used for debugging purposes).
recv_packet : Reads a packet from a connection.
send_errmsg : Sends an error message down a connection.
send_packet : Send a packet down a connection.
send_tag : Send a dataless tag down a connection.
verify_version : Requests version information (from a server) and
compares it to the that required by the application.
Required version information is set by init_app().
----------------------------------------------------------------------------
DITDOS Library : For creating distributed information tracking and
data ordering system applications.
----------------------------------------------------------------------------
ditdos_broker_destroy : Destroy an instance of a DITDOS broker.
ditdos_broker_use : Open a connection to a broker and make
it current broker.
ditdos_broker_create : Create an instance of a DITDOS broker
using keyword/value syntax.
ditdos_broker_make : Create an instance of a DITDOS broker
given a broker data structure.
ditdos_broker_process_args : Define multiple values in a broker data
structure using keyword/value syntax.
ditdos_broker_set_option : Set the value of a single element in broker
data structure using keyword/value syntax.
ditdos_broker_options_check: Insure that all required elements in a
broker data structure are defined.
ditdos_broker_write : Write a single record to a DITDOS broker.
ditdos_broker_open : Open the database table of a DITDOS broker.
ditdos_broker_get_database : Translate a database reference name into
a database data structure.
ditdos_class_create : Create a class table.
ditdos_class_write : Write a single record to a class table.
ditdos_class_access_valid : Check if a given access method is allowed
for a given class/instance.
ditdos_class_find : Translate a given class/instance into a
class data structure.
ditdos_class_define : Define the attributes for a class/instance
using keyword/value syntax.
ditdos_class_delete : Delete a specific class/instance record from
the class table.
ditdos_class_process_args : Set multiple elements in a class data structure
using keyword/value syntax.
ditdos_class_set_option : Set the value of a single element in class
data structure.
ditdos_class_check_options : Insure that all required elements of a class
data structure are defined.
ditdos_open_broker : Open a connection to a DITDOS server.
This is a client side function.
ditdos_close_broker : Close a connection to a DITDOS server.
This is a client side function.
ditdos_open_database : Open a database at the server.
This is a client side function.
ditdos_close_database : Close a database at the server.
This is a client side function.
ditdos_send_query : Send a query to the server.
This is a client side function.
ditdos_cancel_query : Cancel the currently running server.
This is a client side function.
ditdos_curator_create : Create a curator table.
ditdos_curator_write : Write a record to a curator table.
ditdos_curator_delete : Delete a specific record from a curator table.
ditdos_curator_define : Define the attributes of a curator using
keyword/value syntax.
ditdos_curator_process_args: Set multiple elements in a curator data
structure using keyword/value syntax.
ditdos_curator_set_option : Set the value of a single element in a curator
data structure using keyword/value syntax.
ditdos_curator_check_options: Check to insure that all required elements
in a curator data structure are defined.
ditdos_database_use : Open a database in the currently opened broker.
ditdos_database_release : Close the currently opened database.
ditdos_database_destroy : Destroy an instance of a DITDOS database.
ditdos_database_create : Create an instance of a DITDOS database using
keyword/value syntax.
ditdos_database_make : Create an instance of a DITDOS database given
database data structure.
ditdos_database_process_args: Set multiple elements in a database data
structure using keyword/value syntax.
ditdos_database_set_option : Set the value of a single element in a database
data structure using keyword/value syntax.
ditdos_database_check_options: Check to insure that all required elements
in a database data structure are defined.
ditdos_datasets_find : Translate a dataset reference name into a
datasets data structure.
ditdos_datasets_exist : Check is a dataset with a given reference name
exists.
ditdos_datasets_open : Open the datasets table of a database.
ditdos_datasets_define : Define the attributes of a datasets using
keyword/value syntax.
ditdos_datasets_delete : Delete a specific dataset entry from the
datasets table.
ditdos_datasets_create : Create an instance of datasets table.
ditdos_datasets_write : Write a single record into a datasets table.
ditdos_datasets_process_args: Set multiple elements in a datasets data
structure using keyword/value syntax.
ditdos_datasets_set_option : Set the value of a single element in a datasets
data structure using keyword/value syntax.
ditdos_datasets_check_options: Check to insure that all required elements
in a datasets data structure are defined.
ditdos_open_internal : Open a dataset which is stored in the DITDOS
internal format (UCLA/IGPP Flatfile).
ditdos_show : Show the settings of one or more global
variables.
ditdos_init_global : Initialize all DITDOS global variables.
ditdos_make_path : Insure that all directories along a given
path exists. Creating those that don't.
ditdos_strcat : Concatenate two strings placing the result
in a third string. Proper termination of the
destination string is insured.
ditdos_privs_create : Create an instance of a privs table.
ditdos_privs_write : Write a single record to a privs table.
ditdos_privs_define : Define the attributes of a privs record using
keyword/value syntax.
ditdos_privs_delete : Delete a specific privs entry from the
privs table.
ditdos_privs_valid : Determine is a specific operation is permitted
on a given table by a given user at a specific
host.
ditdos_privs_process_args : Set multiple elements in a privs data
structure using keyword/value syntax.
ditdos_privs_set_option : Set the value of a single element in a privs
data structure using keyword/value syntax.
ditdos_privs_check_options : Check to insure that all required elements
in a privs data structure are defined.
----------------------------------------------------------------------------
Flatfile I/O Library : For creating, deleting, managing and using UCLA/IGPP
flatfiles.
----------------------------------------------------------------------------
ffadd_desc : Add one or more records to descriptor portion of
a flatfile.
ffbind : Associate a program variable to field in a flatfile.
ffbulk_write_fd : Copies the contents of flatfile beginning at the
current position to the end of the flatfile to a
given file descriptor.
ffbulk_write_file: Copies the contents of flatfile beginning at the
current position to the end of the flatfile to a
given file pointer.
ffcheck_type : Check to see if a given type code is a valid flatfile data
type.
ffclose_select : Close selective portions of a flatfile.
ffcol_type : Return the data type for a given field (column) in
an opened flatfile..
ffcol_width : Return the width in bytes for a given field (column) in
an opened flatfile..
ffcreate : Create a flatfile given a set of descriptors.
ffdelete_rec : Identifies a record for deletion from a flatfile.
ffdo_bind : Synchronize a bound application variables and the
current flatfile record.
ffexists : Check is a flatfile with a given name exists.
ffflag_rec : Place flags in all fields of the current record.
ffget_col_str : Return the value associated with a string field.
ffget_col_val : Return the value associated with a numeric field.
ffget_desc : Get the descriptor entry for a given field.
ffinsert_rec : Indentifies a record for insertion into the flatfile
at the current position in the flatfile.
ffisflag : Determines if the value in a given field is a flag value.
ffmake_path : Makes all necessary directories in a given file name
reference.
ffmove_bin : Move to the record in a flatfile where a given field has
specific value. A binary search method is used.
ffmove_rel_rec : Move to a new record is defined relative to the current
position.
ffmove_to_rec : Move to a specific record given its absolute reference.
ffopen : Open a flatfile.
ffopen_segment : Opens the next segment of a virtual flatfile.
ffopen_select : Open selective portions of a flatfile.
ffpad_str : Pad string with spaces. String may no longer be
properly terminated.
ffprint_rec : Prints the contents of the current record to the screen.
Primarily for debugging purposes.
ffread_abs : Reads the contents of the abstract portion of the flatfile
and places the text into an array of strings.
ffread_rec : Read the next record from the flatfile.
ffscol_index : Returns the index of a field given its short field name.
ffset_col_flag : Set a given field (column) to a flag value.
ffset_col_str : Set a field to a given string value.
ffset_col_val : Set a field to a given numeric value.
ffunlink : Delete the existence of a flatfile.
ffupdate : Perform all deletions and inserts defined with calls
to ffdelete_rec() and ffinsert_rec().
ffwrite_abs : Write the abstract portion of a flatfile.
ffwrite_desc : Write the descriptor portion of a flatfile.
ffwrite_hed : Write the header portion of a flatfile.
ffwrite_rec : Write a record into the data portion of a flatfile.
----------------------------------------------------------------------------
Data Flow System Library : For passing data in the UCLA/IGPP flatfile
format using the packet library.
----------------------------------------------------------------------------
dfs_bind : To bind an application variable to a data flow field.
dfs_bindcopy : Synchronize the contents of bound variables and data flow
fields.
dfs_type_old_to_new : Converts from old DFS data type codes to new.
dfs_type_new_to_old : Converts from new DFS data type codes to old.
dfs_colnum : Returns the index of the field (column) given its
textual column name.
dfs_dataend : Flushes all data buffers and send a tag indicating
end of data.
dfs_defbind : Perform a matched type binding between a data flow field
and an application variable.
dfs_build_desc_map : Builds a bind map for a field in the descriptor
database.
dfs_init : Performs initialization actions for using the DFS library.
dfs_exists : Determines if a field with a given name exists in the
data flow.
dfs_set_in_flow_con : Sets the input connection for the data flow.
dfs_lname : Returns the long name for a field in the data flow.
main : The wrapper main() function for DFS applications.
dfs_make_flow : Creates an instance of a data flow.
dfs_makedesc : Defines a field in the data flow (make a descriptor).
dfs_set_out_flow_con : Sets the output connection for the data flow.
dfs_perror : Outputs a data flow error message.
dfs_rdata : Advances one record in the data flow. Reads data from the
input connection if necessary.
dfs_rdesc : Reads the descriptors of the data flow from the input
connection.
dfs_rmvdesc_all : Deletes are fields from the data flow (Removes all
descriptors).
dfs_int_rvalue : Reads an integer return value from a connection.
dfs_double_rvalue : Reads a double return value from a connection.
dfs_char_rvalue : Reads a string of characters return value from
a connection.
dfs_set_flow_con : Sets both the input and output flow connections
to a same connection.
dfs_sizeof : Returns the size in bytes of a data flow data type.
dfs_sname : Returns the short name of a given field in the data flow.
dfs_type : Returns the data type of a given field in the data flow.
dfs_unbind_all : Remove references to all bound variables.
dfs_uniquename: Returns a unique field name given a desired field name.
dfs_units : Returns the units of a given field in the data flow.
dfs_value : Returns a pointer to the value of a field in the data flow.
dfs_wdata : Writes a the current data flow record out to the connection.
Data is buffered so the write is delayed until the buffer
fills.
dfs_wdata_packet : Write a packet to the output connection which contains
all data in the current output data buffer.
dfs_wdesc : Write the current descriptors to the output connection.
dfs_width : Return the width of a given field in the data flow.
dfs_int_wvalue : Write a integer value to the output connection.
dfs_double_wvalue : Write a double value to the output connection.
dfs_char_wvalue : Write a string of characters to the output connection.
|