blob: 969e59b954eea52d331cb3babedd0085f31bcb53 [file] [log] [blame]
// Copyright 2018 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 "osp/public/protocol_connection_client.h"
namespace openscreen {
namespace osp {
ProtocolConnectionClient::ConnectRequest::ConnectRequest() = default;
ProtocolConnectionClient::ConnectRequest::ConnectRequest(
ProtocolConnectionClient* parent,
uint64_t request_id)
: parent_(parent), request_id_(request_id) {}
ProtocolConnectionClient::ConnectRequest::ConnectRequest(ConnectRequest&& other)
: parent_(other.parent_), request_id_(other.request_id_) {
other.request_id_ = 0;
}
ProtocolConnectionClient::ConnectRequest::~ConnectRequest() {
if (request_id_)
parent_->CancelConnectRequest(request_id_);
}
ProtocolConnectionClient::ConnectRequest&
ProtocolConnectionClient::ConnectRequest::operator=(ConnectRequest&& other) {
using std::swap;
swap(parent_, other.parent_);
swap(request_id_, other.request_id_);
return *this;
}
ProtocolConnectionClient::ProtocolConnectionClient(
MessageDemuxer* demuxer,
ProtocolConnectionServiceObserver* observer)
: demuxer_(demuxer),
endpoint_request_ids_(EndpointRequestIds::Role::kClient),
observer_(observer) {}
ProtocolConnectionClient::~ProtocolConnectionClient() = default;
std::ostream& operator<<(std::ostream& os,
ProtocolConnectionClient::State state) {
switch (state) {
case ProtocolConnectionClient::State::kStopped:
return os << "STOPPED";
case ProtocolConnectionClient::State::kStarting:
return os << "STARTING";
case ProtocolConnectionClient::State::kRunning:
return os << "RUNNING";
case ProtocolConnectionClient::State::kStopping:
return os << "STOPPING";
default:
return os << "UNKNOWN";
}
}
} // namespace osp
} // namespace openscreen