Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(66)

Unified Diff: remoting/signaling/signaling_address.h

Issue 2805173005: Move SignalingAddress to remoting/signaling (Closed)
Patch Set: fix compilation on windows Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « remoting/signaling/BUILD.gn ('k') | remoting/signaling/signaling_address.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: remoting/signaling/signaling_address.h
diff --git a/remoting/signaling/signaling_address.h b/remoting/signaling/signaling_address.h
new file mode 100644
index 0000000000000000000000000000000000000000..767bb22e4b5d0022426cbbd608e284caab2d2f81
--- /dev/null
+++ b/remoting/signaling/signaling_address.h
@@ -0,0 +1,59 @@
+// Copyright 2017 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 REMOTING_SIGNALING_SIGNALING_ADDRESS_H_
+#define REMOTING_SIGNALING_SIGNALING_ADDRESS_H_
+
+#include <string>
+
+namespace buzz {
+class XmlElement;
+} // namespace buzz
+
+namespace remoting {
+
+// Represents an address of a Chromoting endpoint and its routing channel.
+class SignalingAddress {
+ public:
+ enum class Channel { LCS, XMPP };
+ enum Direction { TO, FROM };
+
+ static SignalingAddress Parse(const buzz::XmlElement* iq,
+ Direction direction,
+ std::string* error);
+
+ void SetInMessage(buzz::XmlElement* message, Direction direction) const;
+
+ SignalingAddress();
+ explicit SignalingAddress(const std::string& jid);
+ SignalingAddress(const std::string& jid,
+ const std::string& endpoint_id,
+ Channel channel);
+
+ const std::string& jid() const { return jid_; }
+ const std::string& endpoint_id() const { return endpoint_id_; }
+ Channel channel() const { return channel_; }
+ const std::string& id() const {
+ return (channel_ == Channel::LCS) ? endpoint_id_ : jid_;
+ }
+
+ bool empty() const { return jid_.empty(); }
+
+ bool operator==(const SignalingAddress& other) const;
+ bool operator!=(const SignalingAddress& other) const;
+
+ private:
+ // Represents the |to| or |from| field in an IQ stanza.
+ std::string jid_;
+
+ // Represents the identifier of an endpoint. In LCS, this is the LCS address
+ // encoded in a JID like format. In XMPP, it is empty.
+ std::string endpoint_id_;
+
+ Channel channel_;
+};
+
+} // namespace remoting
+
+#endif // REMOTING_SIGNALING_SIGNALING_ADDRESS_H_
« no previous file with comments | « remoting/signaling/BUILD.gn ('k') | remoting/signaling/signaling_address.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698