X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/fdee6fdb88e79929c952fea956fa57e5780804cf..afcbfd1a09e22ff4839ba5db42047c96f355506c:/projects/stargazer/plugins/other/smux/types.h diff --git a/projects/stargazer/plugins/other/smux/types.h b/projects/stargazer/plugins/other/smux/types.h index 26d6e24f..2b54f2a2 100644 --- a/projects/stargazer/plugins/other/smux/types.h +++ b/projects/stargazer/plugins/other/smux/types.h @@ -3,32 +3,55 @@ #include #include -#include +#include -#include "asn1/OBJECT_IDENTIFIER.h" +#include "stg/OBJECT_IDENTIFIER.h" class OID { public: - OID(const std::string & str); + explicit OID(const std::string & str); OID(const char * str, size_t length); - OID(const std::vector & arcs); + explicit OID(const std::vector & arcs); OID(const unsigned * arcs, size_t length); - OID(OBJECT_IDENTIFIER_t * oid); + explicit OID(OBJECT_IDENTIFIER_t * oid); OID(const OID & rvalue); ~OID(); + bool addSuffix(const char * suffix, size_t length); + bool addSuffix(const std::string & suffix); + bool addSuffix(const unsigned * suffix, size_t length); + bool addSuffix(const std::vector & suffix); + bool addSuffix(unsigned a, unsigned b); + + OID copyWithSuffix(const char * suffix, size_t length) const; + OID copyWithSuffix(const std::string & suffix) const; + OID copyWithSuffix(const unsigned * suffix, size_t length) const; + OID copyWithSuffix(const std::vector & suffix) const; + OID copyWithSuffix(unsigned a, unsigned b) const; + std::string ToString() const; const std::vector & ToVector() const { return arcs; } void ToOID(OBJECT_IDENTIFIER_t * oid) const; OID & operator=(const OID & rvalue); bool operator==(const OID & rvalue) const; + bool operator!=(const OID & rvalue) const { return !operator==(rvalue); } bool operator<(const OID & rvalue) const; + bool operator>(const OID & rvalue) const + { return !operator==(rvalue) && !operator<(rvalue); } - std::ostream & operator<<(std::ostream & stream) const; + bool PrefixLess(const OID & rvalue) const; + + friend std::ostream & operator<<(std::ostream & stream, const OID & oid); private: std::vector arcs; }; +inline +bool PrefixLess(const OID & a, const OID & b) +{ +return a.PrefixLess(b); +} + #endif