// OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
// PERFORMANCE OF THIS SOFTWARE.
-#include <vector>
#include <exceptions/exceptions.h>
#include <stdint.h>
#include <util/io_utilities.h>
#include <dhcp/duid.h>
+#include <vector>
+#include <sstream>
+#include <iomanip>
namespace isc {
namespace dhcp {
}
}
+std::string DUID::toText() const {
+ std::stringstream tmp;
+
+ bool delim = false;
+ for (std::vector<uint8_t>::const_iterator it = duid_.begin();
+ it != duid_.end(); ++it) {
+ if (delim) {
+ tmp << ":";
+ }
+ tmp.width(2);
+ tmp << std::hex << std::setfill('0') << static_cast<unsigned int>(*it);
+ delim = true;
+ }
+ return (tmp.str());
+}
+
bool DUID::operator == (const DUID& other) const {
return (this->duid_ == other.duid_);
}
/// @brief returns DUID type
DUIDType getType() const;
- // compares two DUIDs
+ /// returns textual prepresentation (e.g. 00:01:02:03:ff)
+ std::string toText() const;
+
+ /// compares two DUIDs
bool operator == (const DUID& other) const;
- // compares two DUIDs
+ /// compares two DUIDs
bool operator != (const DUID& other) const;
protected:
EXPECT_TRUE(*id1 != *id3);
}
+// Test checks if the toText() returns valid texual representation
+TEST(ClientIdTest, toText) {
+ uint8_t data1[] = {0, 1, 2, 3, 4, 0xff, 0xfe};
+
+ scoped_ptr<DUID> duid1(new DUID(data1, sizeof(data1)));
+ EXPECT_EQ("00:01:02:03:04:ff:fe", duid1->toText());
+}
+
} // end of anonymous namespace