1d95e75fdSopenharmony_ci/* 2d95e75fdSopenharmony_ci * Copyright (C) 2021 Huawei Device Co., Ltd. 3d95e75fdSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4d95e75fdSopenharmony_ci * you may not use this file except in compliance with the License. 5d95e75fdSopenharmony_ci * You may obtain a copy of the License at 6d95e75fdSopenharmony_ci * 7d95e75fdSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8d95e75fdSopenharmony_ci * 9d95e75fdSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10d95e75fdSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11d95e75fdSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12d95e75fdSopenharmony_ci * See the License for the specific language governing permissions and 13d95e75fdSopenharmony_ci * limitations under the License. 14d95e75fdSopenharmony_ci */ 15d95e75fdSopenharmony_ci 16d95e75fdSopenharmony_ci#ifndef TELEPHONY_BASE_CONNECTION_H 17d95e75fdSopenharmony_ci#define TELEPHONY_BASE_CONNECTION_H 18d95e75fdSopenharmony_ci 19d95e75fdSopenharmony_ci#include "telephony_errors.h" 20d95e75fdSopenharmony_ci#include "telephony_log_wrapper.h" 21d95e75fdSopenharmony_ci#include "core_manager_inner.h" 22d95e75fdSopenharmony_ci#include "call_manager_inner_type.h" 23d95e75fdSopenharmony_ci#include "cellular_call_data_struct.h" 24d95e75fdSopenharmony_ci 25d95e75fdSopenharmony_cinamespace OHOS { 26d95e75fdSopenharmony_cinamespace Telephony { 27d95e75fdSopenharmony_ciconstexpr static const int64_t PAUSE_DELAY_TIME = 3 * 1000; 28d95e75fdSopenharmony_ciclass BaseConnection { 29d95e75fdSopenharmony_cipublic: 30d95e75fdSopenharmony_ci /** 31d95e75fdSopenharmony_ci * Constructor 32d95e75fdSopenharmony_ci */ 33d95e75fdSopenharmony_ci BaseConnection(); 34d95e75fdSopenharmony_ci 35d95e75fdSopenharmony_ci /** 36d95e75fdSopenharmony_ci * Destructor 37d95e75fdSopenharmony_ci */ 38d95e75fdSopenharmony_ci virtual ~BaseConnection() = default; 39d95e75fdSopenharmony_ci 40d95e75fdSopenharmony_ci /** 41d95e75fdSopenharmony_ci * Set or Update CallReportInfo 42d95e75fdSopenharmony_ci * 43d95e75fdSopenharmony_ci * @param CallReportInfo 44d95e75fdSopenharmony_ci */ 45d95e75fdSopenharmony_ci void SetOrUpdateCallReportInfo(CallReportInfo &callReportInfo); 46d95e75fdSopenharmony_ci 47d95e75fdSopenharmony_ci /** 48d95e75fdSopenharmony_ci * Get CallReportInfo 49d95e75fdSopenharmony_ci * 50d95e75fdSopenharmony_ci * @return CallReportInfo 51d95e75fdSopenharmony_ci */ 52d95e75fdSopenharmony_ci CallReportInfo GetCallReportInfo(); 53d95e75fdSopenharmony_ci 54d95e75fdSopenharmony_ci /** 55d95e75fdSopenharmony_ci * SetStatus 56d95e75fdSopenharmony_ci * 57d95e75fdSopenharmony_ci * @param state 58d95e75fdSopenharmony_ci */ 59d95e75fdSopenharmony_ci void SetStatus(TelCallState state); 60d95e75fdSopenharmony_ci 61d95e75fdSopenharmony_ci /** 62d95e75fdSopenharmony_ci * Get connection Status 63d95e75fdSopenharmony_ci * 64d95e75fdSopenharmony_ci * @return TelCallState 65d95e75fdSopenharmony_ci */ 66d95e75fdSopenharmony_ci TelCallState GetStatus() const; 67d95e75fdSopenharmony_ci 68d95e75fdSopenharmony_ci /** 69d95e75fdSopenharmony_ci * IsRingingState. 70d95e75fdSopenharmony_ci * 71d95e75fdSopenharmony_ci * @return bool 72d95e75fdSopenharmony_ci */ 73d95e75fdSopenharmony_ci bool IsRingingState() const; 74d95e75fdSopenharmony_ci 75d95e75fdSopenharmony_ci /** 76d95e75fdSopenharmony_ci * Set Flag 77d95e75fdSopenharmony_ci * 78d95e75fdSopenharmony_ci * @param bool 79d95e75fdSopenharmony_ci */ 80d95e75fdSopenharmony_ci void SetFlag(bool flag); 81d95e75fdSopenharmony_ci 82d95e75fdSopenharmony_ci /** 83d95e75fdSopenharmony_ci * Get Flag 84d95e75fdSopenharmony_ci * 85d95e75fdSopenharmony_ci * @return bool 86d95e75fdSopenharmony_ci */ 87d95e75fdSopenharmony_ci bool GetFlag() const; 88d95e75fdSopenharmony_ci 89d95e75fdSopenharmony_ci /** 90d95e75fdSopenharmony_ci * Set Index 91d95e75fdSopenharmony_ci * 92d95e75fdSopenharmony_ci * @param int32_t 93d95e75fdSopenharmony_ci */ 94d95e75fdSopenharmony_ci void SetIndex(int32_t index); 95d95e75fdSopenharmony_ci 96d95e75fdSopenharmony_ci /** 97d95e75fdSopenharmony_ci * Get Index 98d95e75fdSopenharmony_ci * 99d95e75fdSopenharmony_ci * @return int32_t 100d95e75fdSopenharmony_ci */ 101d95e75fdSopenharmony_ci int32_t GetIndex() const; 102d95e75fdSopenharmony_ci 103d95e75fdSopenharmony_ci void SetNumber(const std::string &number); 104d95e75fdSopenharmony_ci 105d95e75fdSopenharmony_ci std::string GetNumber() const; 106d95e75fdSopenharmony_ci 107d95e75fdSopenharmony_ci PostDialCallState ProcessNextChar(int32_t slotId, char &c); 108d95e75fdSopenharmony_ci 109d95e75fdSopenharmony_ci void SetPostDialCallState(PostDialCallState s); 110d95e75fdSopenharmony_ci 111d95e75fdSopenharmony_ci void UpdateCallNumber(std::string phoneNum); 112d95e75fdSopenharmony_ci 113d95e75fdSopenharmony_ci std::string GetLeftPostDialCallString(); 114d95e75fdSopenharmony_ci 115d95e75fdSopenharmony_ci void UpdatePendingHoldFlag(bool flag); 116d95e75fdSopenharmony_ci 117d95e75fdSopenharmony_ciprivate: 118d95e75fdSopenharmony_ci virtual int32_t ProcessPostDialCallChar(int32_t slotId, char c); 119d95e75fdSopenharmony_ci 120d95e75fdSopenharmony_ciprotected: 121d95e75fdSopenharmony_ci std::string phoneNumber_; 122d95e75fdSopenharmony_ci 123d95e75fdSopenharmony_ciprivate: 124d95e75fdSopenharmony_ci bool flag_ = false; 125d95e75fdSopenharmony_ci int32_t index_ = 1; 126d95e75fdSopenharmony_ci std::string number_; 127d95e75fdSopenharmony_ci CallReportInfo callReportInfo_; 128d95e75fdSopenharmony_ci PostDialCallState postDialCalltate_ = PostDialCallState::POST_DIAL_CALL_NOT_STARTED; 129d95e75fdSopenharmony_ci int32_t nextPostDialCallCode_ = 0; 130d95e75fdSopenharmony_ci std::string postDialCallString_; 131d95e75fdSopenharmony_ci}; 132d95e75fdSopenharmony_ci} // namespace Telephony 133d95e75fdSopenharmony_ci} // namespace OHOS 134d95e75fdSopenharmony_ci#endif // TELEPHONY_BASE_CONNECTION_H 135