DODSFilter Class Reference

Common functions for DODS server filter programs. More...

#include <DODSFilter.h>

Collaboration diagram for DODSFilter:

Collaboration graph
[legend]
List of all members.

Public Types

 BLOB_Response
 DAS_Response
 DataDDS_Response
 DDS_Response
 DDX_Response
enum  Response {
  Unknown_Response, DAS_Response, DDS_Response, DataDDS_Response,
  DDX_Response, BLOB_Response, Version_Response
}
 Unknown_Response
 Version_Response

Public Member Functions

virtual void dataset_constraint (DDS &dds, ConstraintEvaluator &eval, FILE *out) const
 DODSFilter (int argc, char *argv[]) throw (Error)
 DODSFilter constructor.
 DODSFilter ()
virtual void establish_timeout (FILE *stream) const
virtual void functional_constraint (BaseType &var, DDS &dds, ConstraintEvaluator &eval, FILE *out) const
virtual string get_action () const
virtual string get_cache_dir () const
 Get the cache directory.
virtual string get_ce () const
 Get the constraint expression.
virtual string get_cgi_version () const
virtual time_t get_das_last_modified_time (const string &anc_location="") const
virtual time_t get_data_last_modified_time (const string &anc_location="") const
virtual time_t get_dataset_last_modified_time () const
virtual string get_dataset_name () const
 Get the dataset name.
virtual string get_dataset_version () const
 Get the version information for the dataset.
virtual time_t get_dds_last_modified_time (const string &anc_location="") const
virtual time_t get_request_if_modified_since () const
virtual Response get_response () const
int get_timeout () const
virtual string get_URL () const
virtual bool is_conditional () const
 Is this request conditional?
virtual void print_usage () const
 Print usage information for a filter program.
virtual void read_ancillary_das (DAS &das, const string &anc_location="") const
 Test if ancillary data must be read.
virtual void read_ancillary_dds (DDS &dds, const string &anc_location="") const
 Test if ancillary data must be read.
virtual void send_blob (DDS &dds, FILE *out, bool with_mime_headers=true)
virtual void send_das (FILE *out, DAS &das, const string &anc_location="", bool with_mime_headers=true) const
 Transmit a DAS.
virtual void send_das (DAS &das, const string &anc_location="", bool with_mime_headers=true) const
virtual void send_data (DDS &dds, ConstraintEvaluator &eval, FILE *data_stream, const string &anc_location="", bool with_mime_headers=true) const
 Transmit data.
virtual void send_dds (FILE *out, DDS &dds, ConstraintEvaluator &eval, bool constrained=false, const string &anc_location="", bool with_mime_headers=true) const
 Transmit a DDS.
virtual void send_dds (DDS &dds, ConstraintEvaluator &eval, bool constrained=false, const string &anc_location="", bool with_mime_headers=true) const
virtual void send_ddx (DDS &dds, ConstraintEvaluator &eval, FILE *out, bool with_mime_headers=true) const
virtual void send_version_info () const
 Send version information back to the client program.
virtual void set_ce (string _ce)
virtual void set_cgi_version (string version)
virtual void set_dataset_name (const string _dataset)
virtual void set_response (const string &r)
void set_timeout (int timeout=0)
virtual void set_URL (const string &url)
virtual ~DODSFilter ()

Protected Member Functions

void initialize (int argc, char *argv[])
void initialize ()
virtual int process_options (int argc, char *argv[])

Protected Attributes

string d_action
time_t d_anc_das_lmt
time_t d_anc_dds_lmt
string d_anc_dir
string d_anc_file
bool d_bad_options
string d_cache_dir
string d_ce
string d_cgi_ver
bool d_comp
bool d_conditional_request
string d_dataset
time_t d_if_modified_since
string d_program_name
Response d_response
int d_timeout
string d_url

Detailed Description

When a DODS server receives a request from a DODS client, the server CGI script dispatches the request to one of several ``filter'' programs. Each filter is responsible for returning a different aspect of the dataset information: one is for data, one is for the dataset DDS, one is for the dataset DAS, and a fourth is for a usage message describing the server itself. Some installations may have additional optional filters.

The filter program receives a data request from the dispatch script. It receives its operating parameters from the command line, like any UNIX command, and it returns its output to standard output, which the httpd server packages up into a reply to the client.

