summaryrefslogtreecommitdiffstats
path: root/third_party/libjingle/overrides/talk/xmllite/qname.h
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/libjingle/overrides/talk/xmllite/qname.h')
-rw-r--r--third_party/libjingle/overrides/talk/xmllite/qname.h37
1 files changed, 37 insertions, 0 deletions
diff --git a/third_party/libjingle/overrides/talk/xmllite/qname.h b/third_party/libjingle/overrides/talk/xmllite/qname.h
new file mode 100644
index 0000000..db80efb
--- /dev/null
+++ b/third_party/libjingle/overrides/talk/xmllite/qname.h
@@ -0,0 +1,37 @@
+// Copyright (c) 2010 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef TALK_XMLLITE_QNAME_H_
+#define TALK_XMLLITE_QNAME_H_
+
+#include <string>
+
+namespace buzz {
+
+// Default libjingle's implementation of QName class is not threadsafe. This
+// one is.
+class QName
+{
+public:
+ QName();
+ QName(const std::string & ns, const std::string & local);
+ QName(bool add, const std::string & ns, const std::string & local);
+ explicit QName(const std::string & mergedOrLocal);
+
+ const std::string & Namespace() const { return namespace_; }
+ const std::string & LocalPart() const { return local_part_; }
+ std::string Merged() const;
+ int Compare(const QName & other) const;
+ bool operator==(const QName & other) const;
+ bool operator!=(const QName & other) const { return !operator==(other); }
+ bool operator<(const QName & other) const { return Compare(other) < 0; }
+
+private:
+ std::string namespace_;
+ std::string local_part_;
+};
+
+} // namespace buzz
+
+#endif // TALK_XMLLITE_QNAME_H_