blob: 79b942bd5e7f26521d7860eec5d65c0d274805e6 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
|
// Copyright 2019 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.
#include "cast/common/channel/message_util.h"
#include <sstream>
#include <utility>
#include "util/osp_logging.h"
namespace openscreen {
namespace cast {
namespace {
using ::cast::channel::CastMessage;
CastMessage MakeConnectionMessage(const std::string& source_id,
const std::string& destination_id) {
CastMessage connect_message;
connect_message.set_protocol_version(kDefaultOutgoingMessageVersion);
connect_message.set_source_id(source_id);
connect_message.set_destination_id(destination_id);
connect_message.set_namespace_(kConnectionNamespace);
return connect_message;
}
} // namespace
std::string ToString(AppAvailabilityResult availability) {
switch (availability) {
case AppAvailabilityResult::kAvailable:
return "Available";
case AppAvailabilityResult::kUnavailable:
return "Unavailable";
case AppAvailabilityResult::kUnknown:
return "Unknown";
default:
OSP_NOTREACHED();
return "bad value";
}
}
CastMessage MakeSimpleUTF8Message(const std::string& namespace_,
std::string payload) {
CastMessage message;
message.set_protocol_version(kDefaultOutgoingMessageVersion);
message.set_namespace_(namespace_);
message.set_payload_type(::cast::channel::CastMessage_PayloadType_STRING);
message.set_payload_utf8(std::move(payload));
return message;
}
CastMessage MakeConnectMessage(const std::string& source_id,
const std::string& destination_id) {
CastMessage connect_message =
MakeConnectionMessage(source_id, destination_id);
connect_message.set_payload_type(
::cast::channel::CastMessage_PayloadType_STRING);
connect_message.set_payload_utf8(R"!({"type": "CONNECT"})!");
return connect_message;
}
CastMessage MakeCloseMessage(const std::string& source_id,
const std::string& destination_id) {
CastMessage close_message = MakeConnectionMessage(source_id, destination_id);
close_message.set_payload_type(
::cast::channel::CastMessage_PayloadType_STRING);
close_message.set_payload_utf8(R"!({"type": "CLOSE"})!");
return close_message;
}
std::string MakeUniqueSessionId(const char* prefix) {
static int next_id = 10000;
std::ostringstream oss;
oss << prefix << '-' << (next_id++);
return oss.str();
}
} // namespace cast
} // namespace openscreen
|