88e98c6ff6c16fbe2f2d34357cc4ddc6a4bd9645
[platform/core/connectivity/bluetooth-frwk.git] / bt-service / include / bt-service-rfcomm-server.h
1 /*
2  * bluetooth-frwk
3  *
4  * Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
5  *
6  * Licensed under the Apache License, Version 2.0 (the "License");
7  * you may not use this file except in compliance with the License.
8  * You may obtain a copy of the License at
9  *
10  *              http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing, software
13  * distributed under the License is distributed on an "AS IS" BASIS,
14  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  * See the License for the specific language governing permissions and
16  * limitations under the License.
17  *
18  */
19
20 #ifndef _BT_SERVICE_RFCOMM_SERVER_H_
21 #define _BT_SERVICE_RFCOMM_SERVER_H_
22
23 #include <glib.h>
24 #include <sys/types.h>
25 #include "bluetooth-api.h"
26
27 #ifdef __cplusplus
28 extern "C" {
29 #endif
30
31
32 #ifdef __cplusplus
33 }
34 #endif /* __cplusplus */
35 #endif /*_BT_SERVICE_RFCOMM_SERVER_H_*/
36
37 typedef struct {
38         int server_id;
39         int accept_id;
40         int server_type;
41         int control_fd;
42         int data_fd;
43         guint control_id;
44         guint data_id;
45         char *serial_path;
46         char *uuid;
47         char *sender;
48         char *remote_address;
49         GIOChannel *control_io;
50         GIOChannel *data_io;
51         DBusGProxy *serial_proxy;
52         DBusGProxy *manager_proxy;
53 } bt_rfcomm_server_info_t;
54
55 int _bt_rfcomm_create_socket(char *sender, char *uuid);
56
57 int _bt_rfcomm_remove_socket(int socket_fd);
58
59 int _bt_rfcomm_listen(int socket_fd, int max_pending, gboolean is_native);
60
61 int _bt_rfcomm_is_uuid_available(char *uuid, gboolean *available);
62
63 int _bt_rfcomm_accept_connection(int server_fd, int request_id);
64
65 int _bt_rfcomm_reject_connection(int server_fd);
66
67 int _bt_rfcomm_server_disconnect(int data_fd);
68
69 bt_rfcomm_server_info_t *_bt_rfcomm_get_server_info_using_uuid(char *uuid);
70
71 int _bt_rfcomm_server_disconnect_all_connection(void);
72
73 int _bt_rfcomm_server_check_existence(gboolean *existence);
74
75 int _bt_rfcomm_server_check_termination(char *name);
76