Add supported features check
[platform/core/api/connection.git] / include / net_connection_private.h
index 997dd34..041b304 100644 (file)
@@ -38,12 +38,10 @@ extern "C" {
 #define ETHERNET_MAC_INFO_FILE         "/sys/class/net/eth0/address"
 #define WIFI_MAC_INFO_FILE                     "/sys/class/net/wlan0/address"
 
-typedef enum
-{
-       FEATURE_TYPE_TELEPHONY = 0,
-       FEATURE_TYPE_WIFI = 1,
-       FEATURE_TYPE_TETHERING_BLUETOOTH = 2
-} enable_feature_type_e;
+#define TELEPHONY_FEATURE                      "http://tizen.org/feature/network.telephony"
+#define WIFI_FEATURE                           "http://tizen.org/feature/network.wifi"
+#define TETHERING_BLUETOOTH_FEATURE    "http://tizen.org/feature/network.tethering.bluetooth"
+#define ETHERNET_FEATURE                       "http://tizen.org/feature/network.ethernet"
 
 typedef enum
 {
@@ -51,6 +49,13 @@ typedef enum
        CONNECTION_CELLULAR_SUBSCRIBER_2 = 0x01,
 } connection_cellular_subscriber_id_e;
 
+#define CHECK_FEATURE_SUPPORTED(...) \
+       do { \
+               int rv = _connection_check_feature_supported(__VA_ARGS__, NULL); \
+               if( rv != CONNECTION_ERROR_NONE ) \
+                       return rv; \
+       } while(0)
+
 #define CONNECTION_LOG(log_level, format, args...) \
        do { \
                switch (log_level) { \
@@ -126,6 +131,8 @@ int _connection_libnet_set_cellular_service_profile_async(connection_cellular_se
 int _connection_libnet_close_profile(connection_profile_h profile, connection_closed_cb callback, void *user_data);
 int _connection_libnet_add_route(const char *interface_name, const char *host_address);
 int _connection_libnet_remove_route(const char *interface_name, const char *host_address);
+int _connection_libnet_add_route_ipv6(const char *interface_name, const char *host_address, const char * gateway);
+int _connection_libnet_remove_route_ipv6(const char *interface_name, const char *host_address, const char * gateway);
 void _connection_libnet_add_to_profile_list(connection_profile_h profile);
 void _connection_libnet_remove_from_profile_list(connection_profile_h profile);
 bool _connection_libnet_add_to_profile_cb_list(connection_profile_h profile,
@@ -136,9 +143,7 @@ int _connection_libnet_get_statistics(net_statistics_type_e statistics_type, uns
 int _connection_libnet_check_get_privilege();
 int _connection_libnet_check_profile_privilege();
 
-bool _connection_libnet_get_is_check_enable_feature();
-bool _connection_libnet_get_enable_feature_state(enable_feature_type_e feature_type);
-int _connection_libnet_check_enable_feature();
+int _connection_check_feature_supported(const char *feature_name, ...);
 
 guint _connection_callback_add(GSourceFunc func, gpointer user_data);
 void _connection_callback_cleanup(void);