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 ******************************************************************/
23 #include "canetworkconfigurator.h"
24 #include "uarraylist.h"
26 #include "cainterfacecontroller.h"
30 static u_arraylist_t *gSelectedNetworkList = NULL;
31 static uint32_t NETWORK_ETHERNET = CA_ETHERNET;
32 static uint32_t NETWORK_WIFI = CA_WIFI;
33 static uint32_t NETWORK_EDR = CA_EDR;
34 static uint32_t NETWORK_LE = CA_LE;
37 CAResult_t CAAddNetworkType(uint32_t ConnectivityType)
39 if (gSelectedNetworkList == NULL)
41 OIC_LOG_V(DEBUG, TAG, "Create network list");
43 gSelectedNetworkList = u_arraylist_create();
46 switch (ConnectivityType)
50 #ifndef ETHERNET_ADAPTER
51 OIC_LOG_V(DEBUG, TAG, "Add network type(ETHERNET) - Not Supported");
52 return CA_NOT_SUPPORTED;
53 #endif /* ETHERNET_ADAPTER */
55 OIC_LOG_V(DEBUG, TAG, "Add network type(ETHERNET)");
56 if (!u_arraylist_contains(gSelectedNetworkList, &NETWORK_ETHERNET))
58 u_arraylist_add(gSelectedNetworkList, &NETWORK_ETHERNET);
65 OIC_LOG_V(DEBUG, TAG, "Add network type(WIFI) - Not Supported");
66 return CA_NOT_SUPPORTED;
67 #endif /* WIFI_ADAPTER */
69 OIC_LOG_V(DEBUG, TAG, "Add network type(WIFI)");
70 if (!u_arraylist_contains(gSelectedNetworkList, &NETWORK_WIFI))
72 u_arraylist_add(gSelectedNetworkList, &NETWORK_WIFI);
79 OIC_LOG_V(DEBUG, TAG, "Add network type(EDR) - Not Supported");
80 return CA_NOT_SUPPORTED;
81 #endif /* EDR_ADAPTER */
83 OIC_LOG_V(DEBUG, TAG, "Add network type(EDR)");
84 if (!u_arraylist_contains(gSelectedNetworkList, &NETWORK_EDR))
86 u_arraylist_add(gSelectedNetworkList, &NETWORK_EDR);
93 OIC_LOG_V(DEBUG, TAG, "Add network type(LE) - Not Supported");
94 return CA_NOT_SUPPORTED;
95 #endif /* LE_ADAPTER */
97 OIC_LOG_V(DEBUG, TAG, "Add network type(LE)");
98 if (!u_arraylist_contains(gSelectedNetworkList, &NETWORK_LE))
100 u_arraylist_add(gSelectedNetworkList, &NETWORK_LE);
106 // start selected interface adapter
107 CAStartAdapter(ConnectivityType);
112 CAResult_t CARemoveNetworkType(uint32_t ConnectivityType)
117 if (gSelectedNetworkList == NULL)
119 OIC_LOG_V(DEBUG, TAG, "Selected network not found");
121 return CA_STATUS_FAILED;
124 for (index = 0; index < u_arraylist_length(gSelectedNetworkList); index++)
126 void* cType = u_arraylist_get(gSelectedNetworkList, index);
133 type = *(uint32_t *) cType;
135 if (ConnectivityType == type)
137 switch (ConnectivityType)
141 #ifndef ETHERNET_ADAPTER
142 OIC_LOG_V(DEBUG, TAG, "Remove network type(ETHERNET) - Not Supported");
143 return CA_NOT_SUPPORTED;
146 OIC_LOG_V(DEBUG, TAG, "Remove network type(ETHERNET)");
147 u_arraylist_remove(gSelectedNetworkList, index);
148 #endif /* ETHERNET_ADAPTER */
154 OIC_LOG_V(DEBUG, TAG, "Remove network type(WIFI) - Not Supported");
155 return CA_NOT_SUPPORTED;
157 OIC_LOG_V(DEBUG, TAG, "Remove network type(WIFI)");
158 u_arraylist_remove(gSelectedNetworkList, index);
159 #endif /* WIFI_ADAPTER */
166 OIC_LOG_V(DEBUG, TAG, "Remove network type(EDR) - Not Supported");
167 return CA_NOT_SUPPORTED;
169 OIC_LOG_V(DEBUG, TAG, "Remove network type(EDR)");
170 u_arraylist_remove(gSelectedNetworkList, index);
171 #endif /* EDR_ADAPTER */
178 OIC_LOG_V(DEBUG, TAG, "Remove network type(LE) - Not Supported");
179 return CA_NOT_SUPPORTED;
181 OIC_LOG_V(DEBUG, TAG, "Remove network type(LE)");
182 u_arraylist_remove(gSelectedNetworkList, index);
183 #endif /* LE_ADAPTER */
188 // stop selected interface adapter
189 CAStopAdapter(ConnectivityType);
196 u_arraylist_t *CAGetSelectedNetworkList()
198 OIC_LOG(DEBUG, TAG, "CAGetSelectedNetworkList IN");
199 if (gSelectedNetworkList == NULL)
201 OIC_LOG_V(DEBUG, TAG, "Selected network not found");
205 OIC_LOG(DEBUG, TAG, "CAGetSelectedNetworkList OUT");
206 return gSelectedNetworkList;
209 CAResult_t CAGetNetworkInformationInternal(CALocalConnectivity_t **info, uint32_t *size)
211 OIC_LOG_V(DEBUG, TAG, "get network information.");
213 return CAGetNetworkInfo(info, size);
216 CAResult_t CATerminateNetworkType()
218 OIC_LOG_V(DEBUG, TAG, "CATerminateNetworkType()");
220 if(gSelectedNetworkList != NULL) {
221 u_arraylist_free(gSelectedNetworkList);