This class contains some common functions for the filter programs used to make up the DODS data servers. The filter programs do not have to be called by a CGI program, but that is the normal mechanism by which they are invoked.

Todo:
Add a test to make sure that the required arguments are given.

We need to rethink the ancillary file/directory stuff. I don't think it's ever been used...

Author:
jhrg 8/26/97

Definition at line 80 of file DODSFilter.h.


Member Enumeration Documentation

enum DODSFilter::Response

Types of responses DODSFilter know about.

Enumerator:
Unknown_Response 
DAS_Response 
DDS_Response 
DataDDS_Response 
DDX_Response 
BLOB_Response 
Version_Response 

Definition at line 84 of file DODSFilter.h.


Constructor & Destructor Documentation

DODSFilter::DODSFilter (  )  [inline]

Make an empty instance. Use the set_*() methods to load with needed values. You must call at least set_dataset_name() or be requesting version information.

Todo:
Add methods to provide a way to set all of the parameters this class contains. They can currently only be set using the argc/argv command line parameters.

Definition at line 130 of file DODSFilter.h.

References initialize().

Here is the call graph for this function:

DODSFilter::DODSFilter ( int  argc,
char *  argv[] 
) throw (Error)

Create an instance of DODSFilter using the command line arguments passed by the CGI (or other) program. The default constructor is private; this and the copy constructor (which is just the default copy constructor) are the only way to create an instance of DODSFilter.

These are the valid options:

filename
The name of the file on which the filter is to operate. Usually this would be the file whose data has been requested. In fact, this class can be specialized and any meaning can be associated to this string. It could be the name of a database, for example.

-o response

Specifies the type of response desired. The response is a string and must be one of DAS, DDS, DataDDS or Version. Note that Version returns version information in the body of the response and is useful for debugging, et cetera. Each response returns version information in an HTTP header for internal use by a client.

-c
Send compressed data. Data are compressed using the deflate program.

-e expression
This option specifies a non-blank constraint expression used to subsample a dataset.

-v cgi-version
Set the CGI/Server version to cgi-version. This is a way for the caller to set version information passed back to the client either as the response to a version request of in the response headers.

-d ancdir
Specifies that ancillary data be sought in the ancdir directory. ancdir must end in '/'.

-f ancfile
Specifies that ancillary data may be found in a file called ancfile.

-r cache directory
Specify a directory to use if/when files are to be cached. Not all handlers support caching and each uses its own rules tailored to a specific file or data type.

-t timeout
Specifies a a timeout value in seconds. If the server runs longer than timeout seconds, an Error is returned to the client explaining that the request has timed out.

-l time
Indicates that the request is a conditional request; send a complete response if and only if the data has changed since time. If it has not changed since time, then send a 304 (Not Modified) response. The time parameter is the Last-Modified time from an If-Modified-Since condition GET request. It is given in seconds since the start of the Unix epoch (Midnight, 1 Jan 1970).

Definition at line 167 of file DODSFilter.cc.

References DBG.

DODSFilter::~DODSFilter (  )  [virtual]

Definition at line 184 of file DODSFilter.cc.


Member Function Documentation

void DODSFilter::dataset_constraint ( DDS dds,
ConstraintEvaluator eval,
FILE *  out 
) const [virtual]

Definition at line 829 of file DODSFilter.cc.

References d_dataset, DBG, delete_xdrstdio(), new_xdrstdio(), DDS::print_constrained(), DDS::var_begin(), and DDS::var_end().

Referenced by send_data().

Here is the call graph for this function:

void DODSFilter::establish_timeout ( FILE *  stream  )  const [virtual]

Use values of this instance to establish a timeout alarm for the server. If the timeout value is zero, do nothing.

Todo:
When the alarm handler is called, two CRLF pairs are dumped to the stream and then an Error object is sent. No attempt is made to write the 'correct' MIME headers for an Error object. Instead, a savvy client will know that when an exception is thrown during a deserialize operation, it should scan ahead in the input stream for an Error object. Add this, or a sensible variant once libdap++ supports reliable error delivery. Dumb clients will never get the Error object...

Definition at line 615 of file DODSFilter.cc.

References d_timeout, SignalHandler::instance(), and SignalHandler::register_handler().

Referenced by send_data().

Here is the call graph for this function:

void DODSFilter::functional_constraint ( BaseType var,
DDS dds,
ConstraintEvaluator eval,
FILE *  out 
) const [virtual]

