// 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 "osp/impl/presentation/presentation_common.h" #include "absl/strings/ascii.h" namespace openscreen { namespace osp { std::unique_ptr GetProtocolConnection( uint64_t endpoint_id) { return NetworkServiceManager::Get() ->GetProtocolConnectionServer() ->CreateProtocolConnection(endpoint_id); } MessageDemuxer* GetServerDemuxer() { return NetworkServiceManager::Get() ->GetProtocolConnectionServer() ->message_demuxer(); } MessageDemuxer* GetClientDemuxer() { return NetworkServiceManager::Get() ->GetProtocolConnectionClient() ->message_demuxer(); } PresentationID::PresentationID(std::string presentation_id) : id_(Error::Code::kParseError) { // The spec dictates that the presentation ID must be composed // of at least 16 ASCII characters. bool is_valid = presentation_id.length() >= 16; for (const char& c : presentation_id) { is_valid &= absl::ascii_isprint(c); } if (is_valid) { id_ = std::move(presentation_id); } } } // namespace osp } // namespace openscreen