libdap++  Updated for version 3.8.2
mime_util.cc File Reference
#include "config.h"
#include <cstring>
#include <cstdio>
#include <ctype.h>
#include <time.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <sys/wait.h>
#include <iostream>
#include <sstream>
#include <fstream>
#include <string>
#include "mime_util.h"
#include "Ancillary.h"
#include "util.h"
#include "debug.h"
Include dependency graph for mime_util.cc:

Go to the source code of this file.

Namespaces

namespace  libdap
 

Macros

#define CRLF   "\r\n"
 
#define FILE_DELIMITER   '/'
 

Functions

MIME Utilities

A collection of useful functions for writing MIME headers for OPeNDAP servers.

The CGI utilities include a variety of functions useful to programmers developing OPeNDAP CGI filter programs. However, before jumping in and using these, look at the class ResponseBuilder. Always choose to use that class over these functions if you can. Many of these functions were used by the CGI programs that made up the first DAP server; all of those are deprecated and the ResponseBuilder class should be used instead. Some of the other functions are used by ResponseBuilder and the client-side parsing code that needs to identify MIME headers, boundaries, etc.

See Also
ResponseBuilder, Connect, DDXParserSAX2
time_t libdap::last_modified_time (const string &name)
 
string libdap::rfc822_date (const time_t t)
 
bool libdap::do_version (const string &script_ver, const string &dataset_ver)
 Send a version number. More...
 
void libdap::ErrMsgT (const string &Msgt)
 Logs an error message. More...
 
string libdap::name_path (const string &path)
 Returns the filename portion of a pathname. More...
 
ObjectType libdap::get_type (const string &value)
 
ObjectType libdap::get_description_type (const string &value)
 
string libdap::get_next_mime_header (FILE *in)
 
void libdap::parse_mime_header (const string &header, string &name, string &value)
 
bool libdap::is_boundary (const char *line, const string &boundary)
 
string libdap::read_multipart_boundary (FILE *in, const string &boundary)
 
string libdap::cid_to_header_value (const string &cid)
 
bool libdap::found_override (string name, string &doc)
 
bool libdap::remove_mime_header (FILE *in)
 Read and discard the MIME header of the stream in. More...
 
MIME utility functions

These functions are used to create the MIME headers for a message from a server to a client. They are public but should not be called directly unless absolutely necessary. Use DODSFilter instead.

NB: These functions actually write both the response status line and the header.

Deprecated:
Use ResponseBuilder instead.
See Also
DODSFilter
void libdap::set_mime_text (FILE *out, ObjectType type, const string &ver, EncodingType enc, const time_t last_modified)
 
void libdap::set_mime_text (ostream &strm, ObjectType type, const string &ver, EncodingType enc, const time_t last_modified)
 
void libdap::set_mime_html (FILE *out, ObjectType type, const string &ver, EncodingType enc, const time_t last_modified)
 
void libdap::set_mime_html (ostream &strm, ObjectType type, const string &ver, EncodingType enc, const time_t last_modified)
 
void libdap::set_mime_binary (FILE *out, ObjectType type, const string &ver, EncodingType enc, const time_t last_modified)
 
void libdap::set_mime_binary (ostream &strm, ObjectType type, const string &ver, EncodingType enc, const time_t last_modified)
 
void libdap::set_mime_multipart (ostream &strm, const string &boundary, const string &start, ObjectType type, const string &version, EncodingType enc, const time_t last_modified)
 
void libdap::set_mime_ddx_boundary (ostream &strm, const string &boundary, const string &cid, ObjectType type, EncodingType enc)
 
void libdap::set_mime_data_boundary (ostream &strm, const string &boundary, const string &cid, ObjectType type, EncodingType enc)
 
void libdap::read_multipart_headers (FILE *in, const string &content_type, const ObjectType object_type, const string &cid)
 
void libdap::set_mime_error (FILE *out, int code, const string &reason, const string &version)
 
void libdap::set_mime_error (ostream &strm, int code, const string &reason, const string &version)
 
void libdap::set_mime_not_modified (FILE *out)
 Send a `Not Modified' response. More...
 
void libdap::set_mime_not_modified (ostream &strm)
 Send a `Not Modified' response. More...
 

Variables

const size_t libdap::line_length = 1024
 

Macro Definition Documentation

#define FILE_DELIMITER   '/'

Definition at line 82 of file mime_util.cc.

Referenced by libdap::name_path().