1 /******************************************************************
3 * Copyright 2014 Samsung Electronics All Rights Reserved.
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
19 ******************************************************************/
21 #include "cainterfacecontroller_singlethread.h"
25 #include "canetworkconfigurator.h"
26 #include "uarraylist.h"
31 static u_arraylist_t *gSelectedNetworkList = NULL;
32 static uint32_t NETWORK_ETHERNET = CA_ETHERNET;
33 static uint32_t NETWORK_WIFI = CA_WIFI;
34 static uint32_t NETWORK_EDR = CA_EDR;
35 static uint32_t NETWORK_LE = CA_LE;
37 CAResult_t CAAddNetworkType(uint32_t ConnectivityType)
39 OIC_LOG(DEBUG, TAG, "IN");
40 if (gSelectedNetworkList == NULL)
42 gSelectedNetworkList = u_arraylist_create();
45 switch (ConnectivityType)
49 #ifndef ETHERNET_ADAPTER
50 OIC_LOG_V(DEBUG, TAG, "Add network type(ETHERNET) - Not Supported");
51 return CA_NOT_SUPPORTED;
52 #endif /* ETHERNET_ADAPTER */
54 OIC_LOG_V(DEBUG, TAG, "Add network type(ETHERNET)");
55 u_arraylist_add(gSelectedNetworkList, &NETWORK_ETHERNET);
62 OIC_LOG_V(DEBUG, TAG, "Add network type(WIFI) - Not Supported");
63 return CA_NOT_SUPPORTED;
64 #endif /* WIFI_ADAPTER */
66 OIC_LOG_V(DEBUG, TAG, "Add network type(WIFI)");
67 u_arraylist_add(gSelectedNetworkList, &NETWORK_WIFI);
74 OIC_LOG_V(DEBUG, TAG, "Add network type(EDR) - Not Supported");
75 return CA_NOT_SUPPORTED;
76 #endif /* EDR_ADAPTER */
78 OIC_LOG_V(DEBUG, TAG, "Add network type(EDR)");
79 u_arraylist_add(gSelectedNetworkList, &NETWORK_EDR);
85 OIC_LOG_V(DEBUG, TAG, "Add network type(LE) - Not Supported");
86 return CA_NOT_SUPPORTED;
87 #endif /* LE_ADAPTER */
89 OIC_LOG_V(DEBUG, TAG, "Add network type(LE)");
90 u_arraylist_add(gSelectedNetworkList, &NETWORK_LE);
95 // start selected interface adapter
96 CAStartAdapter(ConnectivityType);
97 OIC_LOG(DEBUG, TAG, "OUT");
101 CAResult_t CARemoveNetworkType(uint32_t ConnectivityType)
103 OIC_LOG(DEBUG, TAG, "IN");
106 if (gSelectedNetworkList == NULL)
108 OIC_LOG_V(DEBUG, TAG, "Selected network not found");
110 return CA_STATUS_FAILED;
113 for (index = 0; index < u_arraylist_length(gSelectedNetworkList); index++)
115 type = *(uint32_t*) u_arraylist_get(gSelectedNetworkList, index);
117 if(ConnectivityType == type)
119 switch (ConnectivityType)
123 #ifndef ETHERNET_ADAPTER
124 OIC_LOG_V(DEBUG, TAG, "Remove network type(ETHERNET) - Not Supported");
125 return CA_NOT_SUPPORTED;
128 OIC_LOG_V(DEBUG, TAG, "Remove network type(ETHERNET)");
129 u_arraylist_remove(gSelectedNetworkList, index);
130 #endif /* ETHERNET_ADAPTER */
136 OIC_LOG_V(DEBUG, TAG, "Remove network type(WIFI) - Not Supported");
137 return CA_NOT_SUPPORTED;
139 OIC_LOG_V(DEBUG, TAG, "Remove network type(WIFI)");
140 u_arraylist_remove(gSelectedNetworkList, index);
141 #endif /* WIFI_ADAPTER */
148 OIC_LOG_V(DEBUG, TAG, "Remove network type(EDR) - Not Supported");
149 return CA_NOT_SUPPORTED;
151 OIC_LOG_V(DEBUG, TAG, "Remove network type(EDR)");
152 u_arraylist_remove(gSelectedNetworkList, index);
153 #endif /* EDR_ADAPTER */
160 OIC_LOG_V(DEBUG, TAG, "Remove network type(LE) - Not Supported");
161 return CA_NOT_SUPPORTED;
163 OIC_LOG_V(DEBUG, TAG, "Remove network type(LE)");
164 u_arraylist_remove(gSelectedNetworkList, index);
165 #endif /* LE_ADAPTER */
170 // stop selected interface adapter
171 CAStopAdapter(ConnectivityType);
178 u_arraylist_t *CAGetSelectedNetworkList()
180 if (gSelectedNetworkList == NULL)
182 OIC_LOG_V(DEBUG, TAG, "Selected network not found");
186 return gSelectedNetworkList;
189 CAResult_t CAGetNetworkInformationInternal(CALocalConnectivity_t **info, uint32_t *size)
191 return CAGetNetworkInfo(info, size);