// Squawk messenger. // Copyright (C) 2019 Yury Gubich // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . #ifndef SHARED_TRUSTSUMMARY_H #define SHARED_TRUSTSUMMARY_H #include #include #include #include "enums.h" namespace Shared { class TrustSummary { public: TrustSummary(); bool operator == (const TrustSummary& other); bool operator != (const TrustSummary& other); void set(EncryptionProtocol protocol, TrustLevel level, uint8_t amount); uint8_t increment(EncryptionProtocol protocol, TrustLevel level); uint8_t decrement(EncryptionProtocol protocol, TrustLevel level); uint8_t amount(EncryptionProtocol protocol, TrustLevel level) const; bool hasKeys(EncryptionProtocol protocol) const; bool hasTrustedKeys(EncryptionProtocol protocol) const; bool hasUntrustedKeys(EncryptionProtocol protocol) const; private: typedef std::map Amounts; typedef std::map Data; Data data; public: static const std::map protocolKeys; static const std::map protocolValues; private: static const std::set trustedLevels; static const std::set untrustedLevels; }; } Q_DECLARE_METATYPE(Shared::TrustSummary) #endif // SHARED_TRUSTSUMMARY_H