Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

util.h File Reference

#include <stdio.h>
#include <vector>
#include "Byte.h"
#include "Int16.h"
#include "UInt16.h"
#include "Int32.h"
#include "UInt32.h"
#include "Float32.h"
#include "Float64.h"
#include "Str.h"
#include "Url.h"
#include "Array.h"
#include "Structure.h"
#include "Sequence.h"
#include "Grid.h"
#include "BaseType.h"

Include dependency graph for util.h:

Include dependency graph

This graph shows which files directly or indirectly include this file:

Included by dependency graph

Go to the source code of this file.

Double to string conversion functions

Conversions from double to a character representation which gets appended to a string. This function depends on the standard routine sprintf to convert a double to a textual representation which gets appended to the string 'str'.

Parameters:
num The double you wish to append to str.
str The string where the textual representation of num will be appended.
Returns:
void.


void append_double_to_string (const double &num, string &str)
string double_to_string (const double &num)

Integer to string conversion functions

Fast, safe conversions from long to a character representation which gets appended to a string. This method will take a long value 'val' and it will recursively divide it by 'base' in order to "extract" one by one the digits which compose it; these digits will be appended to the string str_val which will become the textual representation of 'val'. Please notice that the digits ``extracted'' from `val' will vary depending on the base chosen for the conversion; for example val=15 converted to base 10 will yield the digits (1,5), converted to base 16 will yield (F) and converted to base 2 will yield (1,1,1,1).

Parameters:
val The long value we which to convert to string.
base A value in the range [2,36] which is the base to use while transforming the long value 'val' to its textual representation. Typical bases are 2 (binary), 10 (decimal) and 16 (hexadecimal).
str_val This is the string that will hold the textual representation of 'val'. The string str_val should be pre-set to an empty string ("") otherwise the output of this function will just append the textual representation of val to whatever data is there; these feature may be useful if you wish to append a long value to a string s1 (just like operator+ does) without having to create a new string object s2 and then use string::operator+ between s1 and s2.
Returns:
void. This method returns nothing however be aware that it will throw and exception of type std::invalid_argument if the parameter base is not in the valid range.


void append_long_to_string (long val, int base, string &str_val)
string long_to_string (long val, int base=10)

Defines

#define _util_h   1

Functions

FILE * compressor (FILE *output, int &childpid)
string dap_version ()
bool deflate_exists ()
void delete_xdrstdio (XDR *xdr)
const char * dods_progress ()
void downcase (string &s)
string file_to_string (FILE *fp)
FILE * get_temp_file (char *temp)
char * get_tempfile_template (char *file_template)
const char * libdap_name ()
const char * libdap_root ()
const char * libdap_version ()
XDR * new_xdrstdio (FILE *stream, enum xdr_op xop)
time_t parse_time (const char *str, bool expand)
string path_to_filename (string path)
string prune_spaces (const string &)
XDR * set_xdrstdio (XDR *xdr, FILE *stream, enum xdr_op xop)
string systime ()
FILE * text_to_temp (string text)
bool unique_names (vector< BaseType * > l, const string &var, const string &type, string &msg)
bool_t xdr_str (XDR *xdrs, string &buf)


Define Documentation

#define _util_h   1
 

Definition at line 37 of file util.h.


Function Documentation

void append_double_to_string const double &  num,
string &  str
 

Definition at line 516 of file util.cc.

Referenced by double_to_string().

void append_long_to_string long  val,
int  base,
string &  str_val
 

Definition at line 479 of file util.cc.

Referenced by InternalErr::InternalErr(), long_to_string(), and parse_error().

FILE* compressor FILE *  output,
int &  childpid
 

Referenced by DODSFilter::send_data().

string dap_version  ) 
 

Get the version of the DAP library.

Definition at line 538 of file util.cc.

References libdap_version().

Here is the call graph for this function:

bool deflate_exists  ) 
 

Referenced by DODSFilter::send_blob(), and DODSFilter::send_data().

void delete_xdrstdio XDR *  xdr  ) 
 

Definition at line 194 of file util.cc.

Referenced by DODSFilter::dataset_constraint(), and DODSFilter::functional_constraint().

const char* dods_progress  ) 
 

string double_to_string const double &  num  ) 
 

Definition at line 527 of file util.cc.

References append_double_to_string().

Referenced by GeoConstraint::set_bounding_box().

Here is the call graph for this function:

void downcase string &  s  ) 
 

Definition at line 450 of file util.cc.

Referenced by is_keyword(), and String_to_AttrType().

string file_to_string FILE *  fp  ) 
 

Read stuff from a file and dump it into a string. This assumes the file holds character data only. Intended for testing...

Parameters:
fp Read from this file
Returns:
Returns a string which holds the character data.

Definition at line 625 of file util.cc.

FILE* get_temp_file char *  temp  ) 
 

Intended for testing, this may have other uses. The template should be the pathname of the temporary file ending in 'XXXXXX' (as for mkstemp) and will be modified.

Parameters:
temp Pathname, ending in 'XXXXXX'
Returns:
A FILE pointer opened for update.

Definition at line 610 of file util.cc.

char* get_tempfile_template char *  file_template  ) 
 

Build a template for a temporary file suitable for use with mkstemp. Look around for a reasonable place to put a temporary file. Check first the value of the TMPDIR env var. If that does not yield a path that's writable (as defined by access(..., W_OK|R_OK)) then look at P_tmpdir (as defined in stdio.h. If both come up empty, then use `./'.

