40#include "media_types.h"
43#include "ObjectType.h"
46#ifndef _encoding_type_h
47#include "EncodingType.h"
73bool is_boundary(
const char *line,
const std::string &boundary);
78void parse_mime_header(
const std::string &header, std::string &name, std::string &value);
79std::string
name_path(
const std::string &path);
82void read_multipart_headers(std::istream &in,
const std::string &content_type,
const ObjectType object_type,
83 const std::string &cid =
"");
91 const std::string &cid =
"");
92bool do_version(
const std::string &script_ver,
const std::string &dataset_ver);
93void ErrMsgT(
const std::string &Msgt);
94ObjectType
get_type(
const std::string &value);
99bool found_override(std::string name, std::string &doc);
115void set_mime_text(FILE *out, ObjectType type = unknown_type,
const std::string &version =
"",
116 EncodingType enc = x_plain,
const time_t last_modified = 0);
117void set_mime_text(std::ostream &out, ObjectType type = unknown_type,
const std::string &version =
"",
118 EncodingType enc = x_plain,
const time_t last_modified = 0);
120 const time_t last_modified = 0,
const std::string &protocol =
"");
122void set_mime_html(FILE *out, ObjectType type = unknown_type,
const std::string &version =
"",
123 EncodingType enc = x_plain,
const time_t last_modified = 0);
124void set_mime_html(std::ostream &out, ObjectType type = unknown_type,
const std::string &version =
"",
125 EncodingType enc = x_plain,
const time_t last_modified = 0);
127 const time_t last_modified = 0,
const std::string &protocol =
"");
129void set_mime_binary(FILE *out, ObjectType type = unknown_type,
const std::string &version =
"",
130 EncodingType enc = x_plain,
const time_t last_modified = 0);
131void set_mime_binary(std::ostream &out, ObjectType type = unknown_type,
const std::string &version =
"",
132 EncodingType enc = x_plain,
const time_t last_modified = 0);
134 const time_t last_modified = 0,
const std::string &protocol =
"");
136void set_mime_multipart(std::ostream &out,
const std::string &boundary,
const std::string &start,
137 ObjectType type = unknown_type,
const std::string &version =
"",
EncodingType enc = x_plain,
138 const time_t last_modified = 0);
140void set_mime_multipart(std::ostream &out,
const std::string &boundary,
const std::string &start,
141 ObjectType type = unknown_type,
EncodingType enc = x_plain,
const time_t last_modified = 0,
142 const std::string &protocol =
"",
const std::string &url =
"");
144void set_mime_ddx_boundary(std::ostream &out,
const std::string &boundary,
const std::string &start,
145 ObjectType type = unknown_type,
EncodingType enc = x_plain);
147void set_mime_data_boundary(std::ostream &out,
const std::string &boundary,
const std::string &cid,
148 ObjectType type = unknown_type,
EncodingType enc = x_plain);
150void set_mime_error(FILE *out,
int code = 404,
const std::string &reason =
"Dataset not found",
151 const std::string &version =
"");
152void set_mime_error(std::ostream &out,
int code = 404,
const std::string &reason =
"Dataset not found",
153 const std::string &version =
"");
top level DAP object to house generic methods
string read_multipart_boundary(FILE *in, const string &boundary)
void set_mime_error(FILE *out, int code, const string &reason, const string &version)
void set_mime_html(FILE *out, ObjectType type, const string &ver, EncodingType enc, const time_t last_modified)
ObjectType get_description_type(const string &value)
string cid_to_header_value(const string &cid)
void parse_mime_header(const string &header, string &name, string &value)
time_t last_modified_time(const string &name)
string name_path(const string &path)
Returns the filename portion of a pathname.
void set_mime_not_modified(FILE *out)
Send a ‘Not Modified’ response.
void set_mime_binary(FILE *out, ObjectType type, const string &ver, EncodingType enc, const time_t last_modified)
bool do_version(const string &script_ver, const string &dataset_ver)
Send a version number.
bool remove_mime_header(FILE *in)
Read and discard the MIME header of the stream in.
void read_multipart_headers(FILE *in, const string &content_type, const ObjectType object_type, const string &cid)
EncodingType
The type of encoding used on the current stream.
void ErrMsgT(const string &Msgt)
Logs an error message.
ObjectType get_type(const string &value)
string rfc822_date(const time_t t)
bool is_boundary(const char *line, const string &boundary)
void set_mime_text(FILE *out, ObjectType type, const string &ver, EncodingType enc, const time_t last_modified)
string get_next_mime_header(FILE *in)