Release 4.0.0-preview1-00051
[platform/core/csapi/tizenfx.git] / src / Tizen.Maps / Interop / Interop.Place.Link.Object.cs
1 /*
2  * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
3  *
4  * Licensed under the Apache License, Version 2.0 (the License);
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an AS IS BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 using System;
18 using System.Runtime.InteropServices;
19
20 internal static partial class Interop
21 {
22     [DllImport(Libraries.MapService, EntryPoint = "maps_place_link_object_get_id")]
23     internal static extern ErrorCode GetId(this PlaceLinkObjectHandle /* maps_place_link_object_h */ link, out string id);
24
25     [DllImport(Libraries.MapService, EntryPoint = "maps_place_link_object_get_name")]
26     internal static extern ErrorCode GetName(this PlaceLinkObjectHandle /* maps_place_link_object_h */ link, out string name);
27
28     [DllImport(Libraries.MapService, EntryPoint = "maps_place_link_object_get_string")]
29     internal static extern ErrorCode GetLink(this PlaceLinkObjectHandle /* maps_place_link_object_h */ link, out string linkString);
30
31     [DllImport(Libraries.MapService, EntryPoint = "maps_place_link_object_get_type")]
32     internal static extern ErrorCode GetType(this PlaceLinkObjectHandle /* maps_place_link_object_h */ link, out string type);
33
34     internal class PlaceLinkObjectHandle : SafeMapsHandle
35     {
36         [DllImport(Libraries.MapService, EntryPoint = "maps_place_link_object_destroy")]
37         internal static extern ErrorCode Destroy(IntPtr /* maps_place_link_object_h */ link);
38
39         internal string Id
40         {
41             get { return NativeGet(this.GetId); }
42         }
43
44         internal string Name
45         {
46             get { return NativeGet(this.GetName); }
47         }
48
49         internal string Link
50         {
51             get { return NativeGet(this.GetLink); }
52         }
53
54         internal string Type
55         {
56             get { return NativeGet(this.GetType); }
57         }
58
59         public PlaceLinkObjectHandle(IntPtr handle, bool needToRelease) : base(handle, needToRelease, Destroy)
60         {
61         }
62
63         internal static PlaceLinkObjectHandle Create(IntPtr nativeHandle)
64         {
65             return new PlaceLinkObjectHandle(nativeHandle, true);
66         }
67     }
68 }