OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "google_apis/gcm/base/mcs_util.h" | 5 #include "google_apis/gcm/base/mcs_util.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include "base/format_macros.h" | 9 #include "base/format_macros.h" |
10 #include "base/logging.h" | 10 #include "base/logging.h" |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
74 login_request->set_domain(kLoginDomain); | 74 login_request->set_domain(kLoginDomain); |
75 login_request->set_device_id(kLoginDeviceIdPrefix + auth_id_hex); | 75 login_request->set_device_id(kLoginDeviceIdPrefix + auth_id_hex); |
76 login_request->set_network_type(1); | 76 login_request->set_network_type(1); |
77 login_request->set_resource(auth_id_str); | 77 login_request->set_resource(auth_id_str); |
78 login_request->set_user(auth_id_str); | 78 login_request->set_user(auth_id_str); |
79 login_request->set_use_rmq2(true); | 79 login_request->set_use_rmq2(true); |
80 | 80 |
81 login_request->add_setting(); | 81 login_request->add_setting(); |
82 login_request->mutable_setting(0)->set_name(kLoginSettingDefaultName); | 82 login_request->mutable_setting(0)->set_name(kLoginSettingDefaultName); |
83 login_request->mutable_setting(0)->set_value(kLoginSettingDefaultValue); | 83 login_request->mutable_setting(0)->set_value(kLoginSettingDefaultValue); |
84 return login_request.Pass(); | 84 return login_request; |
85 } | 85 } |
86 | 86 |
87 scoped_ptr<mcs_proto::IqStanza> BuildStreamAck() { | 87 scoped_ptr<mcs_proto::IqStanza> BuildStreamAck() { |
88 scoped_ptr<mcs_proto::IqStanza> stream_ack_iq(new mcs_proto::IqStanza()); | 88 scoped_ptr<mcs_proto::IqStanza> stream_ack_iq(new mcs_proto::IqStanza()); |
89 stream_ack_iq->set_type(mcs_proto::IqStanza::SET); | 89 stream_ack_iq->set_type(mcs_proto::IqStanza::SET); |
90 stream_ack_iq->set_id(""); | 90 stream_ack_iq->set_id(""); |
91 stream_ack_iq->mutable_extension()->set_id(kStreamAck); | 91 stream_ack_iq->mutable_extension()->set_id(kStreamAck); |
92 stream_ack_iq->mutable_extension()->set_data(""); | 92 stream_ack_iq->mutable_extension()->set_data(""); |
93 return stream_ack_iq.Pass(); | 93 return stream_ack_iq; |
94 } | 94 } |
95 | 95 |
96 scoped_ptr<mcs_proto::IqStanza> BuildSelectiveAck( | 96 scoped_ptr<mcs_proto::IqStanza> BuildSelectiveAck( |
97 const std::vector<std::string>& acked_ids) { | 97 const std::vector<std::string>& acked_ids) { |
98 scoped_ptr<mcs_proto::IqStanza> selective_ack_iq(new mcs_proto::IqStanza()); | 98 scoped_ptr<mcs_proto::IqStanza> selective_ack_iq(new mcs_proto::IqStanza()); |
99 selective_ack_iq->set_type(mcs_proto::IqStanza::SET); | 99 selective_ack_iq->set_type(mcs_proto::IqStanza::SET); |
100 selective_ack_iq->set_id(""); | 100 selective_ack_iq->set_id(""); |
101 selective_ack_iq->mutable_extension()->set_id(kSelectiveAck); | 101 selective_ack_iq->mutable_extension()->set_id(kSelectiveAck); |
102 mcs_proto::SelectiveAck selective_ack; | 102 mcs_proto::SelectiveAck selective_ack; |
103 for (size_t i = 0; i < acked_ids.size(); ++i) | 103 for (size_t i = 0; i < acked_ids.size(); ++i) |
104 selective_ack.add_id(acked_ids[i]); | 104 selective_ack.add_id(acked_ids[i]); |
105 selective_ack_iq->mutable_extension()->set_data( | 105 selective_ack_iq->mutable_extension()->set_data( |
106 selective_ack.SerializeAsString()); | 106 selective_ack.SerializeAsString()); |
107 return selective_ack_iq.Pass(); | 107 return selective_ack_iq; |
108 } | 108 } |
109 | 109 |
110 // Utility method to build a google::protobuf::MessageLite object from a MCS | 110 // Utility method to build a google::protobuf::MessageLite object from a MCS |
111 // tag. | 111 // tag. |
112 scoped_ptr<google::protobuf::MessageLite> BuildProtobufFromTag(uint8_t tag) { | 112 scoped_ptr<google::protobuf::MessageLite> BuildProtobufFromTag(uint8_t tag) { |
113 switch(tag) { | 113 switch(tag) { |
114 case kHeartbeatPingTag: | 114 case kHeartbeatPingTag: |
115 return scoped_ptr<google::protobuf::MessageLite>( | 115 return scoped_ptr<google::protobuf::MessageLite>( |
116 new mcs_proto::HeartbeatPing()); | 116 new mcs_proto::HeartbeatPing()); |
117 case kHeartbeatAckTag: | 117 case kHeartbeatAckTag: |
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
265 | 265 |
266 bool IsImmediateAckRequested(const google::protobuf::MessageLite& protobuf) { | 266 bool IsImmediateAckRequested(const google::protobuf::MessageLite& protobuf) { |
267 if (protobuf.GetTypeName() != kProtoNames[kDataMessageStanzaTag]) | 267 if (protobuf.GetTypeName() != kProtoNames[kDataMessageStanzaTag]) |
268 return false; | 268 return false; |
269 const mcs_proto::DataMessageStanza* data_message = | 269 const mcs_proto::DataMessageStanza* data_message = |
270 reinterpret_cast<const mcs_proto::DataMessageStanza*>(&protobuf); | 270 reinterpret_cast<const mcs_proto::DataMessageStanza*>(&protobuf); |
271 return data_message->has_immediate_ack() && data_message->immediate_ack(); | 271 return data_message->has_immediate_ack() && data_message->immediate_ack(); |
272 } | 272 } |
273 | 273 |
274 } // namespace gcm | 274 } // namespace gcm |
OLD | NEW |