[NUI] Fix build warning & clean code [CA1051]
[platform/core/csapi/tizenfx.git] / src / Tizen.NUI / src / public / PropertyBuffer.cs
1 /*
2  * Copyright(c) 2019 Samsung Electronics Co., Ltd.
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
18 using System;
19 using System.ComponentModel;
20
21 namespace Tizen.NUI
22 {
23     /// <summary>
24     /// PropertyBuffer is a handle to an object that contains a buffer of structured data.<br />
25     /// PropertyBuffers can be used to provide data to Geometry objects.
26     /// </summary>
27     /// <since_tizen> 3 </since_tizen>
28     public class PropertyBuffer : BaseHandle
29     {
30
31         /// <summary>
32         /// Creates a PropertyBuffer.
33         /// </summary>
34         /// <param name="bufferFormat">The map of names and types that describes the components of the buffer.</param>
35         /// <since_tizen> 3 </since_tizen>
36         public PropertyBuffer(PropertyMap bufferFormat) : this(Interop.PropertyBuffer.New(PropertyMap.getCPtr(bufferFormat)), true)
37         {
38             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
39
40         }
41
42         internal PropertyBuffer(global::System.IntPtr cPtr, bool cMemoryOwn) : base(Interop.PropertyBuffer.Upcast(cPtr), cMemoryOwn)
43         {
44         }
45
46         /// <summary>
47         /// Updates the whole buffer information.<br />
48         /// This function expects a pointer to an array of structures with the same
49         /// format that was given in the construction, and the number of elements to
50         /// be the same as the size of the buffer.<br />
51         /// </summary>
52         /// <param name="data">A pointer to the data that will be copied to the buffer.</param>
53         /// <param name="size">Number of elements to expand or contract the buffer.</param>
54         /// <since_tizen> 3 </since_tizen>
55         [Obsolete("Deprecated in API6, Will be removed in API9, " +
56             "Please use PropertyBuffer(PropertyMap bufferFormat) constructor instead!" +
57             "IntPtr(native integer pointer) is supposed to be not used in Application!")]
58         [EditorBrowsable(EditorBrowsableState.Never)]
59         public void SetData(System.IntPtr data, uint size)
60         {
61             Interop.PropertyBuffer.SetData(SwigCPtr, data, size);
62             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
63         }
64
65         /// <summary>
66         /// Gets the number of elements in the buffer.
67         /// </summary>
68         /// <returns>Number of elements to expand or contract the buffer.</returns>
69         /// <since_tizen> 3 </since_tizen>
70         public uint GetSize()
71         {
72             uint ret = Interop.PropertyBuffer.GetSize(SwigCPtr);
73             if (NDalicPINVOKE.SWIGPendingException.Pending) throw NDalicPINVOKE.SWIGPendingException.Retrieve();
74             return ret;
75         }
76
77         internal static global::System.Runtime.InteropServices.HandleRef getCPtr(PropertyBuffer obj)
78         {
79             return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.SwigCPtr;
80         }
81
82         /// This will not be public opened.
83         [EditorBrowsable(EditorBrowsableState.Never)]
84         protected override void ReleaseSwigCPtr(System.Runtime.InteropServices.HandleRef swigCPtr)
85         {
86             Interop.PropertyBuffer.DeletePropertyBuffer(swigCPtr);
87         }
88     }
89 }