This function allocates storage using new. The caller must delete the char array.

Parameters:
file_template A template suitable for use with mkstemp (so it has to have six extra chars at its end. This is combined with the path to some temporary directory (see above).
Returns:
A writable char[] that holds the fully qualified filename/template to use with mkstemp.

Definition at line 575 of file util.cc.

Referenced by get_temp_file().

const char* libdap_name  ) 
 

Definition at line 265 of file util.cc.

const char* libdap_root  ) 
 

Definition at line 250 of file util.cc.

References libdap_root().

Referenced by libdap_root().

Here is the call graph for this function:

const char* libdap_version  ) 
 

Return the version string for this package.

Note:
This function has C linkage so that it can be found using autoconf tests.
Returns:
The version string.

Definition at line 258 of file util.cc.

Referenced by dap_version().

string long_to_string long  val,
int  base = 10
 

Definition at line 508 of file util.cc.

References append_long_to_string().

Referenced by AISDatabaseParser::aisError(), AISDatabaseParser::aisFatalError(), AISDatabaseParser::aisWarning(), DDXParser::ddx_fatal_error(), RCReader::get_proxy_server_host_url(), SignalHandler::register_handler(), save_str(), and libdap::set_array_using_double().

Here is the call graph for this function:

XDR* new_xdrstdio FILE *  stream,
enum xdr_op  xop
 

Definition at line 173 of file util.cc.

Referenced by DODSFilter::dataset_constraint(), and DODSFilter::functional_constraint().

time_t parse_time const char *  str,
bool  expand
 

Parse a string in GMT format to a local time time_t representation Four formats are accepted: Wkd, 00 Mon 0000 00:00:00 GMT (rfc1123) Weekday, 00-Mon-00 00:00:00 GMT (rfc850) Wkd Mon 00 00:00:00 0000 GMT (ctime) 1*DIGIT (delta-seconds)

Copied from libwww. 09/19/02 jhrg

Parameters:
str The time string.
expand If the time is given in delta seconds, adjust it to seconds since midnight 1 Jan 1970 if this is true. If false, simply convert the string to a time_t and return. The default value is true.
Returns:
The time in seconds since midnight 1 Jan 1970.

Definition at line 129 of file util_mit.cc.

string path_to_filename string  path  ) 
 

Get the filename part from a path. This function can be used to return a string that has the directory components stripped from a path. This is useful when building error message strings.

If WIN32 is defined, use '\' as the path separator, otherwise use '/' as the path separator.

Returns:
A string containing only the filename given a path.

Definition at line 560 of file util.cc.

string prune_spaces const string &  name  ) 
 

Removed spaces from the front of a URL and also from the front of the CE. This function assumes that there are no holes in both the URL and the CE. It will remove leading space, but not other spaces.

Todo:
Is this still needed? This function may predate the switch from libwww to libcurl and the latter may not need to have spaces removed.
Parameters:
name The URL to process
Returns:
Returns a new string object that contains the pruned URL.

Definition at line 93 of file util.cc.

Referenced by Connect::Connect(), and is_keyword().

XDR* set_xdrstdio XDR *  xdr,
FILE *  stream,
enum xdr_op  xop
 

Definition at line 183 of file util.cc.

string systime  ) 
 

Definition at line 437 of file util.cc.

FILE* text_to_temp string  text  ) 
 

bool unique_names vector< BaseType * >  l,
const string &  var,
const string &  type,
string &  msg
 

Definition at line 116 of file util.cc.

References DBG.

Referenced by Structure::check_semantics(), Sequence::check_semantics(), Grid::check_semantics(), and DDS::check_semantics().

bool_t xdr_str XDR *  xdrs,
string &  buf
 

Definition at line 218 of file util.cc.

References DBG, and max_str_len.

Referenced by Vector::deserialize(), Str::deserialize(), Vector::serialize(), and Str::serialize().


Generated on Thu Aug 2 06:44:01 2007 for libdap++ by  doxygen 1.3.9.1