2 * Network Configuration Module
4 * Copyright (c) 2017 Samsung Electronics Co., Ltd. All rights reserved.
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
10 * http://www.apache.org/licenses/LICENSE-2.0
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.
19 #ifndef __TIZEN_NETWORK_MULTI_DEVICE_GROUP_MDG_H__
20 #define __TIZEN_NETWORK_MULTI_DEVICE_GROUP_MDG_H__
33 * @addtogroup CAPI_NETWORK_MDG_MODULE
38 * @brief The mdg-manager handle.
44 * @brief Base error codes for mdg-manager.
48 #ifndef TIZEN_ERROR_MDG
49 #define TIZEN_ERROR_MDG -0x02F50000 /**< Base error code */
53 * @brief Error codes for mdg-manager.
58 MDG_ERROR_NONE = TIZEN_ERROR_NONE, /**< Successful */
59 MDG_ERROR_IO_ERROR = TIZEN_ERROR_IO_ERROR, /**< I/O error */
60 MDG_ERROR_INVALID_PARAMETER = TIZEN_ERROR_INVALID_PARAMETER, /**< Invalid parameter */
61 MDG_ERROR_OUT_OF_MEMORY = TIZEN_ERROR_OUT_OF_MEMORY, /**< Out of memory */
62 MDG_ERROR_PERMISSION_DENIED = TIZEN_ERROR_PERMISSION_DENIED, /**< Permission denied */
63 MDG_ERROR_NOT_SUPPORTED = TIZEN_ERROR_NOT_SUPPORTED, /**< Not supported */
64 MDG_ERROR_OPERATION_FAILED = TIZEN_ERROR_MDG | 0x01, /**< operation failed */
65 MDG_ERROR_NO_DATA = TIZEN_ERROR_MDG | 0x02, /**< Data not exists */
66 MDG_ERROR_ALREADY_REGISTERED = TIZEN_ERROR_MDG | 0x03, /**< Request already registered */
67 MDG_ERROR_IN_PROGRESS = TIZEN_ERROR_MDG | 0x04,/**< operation is in progress */
68 MDG_ERROR_COMM_ERROR = TIZEN_ERROR_MDG | 0x05, /**< communication error in lower layer */
69 MDG_ERROR_NOT_STARTED = TIZEN_ERROR_MDG | 0x06, /**< Service Not Started */
70 MDG_ERROR_DB = TIZEN_ERROR_MDG | 0x07, /**< Internal DB error */
71 MDG_ERROR_NOT_PROPER_GROUP = TIZEN_ERROR_MDG | 0x08, /**< Not proper group */
72 MDG_ERROR_NOT_PROPER_DEVICE = TIZEN_ERROR_MDG | 0x09, /**< Not proper device */
76 * @addtogroup CAPI_NETWORK_MDG_DEVICE_MODULE
81 * @brief Device handle.
85 typedef void *mdg_device_h; /**< Device handle */
92 * @addtogroup CAPI_NETWORK_MDG_GROUP_MODULE
97 * @brief Group handle.
101 typedef void *mdg_group_h; /**< Group handle */
108 * @brief Initializes mdg-manager.
111 * @privilege %http://tizen.org/privilege/internet
113 * @remarks You must release @a handle using mdg_deinitialize().
115 * @param[out] handle The multi device group manager handle
117 * @return @c 0 on success, otherwise negative error value
118 * @retval #MDG_ERROR_NONE Successful
119 * @retval #MDG_ERROR_INVALID_PARAMETER Invalid parameter
120 * @retval #MDG_ERROR_OPERATION_FAILED Operation failed
121 * @retval #MDG_ERROR_OUT_OF_MEMORY Out of memory
123 int mdg_initialize(mdg_h *handle);
126 * @brief Deinitializes the mdg-manager.
129 * @privilege %http://tizen.org/privilege/internet
131 * @param[in] handle The multi device group manager handle
133 * @return 0 on success, otherwise negative error value
134 * @retval #MDG_ERROR_NONE Successful
135 * @retval #MDG_ERROR_INVALID_PARAMETER Invalid parameter
136 * @retval #MDG_ERROR_OPERATION_FAILED Operation failed
138 int mdg_deinitialize(mdg_h handle);
146 * @addtogroup CAPI_NETWORK_MDG_GROUP_MODULE
156 MDG_GROUP_TYPE_LOCAL = 1, /**< Local group */
157 MDG_GROUP_TYPE_REMOTE = 2, /**< Remote grojp */
161 * @brief Called after mdg_group_find().
162 * @details This function can receive a group resource found.
166 * @privilege %http://tizen.org/privilege/internet
168 * @remarks The @a group should not be released.
169 * @remarks The @a group can be used only in the callback. To use outside, make a copy.
171 * @param[out] type Companion group type
172 * @param[out] group Group resource found
173 * @param[out] user_data User data pointer
175 * @pre The callback must be registered with mdg_group_find()
177 * @see mdg_group_find()
179 typedef bool (*mdg_group_found_cb)(mdg_group_type_e type,
180 mdg_group_h group, void *user_data);
183 * @brief Called after mdg_group_find() finished.
184 * @details Called when the maximum wait time elapsed after the mdg_group_find() done.
188 * @privilege %http://tizen.org/privilege/internet
190 * @param[out] result Result of operation
191 * @param[out] user_data User data pointer
193 * @pre The callback must be registered with mdg_group_find()
195 * @see mdg_group_find()
197 typedef void (*mdg_group_find_finish_cb)(int result, void *user_data);
200 * @brief Finds group resources in the network.
201 * @details This function is find group resources in the network plus my local network.
205 * @privilege %http://tizen.org/privilege/internet
207 * @param[in] handle The multi device group manager handle
208 * @param[in] timeout Time to find
209 * @param[in] found_cb Callback handler to retrieve the found group resource
210 * @param[in] finish_cb Callback handler to know finding process finished
211 * @param[in] user_data User data poiter
213 * @return 0 on success, otherwise a negative error value.
214 * @retval #MDG_ERROR_NONE Successful
215 * @retval #MDG_ERROR_INVALID_PARAMETER Invalid parameter
217 * @see mdg_group_create()
220 int mdg_group_find(mdg_h handle, int timeout,
221 mdg_group_found_cb found_cb, mdg_group_find_finish_cb finish_cb,
229 * @addtogroup CAPI_NETWORK_MDG_LOCAL_GROUP_MODULE
234 * @brief Creates a group.
235 * @details This function is to allocate new group in local mdg-manager.
239 * @privilege %http://tizen.org/privilege/internet
241 * @param[in] handle The multi device group manager handle
242 * @param[in] group_name Group name
244 * @return 0 on success, otherwise a negative error value.
245 * @retval #MDG_ERROR_NONE Successful
246 * @retval #MDG_ERROR_INVALID_PARAMETER Invalid parameter
248 * @see mdg_group_find()
251 int mdg_group_create(mdg_h handle, char *group_name);
254 * @brief Deletes the group.
255 * @details This function deletes a specific group and expels all devices in that group.
259 * @privilege %http://tizen.org/privilege/internet
261 * @param[in] handle The multi device group manager handle
262 * @param[in] group Group handle
265 * @return 0 on success, otherwise a negative error value.
266 * @retval #MDG_ERROR_NONE Successful
267 * @retval #MDG_ERROR_INVALID_PARAMETER Invalid parameter
269 * @see mdg_group_create()
270 * @see mdg_request_join_group()
271 * @see mdg_request_leave_group ()
272 * @see mdg_group_merge()
273 * @see mdg_group_get_member_devices()
276 int mdg_group_delete(mdg_h handle, mdg_group_h group);
279 * @brief Called after mdg_group_invite_device().
280 * @details Called when the maximum wait time elapsed or after the mdg_group_invite_device()
281 * finished successfully.
285 * @privilege %http://tizen.org/privilege/internet
287 * @param[out] result Result of operation
288 * @param[out] user_data User data pointer
290 * @pre The callback must be registered with mdg_group_invite_device()
292 * @see mdg_group_invite_device()
294 typedef bool (*mdg_group_foreach_cb)(mdg_device_h device, void *user_data);
297 * @brief Gets devices list in a group resource.
298 * @details This function retrieves a devices list of group resources.
302 * @privilege %http://tizen.org/privilege/internet
304 * @remarks The @a devices should be released using mdg_device_info_destroy().
306 * @param[in] handle The multi device group manager handle
307 * @param[in] group Group resource list
308 * @param[out] devices Device list
309 * @param[out] count Number of devices in a group
312 * @return 0 on success, otherwise a negative error value.
313 * @retval #MDG_ERROR_NONE Successful
314 * @retval #MDG_ERROR_INVALID_PARAMETER Invalid parameter
316 * @see mdg_group_create()
317 * @see mdg_request_join_group()
318 * @see mdg_request_leave_group ()
319 * @see mdg_group_delete()
320 * @see mdg_group_merge()
323 int mdg_group_foreach_device(mdg_h handle, mdg_group_h group,
324 mdg_group_foreach_cb foreach_cb, void *user_data);
327 * @brief Called after mdg_group_invite_device().
328 * @details Called when the maximum wait time elapsed or after the mdg_group_invite_device()
329 * finished successfully.
333 * @privilege %http://tizen.org/privilege/internet
335 * @param[out] result Result of operation
336 * @param[out] user_data User data pointer
338 * @pre The callback must be registered with mdg_group_invite_device()
340 * @see mdg_group_invite_device()
342 typedef void (*mdg_group_invite_device_finish_cb)(int result,
343 mdg_device_h invited_device, void *user_data);
346 * @brief Called after mdg_group_eject_device().
347 * @details Called when the maximum wait time elapsed or after the mdg_device_eject()
348 * finished successfully.
352 * @privilege %http://tizen.org/privilege/internet
354 * @param[out] result Result of operation
355 * @param[out] user_data User data pointer
357 * @pre The callback must be registered with mdg_device_eject()
359 * @see mdg_group_ejecct_device()
361 typedef void (*mdg_group_eject_device_finish_cb)(int result, void *user_data);
364 * @brief Requests to invite a device to the group which local device owns.
365 * @details This function invites a remote device to a specific group. At the time of invitation,
366 * user can enter the authentication information (i.e., PIN) or use the certificate.
370 * @privilege %http://tizen.org/privilege/internet
372 * @param[in] handle The multi device group manager handle
373 * @param[in] group Group handle
374 * @param[in] device Device handle
375 * @param[in] PIN PIN number
376 * @param[in] callback Callback handler to receive the result
377 * @param[in] user_data User data poiter
380 * @return 0 on success, otherwise a negative error value.
381 * @retval #MDG_ERROR_NONE Successful
382 * @retval #MDG_ERROR_INVALID_PARAMETER Invalid parameter
384 * @see mdg_request_create_group()
385 * @see mdg_request_eject_device()
386 * @see mdg_request_delete_group()
387 * @see mdg_request_result_callback()
388 * @see mdg_device_send_data()
391 int mdg_group_invite_device(mdg_h handle, mdg_group_h group,
392 mdg_device_h device, char *PIN,
393 mdg_group_invite_device_finish_cb callback, void *user_data);
396 * @brief Requests to expel the device from the group which local device owns.
397 * @details This function is used to kick away a remote devices in my local group.
401 * @privilege %http://tizen.org/privilege/internet
403 * @param[in] handle The multi device group manager handle
404 * @param[in] group Group handle
405 * @param[in] device Device handle
406 * @param[in] callback Callback handler to receive the result
407 * @param[in] user_data User data poiter
410 * @return 0 on success, otherwise a negative error value.
411 * @retval #MDG_ERROR_NONE Successful
412 * @retval #MDG_ERROR_INVALID_PARAMETER Invalid parameter
414 * @see mdg_request_create_group()
415 * @see mdg_request_eject_device()
416 * @see mdg_request_delete_group()
417 * @see mdg_request_result_callback()
418 * @see mdg_device_send_data()
421 int mdg_group_eject_device(mdg_h handle, mdg_group_h group,
422 mdg_device_h device, mdg_group_eject_device_finish_cb callback,
431 * @addtogroup CAPI_NETWORK_MDG_REMOTE_GROUP_MODULE
436 * @brief Callback function potiner to be regsitered after sending requests.
440 * @privilege %http://tizen.org/privilege/internet
442 * @remarks The @a cmd, @arg should not be released.
443 * @remarks The @a cmd, @arg can be used only in the callback. To use outside, make a copy.
445 * @param[out] cmd Command
446 * @param[out] device_id Device id of requester
447 * @param[out] arg Argument
448 * @param[out] ret Return code
449 * @param[out] user_data User data pointer
451 * @pre The callback must be registered with mdg_request_result_callback()
453 * @see mdg_request_result_callback()
455 typedef void (*mdg_request_result_cb)(char *cmd, char *device_id,
456 unsigned char *arg, int len, int ret, void *user_data);
458 typedef void (*mdg_request_channel_list_finish_cb)(char *device_id, char *channel_id, void *user_data);
461 * @brief Requests to create a group.
462 * @details We can create a group. This generated group can include device, and remote
463 * devices can inquire remotely group information and device information included in group.
467 * @privilege %http://tizen.org/privilege/internet
469 * @param[in] handle The multi device group manager handle
470 * @param[in] device Device handle
471 * @param[in] group_name Group name
472 * @param[in] cb Callback handler to receive the result
473 * @param[in] user_data User data pointer
476 * @return 0 on success, otherwise a negative error value.
477 * @retval #MDG_ERROR_NONE Successful
478 * @retval #MDG_ERROR_INVALID_PARAMETER Invalid parameter
480 * @see mdg_request_invite_device()
481 * @see mdg_request_eject_device()
482 * @see mdg_request_delete_group()
483 * @see mdg_request_result_callback()
484 * @see mdg_device_send_data()
487 int mdg_request_create_group(mdg_h handle,
488 mdg_device_h device, char *group_name, mdg_request_result_cb cb,
492 * @brief Requests to invite a device to the group.
493 * @details This function invites a remote device to a specific group. At the time of
494 * invitation, user can enter the authentication information (i.e., PIN) or use the
499 * @privilege %http://tizen.org/privilege/internet
501 * @param[in] handle The multi device group manager handle
502 * @param[in] group Group handle
503 * @param[in] device Device handle
504 * @param[in] PIN PIN number
505 * @param[in] cb Callback handler to receive the result
506 * @param[in] user_data User data pointer
509 * @return 0 on success, otherwise a negative error value.
510 * @retval #MDG_ERROR_NONE Successful
511 * @retval #MDG_ERROR_INVALID_PARAMETER Invalid parameter
513 * @see mdg_request_create_group()
514 * @see mdg_request_eject_device()
515 * @see mdg_request_delete_group()
516 * @see mdg_request_result_callback()
517 * @see mdg_device_send_data()
520 int mdg_request_invite_device(mdg_h handle, mdg_group_h group,
521 mdg_device_h device, char *PIN, mdg_request_result_cb cb,
525 * @brief Requests to eject a device.
526 * @details This function is used to kick away a remote devices in a specific group.
530 * @privilege %http://tizen.org/privilege/internet
532 * @param[in] handle The multi device group manager handle
533 * @param[in] group Group handle
534 * @param[in] device Device handle
535 * @param[in] cb Callback handler to receive the result
536 * @param[in] user_data User data pointer
539 * @return 0 on success, otherwise a negative error value.
540 * @retval #MDG_ERROR_NONE Successful
541 * @retval #MDG_ERROR_INVALID_PARAMETER Invalid parameter
543 * @see mdg_request_create_group()
544 * @see mdg_request_eject_device()
545 * @see mdg_request_delete_group()
546 * @see mdg_request_result_callback()
547 * @see mdg_device_send_data()
550 int mdg_request_eject_device(mdg_h handle, mdg_group_h group,
551 mdg_device_h device, mdg_request_result_cb cb, void *user_data);
553 int mdg_request_channel_list(mdg_h handle, mdg_device_h device,
554 mdg_request_channel_list_finish_cb finish_cb, void *user_data);
561 * @addtogroup CAPI_NETWORK_MDG_GROUP_INFORMATION_MODULE
566 * @brief Clones the group handle.
571 * @remarks The @a dst should be released using mdg_group_info_destroy().
573 * @param[out] dst Destination group handle
574 * @param[in] src Source group handle
576 * @return 0 on success, otherwise a negative error value.
577 * @retval #MDG_ERROR_NONE Successful
578 * @retval #MDG_ERROR_INVALID_PARAMETER Invalid parameter
580 * @see mdg_group_info_create()
581 * @see mdg_group_info_destroy()
582 * @see mdg_group_info_get_type()
583 * @see mdg_group_info_get_resource_type()
584 * @see mdg_group_info_get_uri_path()
585 * @see mdg_group_info_get_name()
588 int mdg_group_info_clone(mdg_group_h *dst,
592 * @brief Destroys the group handle.
597 * @param[in] group Group handle
599 * @return 0 on success, otherwise a negative error value.
600 * @retval #MDG_ERROR_NONE Successful
601 * @retval #MDG_ERROR_INVALID_PARAMETER Invalid parameter
603 * @see mdg_group_info_create()
604 * @see mdg_group_info_clone()
605 * @see mdg_group_info_get_type()
606 * @see mdg_group_info_get_resource_type()
607 * @see mdg_group_info_get_uri_path()
608 * @see mdg_group_info_get_name()
611 int mdg_group_info_destroy(mdg_group_h group);
613 int mdg_group_info_get_device_id(mdg_group_h group, char **device_id);
616 * @brief Gets group type of the group handle.
621 * @param[in] group Group handle
622 * @param[out] type Group type
624 * @return 0 on success, otherwise a negative error value.
625 * @retval #MDG_ERROR_NONE Successful
626 * @retval #MDG_ERROR_INVALID_PARAMETER Invalid parameter
628 * @see mdg_group_info_create()
629 * @see mdg_group_info_clone()
630 * @see mdg_group_info_destroy()
631 * @see mdg_group_info_get_resource_type()
632 * @see mdg_group_info_get_uri_path()
633 * @see mdg_group_info_get_name()
636 int mdg_group_info_get_type(mdg_group_h group, mdg_group_type_e *type);
639 * @brief Gets name of the group handle.
644 * @remarks The @a name should be released using free().
646 * @param[in] group Group handle
647 * @param[out] name Name of the group
649 * @return 0 on success, otherwise a negative error value.
650 * @retval #MDG_ERROR_NONE Successful
651 * @retval #MDG_ERROR_INVALID_PARAMETER Invalid parameter
653 * @see mdg_group_info_create()
654 * @see mdg_group_info_clone()
655 * @see mdg_group_info_destroy()
656 * @see mdg_group_info_get_type()
657 * @see mdg_group_info_get_resource_type()
658 * @see mdg_group_info_get_uri_path()
661 int mdg_group_info_get_name(mdg_group_h group, char **name);
669 * @addtogroup CAPI_NETWORK_MDG_DEVICE_MODULE
674 * @brief Device type.
679 MDG_DEVICE_TYPE_LOCAL = 1, /**< Local device */
680 MDG_DEVICE_TYPE_REMOTE = 2, /**< Remote device */
684 * @brief Called after mdg_device_find().
685 * @details This function can receive a device found.
689 * @privilege %http://tizen.org/privilege/internet
691 * @remarks The @a device should not be released.
692 * @remarks The @a device can be used only in the callback. To use outside, make a copy.
694 * @param[out] device Device found
695 * @param[out] user_data User data pointer
697 * @pre The callback must be registered with mdg_device_find()
699 * @see mdg_device_find()
701 typedef bool (*mdg_device_found_cb)(mdg_device_h device, void *user_data);
704 * @brief Called after mdg_device_find() finished.
705 * @details Called when the maximum wait time elapsed after the mdg_device_find() done.
709 * @privilege %http://tizen.org/privilege/internet
711 * @param[out] result Result of operation
712 * @param[out] user_data User data pointer
714 * @pre The callback must be registered with mdg_device_find()
716 * @see mdg_device_find()
718 typedef void (*mdg_device_find_finish_cb)(int result, void *user_data);
722 * @brief Called after mdg_device_send_data().
723 * @details Called when the maximum wait time elapsed or after the mdg_device_send_data()
724 * finished successfully.
728 * @privilege %http://tizen.org/privilege/internet
730 * @remarks The @a resp_data should not be released.
731 * @remarks The @a resp_data can be used only in the callback. To use outside, make a copy.
733 * @param[out] result Result of operation
734 * @param[out] resp_data Retrieved data
735 * @param[out] user_data User data pointer
737 * @pre The callback must be registered with mdg_device_send_data()
739 * @see mdg_device_send_data()
741 typedef void (*mdg_device_send_data_finish_cb)(int result, void *user_data);
744 * @brief Gets my local device handle.
745 * @details This function returns the local device information handle.
749 * @remarks The @a target should be released using mdg_device_info_destroy().
751 * @param[in] handle The multi device group manager handle
752 * @param[in] device Local device handle
754 * @return 0 on success, otherwise a negative error value.
755 * @retval #MDG_ERROR_NONE Successful
756 * @retval #MDG_ERROR_INVALID_PARAMETER Invalid parameter
757 * @retval #MDG_ERROR_NO_DATA No data
759 * @see mdg_device_info_get_my_uuid()
762 int mdg_device_get_local_device(mdg_h handle,
763 mdg_device_h *device);
766 * @brief Finds candidate devices to include my groups in the network.
767 * @details This function will search for candidate devices that can be included in local group.
771 * @privilege %http://tizen.org/privilege/internet
773 * @param[in] handle The multi device group manager handle
774 * @param[in] timeout Time to find
775 * @param[in] found_cb Callback handler to retrieve the found device
776 * @param[in] finish_cb Callback handler to know finding process finished
777 * @param[in] user_data User data poiter
780 * @return 0 on success, otherwise a negative error value.
781 * @retval #MDG_ERROR_NONE Successful
782 * @retval #MDG_ERROR_INVALID_PARAMETER Invalid parameter
785 int mdg_device_find(mdg_h handle, int timeout, bool is_invited,
786 mdg_device_found_cb found_cb, mdg_device_find_finish_cb finish_cb,
789 typedef void (*mdg_channel_cb)(int result, char *device_id, char *channel_id,
790 unsigned char *data, int data_length, void *user_data);
793 int mdg_device_regist_channel(mdg_h handle, char *channel_id,
794 mdg_channel_cb channel_cb, void *user_data);
796 int mdg_device_unregist_channel(mdg_h handle, char *channel_id);
800 * @brief Sends data to the remote device.
801 * @details We can send data to devices included in group.
805 * @privilege %http://tizen.org/privilege/internet
807 * @param[in] handle The multi device group manager handle
808 * @param[in] device Device handle
809 * @param[in] data Data to send
810 * @param[in] len What length to send
811 * @param[in] finish_cb Callback to be called after mdg_device_send_data() complete
812 * @param[in] user_data User data pointer
815 * @return 0 on success, otherwise a negative error value.
816 * @retval #MDG_ERROR_NONE Successful
817 * @retval #MDG_ERROR_INVALID_PARAMETER Invalid parameter
819 * @see mdg_request_create_group()
820 * @see mdg_request_invite_device()
821 * @see mdg_request_eject_device()
822 * @see mdg_request_delete_group()
823 * @see mdg_request_result_callback()
826 int mdg_device_send_data(mdg_h handle, mdg_device_h device, char *channel_id,
827 unsigned char *data, int len,
828 mdg_device_send_data_finish_cb finish_cb, void *user_data);
835 * @addtogroup CAPI_NETWORK_MDG_DEVICE_INFORMATION_MODULE
840 * @brief Clones the device handle.
845 * @remarks The @a target should be released using mdg_device_info_destroy().
847 * @param[in] target Target device handle
848 * @param[in] source Source device handle
850 * @return 0 on success, otherwise a negative error value.
851 * @retval #MDG_ERROR_NONE Successful
852 * @retval #MDG_ERROR_INVALID_PARAMETER Invalid parameter
854 * @see mdg_device_info_create()
855 * @see mdg_device_info_destroy()
856 * @see mdg_device_info_get_device_id()
857 * @see mdg_device_info_get_ip()
858 * @see mdg_device_info_get_device_type()
859 * @see mdg_device_info_get_model_name()
862 int mdg_device_info_clone(mdg_device_h *target,
863 mdg_device_h source);
866 * @brief Destroys the device handle.
871 * @param[in] device Device handle
873 * @return 0 on success, otherwise a negative error value.
874 * @retval #MDG_ERROR_NONE Successful
875 * @retval #MDG_ERROR_INVALID_PARAMETER Invalid parameter
877 * @see mdg_device_info_create()
878 * @see mdg_device_info_clone()
879 * @see mdg_device_info_get_device_id()
880 * @see mdg_device_info_get_ip()
881 * @see mdg_device_info_get_device_type()
882 * @see mdg_device_info_get_model_name()
885 int mdg_device_info_destroy(mdg_device_h device);
888 * @brief Gets device ID of the device handle.
893 * @remarks The @a device_id should be released using free().
895 * @param[in] device Device handle
896 * @param[out] device_id Device ID
898 * @return 0 on success, otherwise a negative error value.
899 * @retval #MDG_ERROR_NONE Successful
900 * @retval #MDG_ERROR_INVALID_PARAMETER Invalid parameter
902 * @see mdg_device_info_create()
903 * @see mdg_device_info_clone()
904 * @see mdg_device_info_destroy()
905 * @see mdg_device_info_get_ip()
906 * @see mdg_device_info_get_device_type()
907 * @see mdg_device_info_get_model_name()
910 int mdg_device_info_get_device_id(mdg_device_h device,
914 * @brief Gets IP of the device handle.
919 * @remarks The @a ip should be released using free().
921 * @param[in] device Device handle
922 * @param[out] ip IP address
924 * @return 0 on success, otherwise a negative error value.
925 * @retval #MDG_ERROR_NONE Successful
926 * @retval #MDG_ERROR_INVALID_PARAMETER Invalid parameter
928 * @see mdg_device_info_create()
929 * @see mdg_device_info_clone()
930 * @see mdg_device_info_destroy()
931 * @see mdg_device_info_get_device_id()
932 * @see mdg_device_info_get_device_type()
933 * @see mdg_device_info_get_model_name()
936 int mdg_device_info_get_addr(mdg_device_h device, char **addr);
937 int mdg_device_info_get_port(mdg_device_h device, int *port);
938 int mdg_device_info_get_secure_port(mdg_device_h device, int *secure_port);
941 * @brief Gets model name of the device handle.
946 * @remarks The @a model_name should be released using free().
948 * @param[in] device Device handle
949 * @param[out] model_name Model name
951 * @return 0 on success, otherwise a negative error value.
952 * @retval #MDG_ERROR_NONE Successful
953 * @retval #MDG_ERROR_INVALID_PARAMETER Invalid parameter
955 * @see mdg_device_info_create()
956 * @see mdg_device_info_clone()
957 * @see mdg_device_info_destroy()
958 * @see mdg_device_info_get_device_id()
959 * @see mdg_device_info_get_ip()
960 * @see mdg_device_info_get_device_type()
963 int mdg_device_info_get_model_name(mdg_device_h device, char **model_name);
964 int mdg_device_info_get_device_name(mdg_device_h device, char **device_name);
965 int mdg_device_info_get_platform_ver(mdg_device_h device, char **platform_ver);
966 int mdg_device_info_get_vendor_id(mdg_device_h device, char **vendor_id);
967 int mdg_device_info_get_profile(mdg_device_h device, char **profile);
968 int mdg_device_info_is_invited(mdg_device_h device, bool *is_invited);
971 * @brief Gets device type of the device handle.
976 * @remarks The @a device_type should be released using free().
978 * @param[in] device Device handle
979 * @param[out] device_type Device type
981 * @return 0 on success, otherwise a negative error value.
982 * @retval #MDG_ERROR_NONE Successful
983 * @retval #MDG_ERROR_INVALID_PARAMETER Invalid parameter
985 * @see mdg_device_info_create()
986 * @see mdg_device_info_clone()
987 * @see mdg_device_info_destroy()
988 * @see mdg_device_info_get_device_id()
989 * @see mdg_device_info_get_ip()
990 * @see mdg_device_info_get_model_name()
993 int mdg_device_info_get_type(mdg_device_h device,
994 mdg_device_type_e *device_type);
1005 #endif /* __TIZEN_NETWORK_MULTI_DEVICE_GROUP_MDG_H__ */