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