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 u_arraylist_add(gSelectedNetworkList, &NETWORK_ETHERNET);
63 OIC_LOG_V(DEBUG, TAG, "Add network type(WIFI) - Not Supported");
64 return CA_NOT_SUPPORTED;
65 #endif /* WIFI_ADAPTER */
67 OIC_LOG_V(DEBUG, TAG, "Add network type(WIFI)");
68 u_arraylist_add(gSelectedNetworkList, &NETWORK_WIFI);
75 OIC_LOG_V(DEBUG, TAG, "Add network type(EDR) - Not Supported");
76 return CA_NOT_SUPPORTED;
77 #endif /* EDR_ADAPTER */
79 OIC_LOG_V(DEBUG, TAG, "Add network type(EDR)");
80 u_arraylist_add(gSelectedNetworkList, &NETWORK_EDR);
86 OIC_LOG_V(DEBUG, TAG, "Add network type(LE) - Not Supported");
87 return CA_NOT_SUPPORTED;
88 #endif /* LE_ADAPTER */
90 OIC_LOG_V(DEBUG, TAG, "Add network type(LE)");
91 u_arraylist_add(gSelectedNetworkList, &NETWORK_LE);
96 // start selected interface adapter
97 CAStartAdapter(ConnectivityType);
102 CAResult_t CARemoveNetworkType(uint32_t ConnectivityType)
107 if (gSelectedNetworkList == NULL)
109 OIC_LOG_V(DEBUG, TAG, "Selected network not found");
111 return CA_STATUS_FAILED;
114 for (index = 0; index < u_arraylist_length(gSelectedNetworkList); index++)
116 type = *(uint32_t*) u_arraylist_get(gSelectedNetworkList, index);
118 if(ConnectivityType == type)
120 switch (ConnectivityType)
124 #ifndef ETHERNET_ADAPTER
125 OIC_LOG_V(DEBUG, TAG, "Remove network type(ETHERNET) - Not Supported");
126 return CA_NOT_SUPPORTED;
129 OIC_LOG_V(DEBUG, TAG, "Remove network type(ETHERNET)");
130 u_arraylist_remove(gSelectedNetworkList, index);
131 #endif /* ETHERNET_ADAPTER */
137 OIC_LOG_V(DEBUG, TAG, "Remove network type(WIFI) - Not Supported");
138 return CA_NOT_SUPPORTED;
140 OIC_LOG_V(DEBUG, TAG, "Remove network type(WIFI)");
141 u_arraylist_remove(gSelectedNetworkList, index);
142 #endif /* WIFI_ADAPTER */
149 OIC_LOG_V(DEBUG, TAG, "Remove network type(EDR) - Not Supported");
150 return CA_NOT_SUPPORTED;
152 OIC_LOG_V(DEBUG, TAG, "Remove network type(EDR)");
153 u_arraylist_remove(gSelectedNetworkList, index);
154 #endif /* EDR_ADAPTER */
161 OIC_LOG_V(DEBUG, TAG, "Remove network type(LE) - Not Supported");
162 return CA_NOT_SUPPORTED;
164 OIC_LOG_V(DEBUG, TAG, "Remove network type(LE)");
165 u_arraylist_remove(gSelectedNetworkList, index);
166 #endif /* LE_ADAPTER */
171 // stop selected interface adapter
172 CAStopAdapter(ConnectivityType);
179 u_arraylist_t *CAGetSelectedNetworkList()
181 OIC_LOG(DEBUG, TAG, "CAGetSelectedNetworkList IN");
182 if (gSelectedNetworkList == NULL)
184 OIC_LOG_V(DEBUG, TAG, "Selected network not found");
188 OIC_LOG(DEBUG, TAG, "CAGetSelectedNetworkList OUT");
189 return gSelectedNetworkList;
192 CAResult_t CAGetNetworkInformationInternal(CALocalConnectivity_t **info, uint32_t *size)
194 OIC_LOG_V(DEBUG, TAG, "get network information.");
196 return CAGetNetworkInfo(info, size);