15e81a82fSopenharmony_ci/* 25e81a82fSopenharmony_ci * Copyright (c) 2024 Huawei Device Co., Ltd. 35e81a82fSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 45e81a82fSopenharmony_ci * you may not use this file except in compliance with the License. 55e81a82fSopenharmony_ci * You may obtain a copy of the License at 65e81a82fSopenharmony_ci * 75e81a82fSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 85e81a82fSopenharmony_ci * 95e81a82fSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 105e81a82fSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 115e81a82fSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 125e81a82fSopenharmony_ci * See the License for the specific language governing permissions and 135e81a82fSopenharmony_ci * limitations under the License. 145e81a82fSopenharmony_ci * Description: Channel for transmitting data 155e81a82fSopenharmony_ci * Author: sunhong 165e81a82fSopenharmony_ci * Create: 2022-01-19 175e81a82fSopenharmony_ci */ 185e81a82fSopenharmony_ci 195e81a82fSopenharmony_ci#ifndef CASTSESSION_CHANNEL_H 205e81a82fSopenharmony_ci#define CASTSESSION_CHANNEL_H 215e81a82fSopenharmony_ci 225e81a82fSopenharmony_ci#include <memory> 235e81a82fSopenharmony_ci#include "channel_request.h" 245e81a82fSopenharmony_ci#include "channel_listener.h" 255e81a82fSopenharmony_ci 265e81a82fSopenharmony_cinamespace OHOS { 275e81a82fSopenharmony_cinamespace CastEngine { 285e81a82fSopenharmony_cinamespace CastEngineService { 295e81a82fSopenharmony_ciclass Channel { 305e81a82fSopenharmony_cipublic: 315e81a82fSopenharmony_ci virtual ~Channel() = default; 325e81a82fSopenharmony_ci 335e81a82fSopenharmony_ci void SetRequest(const ChannelRequest &request) 345e81a82fSopenharmony_ci { 355e81a82fSopenharmony_ci channelRequest_ = request; 365e81a82fSopenharmony_ci } 375e81a82fSopenharmony_ci 385e81a82fSopenharmony_ci const ChannelRequest &GetRequest() const 395e81a82fSopenharmony_ci { 405e81a82fSopenharmony_ci return channelRequest_; 415e81a82fSopenharmony_ci } 425e81a82fSopenharmony_ci 435e81a82fSopenharmony_ci void SetListener(std::shared_ptr<IChannelListener> listener) 445e81a82fSopenharmony_ci { 455e81a82fSopenharmony_ci channelListener_ = listener; 465e81a82fSopenharmony_ci } 475e81a82fSopenharmony_ci 485e81a82fSopenharmony_ci std::shared_ptr<IChannelListener> GetListener() 495e81a82fSopenharmony_ci { 505e81a82fSopenharmony_ci return channelListener_; 515e81a82fSopenharmony_ci } 525e81a82fSopenharmony_ci 535e81a82fSopenharmony_ci virtual bool Send(const uint8_t *buffer, int length) 545e81a82fSopenharmony_ci { 555e81a82fSopenharmony_ci return false; 565e81a82fSopenharmony_ci } 575e81a82fSopenharmony_ci 585e81a82fSopenharmony_ciprivate: 595e81a82fSopenharmony_ci ChannelRequest channelRequest_; 605e81a82fSopenharmony_ci std::shared_ptr<IChannelListener> channelListener_; 615e81a82fSopenharmony_ci}; 625e81a82fSopenharmony_ci} // namespace CastEngineService 635e81a82fSopenharmony_ci} // namespace CastEngine 645e81a82fSopenharmony_ci} // namespace OHOS 655e81a82fSopenharmony_ci 665e81a82fSopenharmony_ci#endif // CASTSESSION_CHANNEL_H 67