#include <vector>
#include <istream>
-#include "asn1/OBJECT_IDENTIFIER.h"
+#include "stg/OBJECT_IDENTIFIER.h"
class OID {
public:
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<unsigned> & 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<unsigned> & suffix) const;
+ OID copyWithSuffix(unsigned a, unsigned b) const;
+
std::string ToString() const;
const std::vector<unsigned> & 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<unsigned> arcs;
};
+inline
+bool PrefixLess(const OID & a, const OID & b)
+{
+return a.PrefixLess(b);
+}
+
#endif