1 /*!
2  * \file
3  * \brief Error codes for enveloped_msg submodule.
4  *
5  * \since
6  * v.1.2.0
7  */
8 
9 #pragma once
10 
11 #include <so_5_extra/error_ranges.hpp>
12 
13 namespace so_5 {
14 
15 namespace extra {
16 
17 namespace enveloped_msg {
18 
19 namespace errors {
20 
21 //! Mutability of payload message inside just_envelope can't be changed.
22 /*!
23  * An envelope implemented by just_envelope_t class used mutability
24  * flag from the enveloped payload. This mutability flag can't be changed
25  * after construction of envelope.
26  *
27  * \since
28  * v.1.2.0
29  */
30 const int rc_mutabilty_of_envelope_cannot_be_changed =
31 	::so_5::extra::errors::enveloped_msg_errors + 1;
32 
33 //! An attempt to use empty payload_holder for make an envelope.
34 /*!
35  * This error can be reported is the same payload_hodler will be used
36  * more than one time. For example:
37  * \code
38  * namespace env_ns = so_5::extra::enveloped_msg;
39  * auto payload = env_ns::make<my_message>(...);
40  * payload.envelope<env_ns::just_envelope_t>().send_to(...);
41  * // Now payload object is empty because its content was enveloped and sent.
42  * // This call will lead to rc_empty_payload_holder error.
43  * payload.envelope<another_envelope_type>().send_to(...);
44  * \endcode
45  * \since
46  * v.1.2.0
47  */
48 const int rc_empty_payload_holder =
49 	::so_5::extra::errors::enveloped_msg_errors + 2;
50 
51 } /* namespace errors */
52 
53 } /* namespace enveloped_msg */
54 
55 } /* namespace extra */
56 
57 } /* namespace so_5 */
58 
59