diff --git a/include/Whisper/Messages/Priority.hpp b/include/Whisper/Messages/Priority.hpp new file mode 100644 index 0000000..bb275eb --- /dev/null +++ b/include/Whisper/Messages/Priority.hpp @@ -0,0 +1,59 @@ +#pragma once +/* This Source Code Form is subject to the terms of the Mozilla Public +* License, v. 2.0. If a copy of the MPL was not distributed with this +* file, You can obtain one at https://mozilla.org/MPL/2.0/. +*/ +/** @file */ +/** @copyright 2021 MPLv2 */ +#include +#include + +/** +* @brief This is the main namespace for all whisper-com related datatypes and classed. +*/ +namespace Whisper +{ + + /** + * @brief namespace for all data related DataTypes, classes, etc. + */ + namespace Data + { + + /** + * \defgroup data_classifications Classification of Data within Messages + * Data in Message can be classified occording to the non-disclosure of its information. + * In whisper-com certain rules are enforced occording to data classification + * e.g. messages may be dropped or not routed through gateways. + * Furthermore, encryption of data may or may not be enforced. + */ + + + /** + * @brief Enumeration of different data classifications. + * \ingroup data_classifications + * Data classifications classify the data within the payload of a message + * according to six levels. We think six levels should be enough and + * fewer limits the flexibility of the user and more adds to the overall + * complexity. + */ + enum class classification : std::uint8_t + { + /// The data is public and may even be transmitted public to the Internet. + PUBLIC, + /// The data is classified open. Everyone with access to the network may read it + /// but the data is not allowed to be published to the internet or other non local networks. + OPEN, + /// The data is classified RESTRICTED + RESTRICTED, + /// the data is classified CONFIDENTIAL + CONFIDENTIAL, + /// The data is classified as SECRET + SECRET, + /// The data is classified as TOP SECRET. + TOP_SECRET + }; // enum class classification + + }; // namespace Data + +}; // namespace Whisper