Definition at line 803 of file DODSFilter.cc.

References d_dataset, delete_xdrstdio(), new_xdrstdio(), BaseType::print_decl(), and BaseType::serialize().

Referenced by send_data().

Here is the call graph for this function:

string DODSFilter::get_action (  )  const [virtual]

Get the string name of the response to be returned.

Definition at line 445 of file DODSFilter.cc.

References d_action.

string DODSFilter::get_cache_dir (  )  const [virtual]

The cache_dir is used to hold the cached .dds and .das files. By default, this returns an empty string (store cache files in current directory.

Returns:
A string object that contains the cache file directory.

Definition at line 581 of file DODSFilter.cc.

References d_cache_dir.

string DODSFilter::get_ce (  )  const [virtual]

Return the entire constraint expression in a string. This includes both the projection and selection clauses, but not the question mark.

Returns:
A string object that contains the constraint expression.

Definition at line 341 of file DODSFilter.cc.

References d_ce.

string DODSFilter::get_cgi_version (  )  const [virtual]

Return the version information passed to the instance when it was created. This string is passed to the DODSFilter ctor using the -v option.

Returns:
The version string supplied at initialization.

Definition at line 329 of file DODSFilter.cc.

References d_cgi_ver.

time_t DODSFilter::get_das_last_modified_time ( const string &  anc_location = ""  )  const [virtual]

Get the last modified time for the dataset's DAS. This time, given in seconds since the epoch (1 Jan 1970 00:00:00 GMT), is the greater of the datasets's and any ancillary DAS' last modified time.

Parameters:
anc_location A directory to search for ancillary files (in addition to the CWD).
Returns:
Time of last modification of the DAS.
See also:
get_dataset_last_modified_time()

get_dds_last_modified_time()

Definition at line 486 of file DODSFilter.cc.

References d_anc_dir, d_anc_file, d_dataset, DBG, find_ancillary_file(), get_dataset_last_modified_time(), and last_modified_time().

Referenced by send_das().

Here is the call graph for this function:

time_t DODSFilter::get_data_last_modified_time ( const string &  anc_location = ""  )  const [virtual]

Get the last modified time to be used for a particular data request. This method should look at both the constraint expression and any ancillary files for this dataset. The implementation provided here returns the latest time returned by the get_dataset...(), get_das...() and get_dds...() methods and does not currently check the CE.

Parameters:
anc_location A directory to search for ancillary files (in addition to the CWD).
Returns:
Time of last modification of the data.
See also:
get_dataset_last_modified_time()

get_das_last_modified_time()

get_dds_last_modified_time()

Definition at line 538 of file DODSFilter.cc.

References d_anc_dir, d_anc_file, d_dataset, DBG, find_ancillary_file(), get_dataset_last_modified_time(), and last_modified_time().

Referenced by send_blob(), and send_data().

Here is the call graph for this function:

time_t DODSFilter::get_dataset_last_modified_time (  )  const [virtual]

Get the dataset's last modified time. This returns the time at which the dataset was last modified as defined by UNIX's notion of modification. This does not take into account the modification of an ancillary DAS or DDS. Time is given in seconds since the epoch (1 Jan 1970 00:00:00 GMT).

This method perform a simple check on the file named by the dataset given when the DODSFilter instance was created. If the dataset is not a filter, this method returns the current time. Servers which provide access to non-file-based data should subclass DODSFilter and supply a more suitable version of this method.

From the stat(2) man page: ``Traditionally, st_mtime is changed by mknod(2), utime(2), and write(2). The st_mtime is not changed for changes in owner, group, hard link count, or mode.''

Returns:
Time of the last modification in seconds since the epoch.
See also:
get_das_last_modified_time()

get_dds_last_modified_time()

Definition at line 471 of file DODSFilter.cc.

References d_dataset, and last_modified_time().

Referenced by get_das_last_modified_time(), get_data_last_modified_time(), and get_dds_last_modified_time().

Here is the call graph for this function:

string DODSFilter::get_dataset_name (  )  const [virtual]

The ``dataset name'' is the filename or other string that the filter program will use to access the data. In some cases this will indicate a disk file containing the data. In others, it may represent a database query or some other exotic data access method.

Returns:
A string object that contains the name of the dataset.

Definition at line 361 of file DODSFilter.cc.

References d_dataset.

string DODSFilter::get_dataset_version (  )  const [virtual]

To read version information that is specific to a certain dataset, override this method with an implementation that does what you want. By default, this returns an empty string.

Returns:
A string object that contains the dataset version information.

Definition at line 400 of file DODSFilter.cc.

Referenced by send_version_info().

time_t DODSFilter::get_dds_last_modified_time ( const string &  anc_location = ""  )  const [virtual]

Get the last modified time for the dataset's DDS. This time, given in seconds since the epoch (1 Jan 1970 00:00:00 GMT), is the greater of the datasets's and any ancillary DDS' last modified time.

Returns:
Time of last modification of the DDS.
See also:
get_dataset_last_modified_time()

get_dds_last_modified_time()

Definition at line 509 of file DODSFilter.cc.

References d_anc_dir, d_anc_file, d_dataset, DBG, find_ancillary_file(), get_dataset_last_modified_time(), and last_modified_time().

Referenced by send_dds(), and send_ddx().

Here is the call graph for this function:

time_t DODSFilter::get_request_if_modified_since (  )  const [virtual]

Get the value of a conditional request's If-Modified-Since header. This value is used to determine if the request should get a full response or a Not Modified (304) response. The time is given in seconds since the Unix epoch (midnight, 1 Jan 1970). If no time was given with the request, this methods returns -1.

Returns:
If-Modified-Since time from a condition GET request.

Definition at line 569 of file DODSFilter.cc.

References d_if_modified_since.

Referenced by send_blob(), send_das(), send_data(), send_dds(), and send_ddx().

DODSFilter::Response DODSFilter::get_response (  )  const [virtual]

Get the enum name of the response to be returned.

Definition at line 439 of file DODSFilter.cc.

References d_response.

Referenced by initialize().

int DODSFilter::get_timeout (  )  const

Get the server's timeout value.

Definition at line 598 of file DODSFilter.cc.

References d_timeout.

string DODSFilter::get_URL (  )  const [virtual]

Get the URL. This returns the URL, minus the constraint originally sent to the server.

Returns:
The URL.

Definition at line 376 of file DODSFilter.cc.

References d_url.

void DODSFilter::initialize ( int  argc,
char *  argv[] 
) [protected]

Initialize. Specializations can call this once an empty DODSFilter has been created using the default constructor. Using a method such as this provides a way to specialize the process_options() method and then have that specialization called by the subclass' constructor.

This class and any class that specializes it should call this method in its constructor. Note that when this method is called, the object is not fully constructed.

Parameters:
argc The argument count
argv The vector of char * argument strings.

Definition at line 232 of file DODSFilter.cc.

References d_dataset, d_program_name, get_response(), initialize(), print_usage(), process_options(), Version_Response, and www2id().

Here is the call graph for this function:

void DODSFilter::initialize (  )  [protected]

Called when initializing a DODSFilter that's not going to be passed a command line arguments.

Definition at line 191 of file DODSFilter.cc.

References d_anc_das_lmt, d_anc_dds_lmt, d_anc_dir, d_anc_file, d_bad_options, d_cache_dir, d_ce, d_cgi_ver, d_comp, d_conditional_request, d_dataset, d_if_modified_since, d_program_name, d_response, d_timeout, d_url, and Unknown_Response.

Referenced by DODSFilter(), and initialize().

bool DODSFilter::is_conditional (  )  const [virtual]

Returns:
True if the request is conditional.
See also:
get_request_if_modified_since().

Definition at line 299 of file DODSFilter.cc.

References d_conditional_request.

Referenced by send_blob(), send_das(), send_data(), send_dds(), and send_ddx().

void DODSFilter::print_usage (  )  const [virtual]

This message is printed when the filter program is incorrectly invoked by the dispatch CGI. This is an error in the server installation or the CGI implementation, so the error message is written to stderr instead of stdout. A server's stderr messages show up in the httpd log file. In addition, an error object is sent back to the client program telling them that the server is broken.

Definition at line 690 of file DODSFilter.cc.

References ErrMsgT(), unknown_error, and usage.

Referenced by initialize(), process_options(), set_response(), and set_URL().

Here is the call graph for this function:

int DODSFilter::process_options ( int  argc,
char *  argv[] 
) [protected, virtual]

Processing the command line options passed to the filter is handled by this method so that specializations can change the options easily.

Parameters:
argc The argument count
argv The vector of char * argument strings.
Returns:
The index of the next, unprocessed, argument. This must be the identifier passed to the filter program that identifies the data source. It's often a file name.

Definition at line 261 of file DODSFilter.cc.

References d_anc_dir, d_anc_file, d_cache_dir, d_comp, d_conditional_request, d_if_modified_since, d_timeout, DBG, DBGN, print_usage(), set_ce(), set_cgi_version(), set_response(), and set_URL().

Referenced by initialize().

Here is the call graph for this function:

void DODSFilter::read_ancillary_das ( DAS das,
const string &  anc_location = "" 
) const [virtual]

Read the ancillary DAS information and merge it into the input DAS object.

Parameters:
das A DAS object that will be augmented with the ancillary data attributes.
anc_location The directory in which the external DAS file resides.
Returns:
void
See also:
DAS

Definition at line 637 of file DODSFilter.cc.

References d_anc_dir, d_anc_file, d_dataset, DBG, find_ancillary_file(), and DAS::parse().

Here is the call graph for this function:

void DODSFilter::read_ancillary_dds ( DDS dds,
const string &  anc_location = "" 
) const [virtual]

Read the ancillary DDS information and merge it into the input DDS object.

Parameters:
dds A DDS object that will be augmented with the ancillary data properties.
anc_location The directory in which the external DAS file resides.
Returns:
void
See also:
DDS

Definition at line 663 of file DODSFilter.cc.

References d_anc_dir, d_anc_file, d_dataset, DBG, find_ancillary_file(), and DDS::parse().

Here is the call graph for this function:

void DODSFilter::send_blob ( DDS dds,
FILE *  out,
bool  with_mime_headers = true 
) [virtual]

Write the BLOB response to the client.

Parameters:
dds Use the variables in this DDS to generate the BLOB response.
out Dump the response to this FILE pointer.
with_mime_headers If true (the default) send MIME headers.

Definition at line 990 of file DODSFilter.cc.

References d_anc_dir, d_ce, d_cgi_ver, d_comp, d_dataset, deflate, deflate_exists(), dods_data, get_data_last_modified_time(), get_request_if_modified_since(), is_conditional(), set_mime_binary(), set_mime_not_modified(), and x_plain.

Here is the call graph for this function:

void DODSFilter::send_das ( FILE *  out,
DAS das,
const string &  anc_location = "",
bool  with_mime_headers = true 
) const [virtual]

This function formats and prints an ASCII representation of a DAS on stdout. This has the effect of sending the DAS object back to the client program.

Parameters:
out The output stream to which the DAS is to be sent.
das The DAS object to be sent.
anc_location The directory in which the external DAS file resides.
with_mime_headers If true (the default) send MIME headers.
Returns:
void
See also:
DAS

Definition at line 721 of file DODSFilter.cc.

References d_cgi_ver, dods_das, get_das_last_modified_time(), get_request_if_modified_since(), is_conditional(), DAS::print(), set_mime_not_modified(), set_mime_text(), and x_plain.

Here is the call graph for this function:

void DODSFilter::send_das ( DAS das,
const string &  anc_location = "",
bool  with_mime_headers = true 
) const [virtual]

Definition at line 739 of file DODSFilter.cc.

void DODSFilter::send_data ( DDS dds,
ConstraintEvaluator eval,
FILE *  data_stream,
const string &  anc_location = "",
bool  with_mime_headers = true 
) const [virtual]

Send the data in the DDS object back to the client program. The data is encoded in XDR format, and enclosed in a MIME document which is all sent to data_stream. If this is being called from a CGI, data_stream is probably stdout and writing to it has the effect of sending the response back to the client.

Parameters:
dds A DDS object containing the data to be sent.
eval A reference to the ConstraintEvaluator to use.
data_stream Write the response to this stream.
anc_location A directory to search for ancillary files (in addition to the CWD). This is used in a call to get_data_last_modified_time().
with_mime_headers If true, include the MIME headers in the response. Defaults to true.
Returns:
void

Definition at line 873 of file DODSFilter.cc.

References compressor(), d_ce, d_cgi_ver, d_comp, d_dataset, d_timeout, dataset_constraint(), deflate, deflate_exists(), dods_data, establish_timeout(), ConstraintEvaluator::eval_function(), functional_constraint(), ConstraintEvaluator::functional_expression(), get_data_last_modified_time(), get_request_if_modified_since(), is_conditional(), ConstraintEvaluator::parse_constraint(), set_mime_binary(), set_mime_not_modified(), DDS::set_timeout(), DDS::tag_nested_sequences(), unknown_error, and x_plain.

Here is the call graph for this function:

void DODSFilter::send_dds ( FILE *  out,
DDS dds,
ConstraintEvaluator eval,
bool  constrained = false,
const string &  anc_location = "",
bool  with_mime_headers = true 
) const [virtual]

This function formats and prints an ASCII representation of a DDS on stdout. When called by a CGI program, this has the effect of sending a DDS object back to the client program. Either an entire DDS or a constrained DDS may be sent.

Parameters:
out The output stream to which the DAS is to be sent.
dds The DDS to send back to a client.
eval A reference to the ConstraintEvaluator to use.
constrained If this argument is true, evaluate the current constraint expression and send the `constrained DDS' back to the client.
anc_location The directory in which the external DAS file resides.
with_mime_headers If true (the default) send MIME headers.
Returns:
void
See also:
DDS

Definition at line 762 of file DODSFilter.cc.

References d_ce, d_cgi_ver, dods_dds, ConstraintEvaluator::functional_expression(), get_dds_last_modified_time(), get_request_if_modified_since(), is_conditional(), ConstraintEvaluator::parse_constraint(), DDS::print(), DDS::print_constrained(), set_mime_not_modified(), set_mime_text(), and x_plain.

Here is the call graph for this function:

void DODSFilter::send_dds ( DDS dds,
ConstraintEvaluator eval,
bool  constrained = false,
const string &  anc_location = "",
bool  with_mime_headers = true 
) const [virtual]

Definition at line 793 of file DODSFilter.cc.

void DODSFilter::send_ddx ( DDS dds,
ConstraintEvaluator eval,
FILE *  out,
bool  with_mime_headers = true 
) const [virtual]

Send the DDX response. The DDX never contains data, instead it holds a reference to a Blob response which is used to get the data values. The DDS and DAS objects are built using code that already exists in the servers.

Parameters:
dds The dataset's DDS with attributes in the variables.
eval A reference to the ConstraintEvaluator to use.
out Destination
with_mime_headers If true, include the MIME headers in the response. Defaults to true.

Definition at line 961 of file DODSFilter.cc.

References d_anc_dir, d_ce, d_cgi_ver, d_url, dap4_ddx, get_dds_last_modified_time(), get_request_if_modified_since(), is_conditional(), ConstraintEvaluator::parse_constraint(), DDS::print_xml(), set_mime_not_modified(), set_mime_text(), and x_plain.

Here is the call graph for this function:

void DODSFilter::send_version_info (  )  const [virtual]

This function formats and sends to stdout version information from the httpd server, the server dispatch scripts, the DODS core software, and (optionally) the dataset.

Definition at line 704 of file DODSFilter.cc.

References d_cgi_ver, do_version(), and get_dataset_version().

Here is the call graph for this function:

void DODSFilter::set_ce ( string  _ce  )  [virtual]

Definition at line 347 of file DODSFilter.cc.

References d_ce, and www2id().

Referenced by process_options().

Here is the call graph for this function:

void DODSFilter::set_cgi_version ( string  version  )  [virtual]

Set the CGI/Server version number. Servers use this when answering requests for version information. The version `number' should include both the name of the server (e.g., ff_dods) as well as the version number. Since this information is typically divined by configure, it's up to the executable to poke the correct value in using this method.

Note that the -v switch that this class understands is deprecated since it is usually called by Perl code. It makes more sense to have the actual C++ software set the version string.

Parameters:
version A version string for this server.

Definition at line 318 of file DODSFilter.cc.

References d_cgi_ver.

Referenced by process_options().

void DODSFilter::set_dataset_name ( const string  _dataset  )  [virtual]

Definition at line 367 of file DODSFilter.cc.

References d_dataset, and www2id().

Here is the call graph for this function:

void DODSFilter::set_response ( const string &  r  )  [virtual]

Set the response to be returned. Valid response names are "DAS", "DDS", "DataDDS, "Version".

Parameters:
r The name of the object.
Exceptions:
InternalErr Thrown if the response is not one of the valid names.

Definition at line 411 of file DODSFilter.cc.

References d_action, d_response, DAS_Response, DataDDS_Response, DDS_Response, DDX_Response, print_usage(), and Version_Response.

Referenced by process_options().

Here is the call graph for this function:

void DODSFilter::set_timeout ( int  t = 0  ) 

Set the server's timeout value. A value of zero (the default) means no timeout.

Parameters:
t Server timeout in seconds. Default is zero (no timeout).

Definition at line 591 of file DODSFilter.cc.

References d_timeout.

void DODSFilter::set_URL ( const string &  url  )  [virtual]

Set the URL. Set the URL sent to the server.

Parameters:
url The URL, minus the constraint.

Definition at line 384 of file DODSFilter.cc.

References d_url, and print_usage().

Referenced by process_options().

Here is the call graph for this function:


Member Data Documentation

string DODSFilter::d_action [protected]

Definition at line 109 of file DODSFilter.h.

Referenced by get_action(), and set_response().

time_t DODSFilter::d_anc_das_lmt [protected]

Definition at line 113 of file DODSFilter.h.

Referenced by initialize().

time_t DODSFilter::d_anc_dds_lmt [protected]

Definition at line 114 of file DODSFilter.h.

Referenced by initialize().

string DODSFilter::d_anc_dir [protected]

Definition at line 103 of file DODSFilter.h.

Referenced by get_das_last_modified_time(), get_data_last_modified_time(), get_dds_last_modified_time(), initialize(), process_options(), read_ancillary_das(), read_ancillary_dds(), send_blob(), and send_ddx().

string DODSFilter::d_anc_file [protected]

Definition at line 104 of file DODSFilter.h.

Referenced by get_das_last_modified_time(), get_data_last_modified_time(), get_dds_last_modified_time(), initialize(), process_options(), read_ancillary_das(), and read_ancillary_dds().

bool DODSFilter::d_bad_options [protected]

Definition at line 96 of file DODSFilter.h.

Referenced by initialize().

string DODSFilter::d_cache_dir [protected]

Definition at line 105 of file DODSFilter.h.

Referenced by get_cache_dir(), initialize(), and process_options().

string DODSFilter::d_ce [protected]

Definition at line 101 of file DODSFilter.h.

Referenced by get_ce(), initialize(), send_blob(), send_data(), send_dds(), send_ddx(), and set_ce().

string DODSFilter::d_cgi_ver [protected]

Definition at line 102 of file DODSFilter.h.

Referenced by get_cgi_version(), initialize(), send_blob(), send_das(), send_data(), send_dds(), send_ddx(), send_version_info(), and set_cgi_version().

bool DODSFilter::d_comp [protected]

Definition at line 95 of file DODSFilter.h.

Referenced by initialize(), process_options(), send_blob(), and send_data().

bool DODSFilter::d_conditional_request [protected]

Definition at line 97 of file DODSFilter.h.

Referenced by initialize(), is_conditional(), and process_options().

string DODSFilter::d_dataset [protected]

Definition at line 100 of file DODSFilter.h.

Referenced by dataset_constraint(), functional_constraint(), get_das_last_modified_time(), get_data_last_modified_time(), get_dataset_last_modified_time(), get_dataset_name(), get_dds_last_modified_time(), initialize(), read_ancillary_das(), read_ancillary_dds(), send_blob(), send_data(), and set_dataset_name().

time_t DODSFilter::d_if_modified_since [protected]

Definition at line 115 of file DODSFilter.h.

Referenced by get_request_if_modified_since(), initialize(), and process_options().

string DODSFilter::d_program_name [protected]

Definition at line 99 of file DODSFilter.h.

Referenced by initialize().

Response DODSFilter::d_response [protected]

Definition at line 108 of file DODSFilter.h.

Referenced by get_response(), initialize(), and set_response().

int DODSFilter::d_timeout [protected]

Definition at line 111 of file DODSFilter.h.

Referenced by establish_timeout(), get_timeout(), initialize(), process_options(), send_data(), and set_timeout().

string DODSFilter::d_url [protected]

Definition at line 106 of file DODSFilter.h.

Referenced by get_URL(), initialize(), send_ddx(), and set_URL().


The documentation for this class was generated from the following files:
Generated on Wed Jun 27 12:57:50 2007 for libdap++ by  doxygen 1.4.7