libzypp 17.35.19
|
Command frame for communication with PluginScript. More...
#include <zypp-core/rpc/PluginFrame.h>
Classes | |
struct | Impl |
PluginFrame implementation. More... | |
Public Types | |
using | Exception = PluginFrameException |
Default exception type. | |
using | HeaderList = std::multimap<std::string, std::string> |
The header list. | |
using | HeaderListIterator = HeaderList::const_iterator |
Header list iterator. | |
Public Member Functions | |
PluginFrame () | |
Default ctor (empty frame) | |
PluginFrame (const std::string &command_r) | |
Ctor taking the command. | |
PluginFrame (const std::string &command_r, std::string body_r) | |
Ctor taking command and body. | |
PluginFrame (const std::string &command_r, ByteArray body_r) | |
Ctor taking command and body. | |
PluginFrame (const std::string &command_r, HeaderInitializerList contents_r) | |
Ctor taking the command and a HeaderInitializerList. | |
PluginFrame (const std::string &command_r, ByteArray body_r, HeaderInitializerList contents_r) | |
Ctor taking command, body and a HeaderInitializerList. | |
PluginFrame (std::istream &stream_r) | |
Ctor reading frame data from a stream. | |
bool | empty () const |
Whether this is an empty frame. | |
operator bool () const | |
Evaluate in a boolean context (not an empty frame) | |
const std::string & | command () const |
Return the frame command. | |
void | setCommand (const std::string &command_r) |
Set the frame command. | |
bool | isAckCommand () const |
Convenience to identify an ACK command. | |
bool | isErrorCommand () const |
Convenience to identify an ERROR command. | |
bool | isEnomethodCommand () const |
Convenience to identify an _ENOMETHOD command. | |
const ByteArray & | body () const |
Return the frame body. | |
ByteArray & | bodyRef () |
Return a reference to the frame body. | |
void | setBody (const std::string &body_r) |
Set the frame body. | |
void | setBody (const ByteArray &body_r) |
Set the frame body. | |
void | setBody (ByteArray &&body_r) |
Set the frame body. | |
const HeaderList & | headerList () const |
The header list. | |
bool | headerEmpty () const |
Whether header list is empty. | |
unsigned | headerSize () const |
Return size of the header list. | |
HeaderListIterator | headerBegin () const |
Return iterator pointing to the 1st header (or headerEnd) | |
HeaderListIterator | headerEnd () const |
Return iterator pointing behind the last header. | |
void | headerClear () |
Clear the list of headers. | |
bool | hasKey (const std::string &key_r) const |
Whether the header list contains at least one entry for key_r . | |
bool | keyEmpty (const std::string &key_r) const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
bool | keySize (const std::string &key_r) const |
Return number of header entries for key_r . | |
HeaderListIterator | keyBegin (const std::string &key_r) const |
Return iterator pointing to the 1st header for key_r (or keyEnd(key_r)) | |
HeaderListIterator | keyEnd (const std::string &key_r) const |
Return iterator pointing behind the last header for key_r . | |
const std::string & | getHeader (const std::string &key_r) const |
Return header value for key_r . | |
const std::string & | getHeader (const std::string &key_r, const std::string &default_r) const |
Return header value for key_r or default_r if it does not exist. | |
const std::string & | getHeaderNT (const std::string &key_r, const std::string &default_r=std::string()) const |
Not throwing version returing one of the matching header values or default_r string. | |
void | setHeader (const std::string &key_r, const std::string &value_r=std::string()) |
Set header for key_r removing all other occurrences of key_r . | |
void | setHeader (HeaderInitializerList contents_r) |
Set a new header list. | |
void | addHeader (const std::string &key_r, const std::string &value_r=std::string()) |
Add header for key_r leaving already existing headers for key_r unchanged. | |
void | addHeader (HeaderInitializerList contents_r) |
void | addRawHeader (const ByteArray &header) |
void | clearHeader (const std::string &key_r) |
Remove all headers for key_r . | |
std::ostream & | writeTo (std::ostream &stream_r) const |
Write frame to stream. | |
std::istream & | readFrom (std::istream &stream_r) |
Read frame from stream. | |
Static Public Member Functions | |
static const std::string & | ackCommand () |
"ACK" command. | |
static const std::string & | errorCommand () |
"ERROR" command. | |
static const std::string & | enomethodCommand () |
"_ENOMETHOD" command. | |
static const std::string & | contentLengthHeader () |
"content-lenght" header name | |
static std::ostream & | writeTo (std::ostream &stream_r, const PluginFrame &frame_r) |
static std::istream & | readFrom (std::istream &stream_r, PluginFrame &frame_r) |
Private Types | |
using | HeaderInitializerList = const std::initializer_list<std::pair<std::string, std::string>> & |
Private Member Functions | |
HeaderList & | headerList () |
Modifyalble header list for internal use only. | |
Private Attributes | |
RWCOW_pointer< Impl > | _pimpl |
Pointer to implementation. | |
Friends | |
std::ostream & | operator<< (std::ostream &str, const PluginFrame &obj) |
bool | operator== (const PluginFrame &lhs, const PluginFrame &rhs) |
Related Symbols | |
(Note that these are not member symbols.) | |
std::ostream & | operator<< (std::ostream &str, const PluginFrame &obj) |
Stream output for logging. | |
std::ostream & | dumpOn (std::ostream &str, const PluginFrame &obj) |
Stream output writing all data for logging (no throw) | |
std::istream & | operator>> (std::istream &str, PluginFrame &obj) |
Construct from stream. | |
bool | operator== (const PluginFrame &lhs, const PluginFrame &rhs) |
Comparison based on content. | |
bool | operator!= (const PluginFrame &lhs, const PluginFrame &rhs) |
Comparison based on content. | |
Command frame for communication with PluginScript.
Definition at line 41 of file PluginFrame.h.
|
private |
Definition at line 46 of file PluginFrame.h.
Default exception type.
Definition at line 60 of file PluginFrame.h.
using zypp::PluginFrame::HeaderList = std::multimap<std::string, std::string> |
The header list.
Definition at line 149 of file PluginFrame.h.
using zypp::PluginFrame::HeaderListIterator = HeaderList::const_iterator |
Header list iterator.
Definition at line 152 of file PluginFrame.h.
zypp::PluginFrame::PluginFrame | ( | ) |
Default ctor (empty frame)
Definition at line 408 of file PluginFrame.cc.
zypp::PluginFrame::PluginFrame | ( | const std::string & | command_r | ) |
Ctor taking the command.
PluginFrameException | If setCommand throws |
Definition at line 412 of file PluginFrame.cc.
zypp::PluginFrame::PluginFrame | ( | const std::string & | command_r, |
std::string | body_r ) |
Ctor taking command and body.
PluginFrameException | If setCommand throws |
Definition at line 416 of file PluginFrame.cc.
zypp::PluginFrame::PluginFrame | ( | const std::string & | command_r, |
ByteArray | body_r ) |
Ctor taking command and body.
PluginFrameException | If setCommand throws |
Definition at line 420 of file PluginFrame.cc.
zypp::PluginFrame::PluginFrame | ( | const std::string & | command_r, |
HeaderInitializerList | contents_r ) |
Ctor taking the command and a HeaderInitializerList.
PluginFrameException | If setCommand throws |
Definition at line 424 of file PluginFrame.cc.
zypp::PluginFrame::PluginFrame | ( | const std::string & | command_r, |
ByteArray | body_r, | ||
HeaderInitializerList | contents_r ) |
Ctor taking command, body and a HeaderInitializerList.
PluginFrameException | If setCommand throws |
Definition at line 428 of file PluginFrame.cc.
zypp::PluginFrame::PluginFrame | ( | std::istream & | stream_r | ) |
Ctor reading frame data from a stream.
PluginFrameException | On error reading from stream |
PluginFrameException | On error parsing the data |
Definition at line 432 of file PluginFrame.cc.
|
static |
"ACK" command.
Definition at line 384 of file PluginFrame.cc.
|
static |
"ERROR" command.
Definition at line 390 of file PluginFrame.cc.
|
static |
"_ENOMETHOD" command.
Definition at line 396 of file PluginFrame.cc.
|
static |
"content-lenght" header name
Definition at line 402 of file PluginFrame.cc.
bool zypp::PluginFrame::empty | ( | ) | const |
Whether this is an empty frame.
Definition at line 436 of file PluginFrame.cc.
|
inlineexplicit |
Evaluate in a boolean context (not an empty frame)
Definition at line 101 of file PluginFrame.h.
const std::string & zypp::PluginFrame::command | ( | ) | const |
Return the frame command.
Definition at line 439 of file PluginFrame.cc.
void zypp::PluginFrame::setCommand | ( | const std::string & | command_r | ) |
Set the frame command.
PluginFrameException | If illegal command string (e.g. multiline) |
Definition at line 442 of file PluginFrame.cc.
|
inline |
Convenience to identify an ACK command.
Definition at line 114 of file PluginFrame.h.
|
inline |
Convenience to identify an ERROR command.
Definition at line 118 of file PluginFrame.h.
|
inline |
Convenience to identify an _ENOMETHOD command.
Definition at line 122 of file PluginFrame.h.
const ByteArray & zypp::PluginFrame::body | ( | ) | const |
Return the frame body.
Definition at line 445 of file PluginFrame.cc.
ByteArray & zypp::PluginFrame::bodyRef | ( | ) |
Return a reference to the frame body.
This may avoid creating unnecessary copies if you want to manipulate large body data.
Definition at line 448 of file PluginFrame.cc.
void zypp::PluginFrame::setBody | ( | const std::string & | body_r | ) |
Set the frame body.
Definition at line 451 of file PluginFrame.cc.
Set the frame body.
Definition at line 454 of file PluginFrame.cc.
Set the frame body.
Definition at line 457 of file PluginFrame.cc.
|
private |
Modifyalble header list for internal use only.
Definition at line 463 of file PluginFrame.cc.
const PluginFrame::HeaderList & zypp::PluginFrame::headerList | ( | ) | const |
The header list.
Definition at line 466 of file PluginFrame.cc.
|
inline |
Whether header list is empty.
Definition at line 163 of file PluginFrame.h.
|
inline |
Return size of the header list.
Definition at line 167 of file PluginFrame.h.
|
inline |
Return iterator pointing to the 1st header (or headerEnd)
Definition at line 171 of file PluginFrame.h.
|
inline |
Return iterator pointing behind the last header.
Definition at line 175 of file PluginFrame.h.
|
inline |
Clear the list of headers.
Definition at line 179 of file PluginFrame.h.
|
inline |
Whether the header list contains at least one entry for key_r
.
Definition at line 184 of file PluginFrame.h.
|
inline |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
Definition at line 188 of file PluginFrame.h.
|
inline |
Return number of header entries for key_r
.
Definition at line 192 of file PluginFrame.h.
|
inline |
Return iterator pointing to the 1st header for key_r
(or keyEnd(key_r))
Definition at line 196 of file PluginFrame.h.
|
inline |
Return iterator pointing behind the last header for key_r
.
Definition at line 200 of file PluginFrame.h.
const std::string & zypp::PluginFrame::getHeader | ( | const std::string & | key_r | ) | const |
Return header value for key_r
.
PluginFrameException | If no header for key_r exists. |
PluginFrameException | If multiple header for key_r exist. |
Definition at line 469 of file PluginFrame.cc.
const std::string & zypp::PluginFrame::getHeader | ( | const std::string & | key_r, |
const std::string & | default_r ) const |
Return header value for key_r
or default_r
if it does not exist.
PluginFrameException | If multiple header for key_r exist. |
Definition at line 472 of file PluginFrame.cc.
const std::string & zypp::PluginFrame::getHeaderNT | ( | const std::string & | key_r, |
const std::string & | default_r = std::string() ) const |
Not throwing version returing one of the matching header values or default_r
string.
Definition at line 475 of file PluginFrame.cc.
void zypp::PluginFrame::setHeader | ( | const std::string & | key_r, |
const std::string & | value_r = std::string() ) |
Set header for key_r
removing all other occurrences of key_r
.
PluginFrameException | If key contains illegal chars (NL or :) |
PluginFrameException | If value contains illegal chars (NL ) |
Definition at line 478 of file PluginFrame.cc.
|
inline |
Set a new header list.
PluginFrameException | If key contains illegal chars (NL or :) |
PluginFrameException | If value contains illegal chars (NL ) |
Definition at line 228 of file PluginFrame.h.
void zypp::PluginFrame::addHeader | ( | const std::string & | key_r, |
const std::string & | value_r = std::string() ) |
Add header for key_r
leaving already existing headers for key_r
unchanged.
PluginFrameException | If key contains illegal chars (NL or :) |
PluginFrameException | If value contains illegal chars (NL ) |
Definition at line 481 of file PluginFrame.cc.
void zypp::PluginFrame::addHeader | ( | HeaderInitializerList | contents_r | ) |
Definition at line 484 of file PluginFrame.cc.
Parses the header line in header and if it is valid adds it to the internal header list.
Definition at line 487 of file PluginFrame.cc.
void zypp::PluginFrame::clearHeader | ( | const std::string & | key_r | ) |
Remove all headers for key_r
.
Definition at line 492 of file PluginFrame.cc.
std::ostream & zypp::PluginFrame::writeTo | ( | std::ostream & | stream_r | ) | const |
Write frame to stream.
PluginFrameException | On error writing to stream |
Definition at line 460 of file PluginFrame.cc.
|
inlinestatic |
Definition at line 255 of file PluginFrame.h.
|
inline |
Read frame from stream.
PluginFrameException | If PluginFrame(std::istream&) throws |
Definition at line 261 of file PluginFrame.h.
|
inlinestatic |
Definition at line 265 of file PluginFrame.h.
|
friend |
Definition at line 497 of file PluginFrame.cc.
|
friend |
Definition at line 500 of file PluginFrame.cc.
|
related |
Stream output for logging.
Definition at line 497 of file PluginFrame.cc.
|
related |
Stream output writing all data for logging (no throw)
Definition at line 280 of file PluginFrame.h.
|
related |
Construct from stream.
Definition at line 284 of file PluginFrame.h.
|
related |
Comparison based on content.
Definition at line 500 of file PluginFrame.cc.
|
related |
Comparison based on content.
Definition at line 291 of file PluginFrame.h.
|
private |
Pointer to implementation.
Definition at line 273 of file PluginFrame.h.