Odil
A C++11 library for the DICOM standard
Loading...
Searching...
No Matches
odil::webservices Namespace Reference

Classes

struct  BulkData
 Bulk data transmitted by web services (WADO-RS, STOW, etc.). More...
class  HTTPRequest
 HTTP request. More...
class  HTTPResponse
 HTTP Response. More...
struct  ItemWithParameters
 This container encapsulates the item with parameters as found in varied HTTP headers (Accept, Accept-Charset, Accept-Encoding, Accept-Language, Content-Type). More...
class  Message
 RFC 5322 Message (i.e. headers with body). More...
class  QIDORSRequest
 QIDO-RS request generator and parser. More...
class  QIDORSResponse
 QIDO-RS response generator and parser. More...
class  Selector
 Target (in the DICOM data model) of the request. More...
class  STOWRSRequest
 STOW-RS request generator and parser. More...
class  STOWRSResponse
 STOW-RS request generator and parser. More...
struct  URL
 Uniform resource locator. More...
class  WADORSRequest
 WADO-RS request generator and parser. More...
class  WADORSResponse
 WADO-RS response generator and parser. More...

Enumerations

enum class  Type { None , DICOM , BulkData , PixelData }
 Type of the request or response (use for WADO & QIDO). More...
enum class  Representation { DICOM , DICOM_XML , DICOM_JSON }
 Data representation for DICOM requests and responses. More...

Functions

std::istream & operator>> (std::istream &stream, HTTPRequest &request)
 Input an HTTP request from a stream.
std::ostream & operator<< (std::ostream &stream, HTTPRequest const &request)
 Output an HTTP request to a stream.
std::istream & operator>> (std::istream &stream, HTTPResponse &Response)
 Input an HTTP response from a stream.
std::ostream & operator<< (std::ostream &stream, HTTPResponse const &Response)
 Output an HTTP response to a stream.
std::istream & operator>> (std::istream &stream, ItemWithParameters &item)
 Input an AcceptableItem from a stream.
std::ostream & operator<< (std::ostream &stream, ItemWithParameters const &item)
 Output an AcceptableItem to a stream.
std::istream & operator>> (std::istream &stream, Message &message)
 Input a Message from a stream.
std::ostream & operator<< (std::ostream &stream, Message const &message)
 Output a Message to a stream.
bool is_multipart_related (Message const &message)
 Test whether the message is multipart/related.
std::size_t count_parts (Message const &message)
 Return the number of parts in the message, 0 if the message is not multipart/related.
std::string random_boundary ()
 Return a random multipart/related boundary.
template<typename Iterator, typename UnaryFunctor>
void transform_parts (Message const &message, Iterator destination, UnaryFunctor functor)
 Transform each part of a multipart/related message.
template<typename UnaryFunctor>
void for_each_part (Message const &message, UnaryFunctor functor)
 Use to call a functor for each part of a multipart/related message.
template<typename Iterator, typename UnaryFunction>
std::ostream & accumulate_parts (Iterator begin, Iterator end, UnaryFunction serialize, std::ostream &stream, std::string const &boundary)
 Serialize the (begin, end) sequence as a multipart/related message body in stream as described in the RFC 2046 https://tools.ietf.org/html/rfc2046#section-5.1.1.

Enumeration Type Documentation

◆ Representation

Data representation for DICOM requests and responses.

Enumerator
DICOM 
DICOM_XML 
DICOM_JSON 

◆ Type

enum class odil::webservices::Type
strong

Type of the request or response (use for WADO & QIDO).

DICOM means DICOM data, either in binary, XML or JSON format; bulk data is large (application-defined) data in binary format; pixel data is the pixel data stored in instances or frames, either in uncompressed or compressed format.

Enumerator
None 
DICOM 
BulkData 
PixelData 

Function Documentation

◆ accumulate_parts()

template<typename Iterator, typename UnaryFunction>
std::ostream & odil::webservices::accumulate_parts ( Iterator begin,
Iterator end,
UnaryFunction serialize,
std::ostream & stream,
std::string const & boundary )

Serialize the (begin, end) sequence as a multipart/related message body in stream as described in the RFC 2046 https://tools.ietf.org/html/rfc2046#section-5.1.1.

◆ count_parts()

std::size_t odil::webservices::count_parts ( Message const & message)

Return the number of parts in the message, 0 if the message is not multipart/related.

◆ for_each_part()

template<typename UnaryFunctor>
void odil::webservices::for_each_part ( Message const & message,
UnaryFunctor functor )

Use to call a functor for each part of a multipart/related message.

◆ is_multipart_related()

bool odil::webservices::is_multipart_related ( Message const & message)

Test whether the message is multipart/related.

◆ operator<<() [1/4]

std::ostream & odil::webservices::operator<< ( std::ostream & stream,
HTTPRequest const & request )

Output an HTTP request to a stream.

◆ operator<<() [2/4]

std::ostream & odil::webservices::operator<< ( std::ostream & stream,
HTTPResponse const & Response )

Output an HTTP response to a stream.

◆ operator<<() [3/4]

std::ostream & odil::webservices::operator<< ( std::ostream & stream,
ItemWithParameters const & item )

Output an AcceptableItem to a stream.

◆ operator<<() [4/4]

std::ostream & odil::webservices::operator<< ( std::ostream & stream,
Message const & message )

Output a Message to a stream.

◆ operator>>() [1/4]

std::istream & odil::webservices::operator>> ( std::istream & stream,
HTTPRequest & request )

Input an HTTP request from a stream.

◆ operator>>() [2/4]

std::istream & odil::webservices::operator>> ( std::istream & stream,
HTTPResponse & Response )

Input an HTTP response from a stream.

◆ operator>>() [3/4]

std::istream & odil::webservices::operator>> ( std::istream & stream,
ItemWithParameters & item )

Input an AcceptableItem from a stream.

◆ operator>>() [4/4]

std::istream & odil::webservices::operator>> ( std::istream & stream,
Message & message )

Input a Message from a stream.

◆ random_boundary()

std::string odil::webservices::random_boundary ( )

Return a random multipart/related boundary.

◆ transform_parts()

template<typename Iterator, typename UnaryFunctor>
void odil::webservices::transform_parts ( Message const & message,
Iterator destination,
UnaryFunctor functor )

Transform each part of a multipart/related message.