1 /*
2  * Copyright (c) 2021 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #include "trans_tcp_direct_callback.h"
17 
18 #include <stddef.h>
19 
20 #include "softbus_def.h"
21 #include "softbus_errcode.h"
22 
23 static IServerChannelCallBack g_channelCb;
24 
TransTdcSetCallBack(const IServerChannelCallBack * cb)25 int32_t TransTdcSetCallBack(const IServerChannelCallBack *cb)
26 {
27     if (cb == NULL) {
28         return SOFTBUS_INVALID_PARAM;
29     }
30     g_channelCb = *cb;
31     return SOFTBUS_OK;
32 }
33 
TransTdcOnChannelOpened(const char * pkgName,int32_t pid,const char * sessionName,const ChannelInfo * channel)34 int32_t TransTdcOnChannelOpened(const char *pkgName, int32_t pid, const char *sessionName,
35     const ChannelInfo *channel)
36 {
37     return g_channelCb.OnChannelOpened(pkgName, pid, sessionName, channel);
38 }
39 
TransTdcOnChannelBind(const char * pkgName,int32_t pid,int32_t channelId)40 int32_t TransTdcOnChannelBind(const char *pkgName, int32_t pid, int32_t channelId)
41 {
42     return g_channelCb.OnChannelBind(pkgName, pid, channelId, CHANNEL_TYPE_TCP_DIRECT);
43 }
44 
TransTdcOnChannelClosed(const char * pkgName,int32_t pid,int32_t channelId)45 int32_t TransTdcOnChannelClosed(const char *pkgName, int32_t pid, int32_t channelId)
46 {
47     return g_channelCb.OnChannelClosed(pkgName, pid, channelId, CHANNEL_TYPE_TCP_DIRECT, MESSAGE_TYPE_NOMAL);
48 }
49 
TransTdcOnChannelOpenFailed(const char * pkgName,int32_t pid,int32_t channelId,int32_t errCode)50 int32_t TransTdcOnChannelOpenFailed(const char *pkgName, int32_t pid, int32_t channelId,
51     int32_t errCode)
52 {
53     return g_channelCb.OnChannelOpenFailed(pkgName, pid, channelId, CHANNEL_TYPE_TCP_DIRECT, errCode);
54 }
55 
TransTdcGetPkgName(const char * sessionName,char * pkgName,uint16_t len)56 int32_t TransTdcGetPkgName(const char *sessionName, char *pkgName, uint16_t len)
57 {
58     return g_channelCb.GetPkgNameBySessionName(sessionName, pkgName, len);
59 }
60 
TransTdcGetUidAndPid(const char * sessionName,int32_t * uid,int32_t * pid)61 int32_t TransTdcGetUidAndPid(const char *sessionName, int32_t *uid, int32_t *pid)
62 {
63     return g_channelCb.GetUidAndPidBySessionName(sessionName, uid, pid);
64 }
65 
TransTdcOnMsgReceived(const char * pkgName,int32_t pid,int32_t channelId,TransReceiveData * receiveData)66 int32_t TransTdcOnMsgReceived(const char *pkgName, int32_t pid, int32_t channelId, TransReceiveData *receiveData)
67 {
68     return g_channelCb.OnDataReceived(pkgName, pid, channelId, CHANNEL_TYPE_TCP_DIRECT, receiveData);
69 }