2 * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
18 using System.Collections.Generic;
23 /// List of <see cref="PlaceAddress"/> objects to be used in <see cref="MapService"/> APIs.
25 internal class PlaceAddressList : IDisposable
27 internal Interop.AddressListHandle handle;
28 private List<PlaceAddress> _list;
31 /// Constructs a map address list object.
33 /// <exception cref="System.NotSupportedException">Thrown when the required feature is not supported.</exception>
34 /// <exception cref="System.InvalidOperationException">Thrown when native operation failed to allocate memory.</exception>
35 public PlaceAddressList()
37 handle = new Interop.AddressListHandle();
40 internal PlaceAddressList(Interop.AddressListHandle nativeHandle)
42 handle = nativeHandle;
46 /// Destroy the PlaceAddressList object.
54 /// Gets an iterator for addresses in this list.
56 public IEnumerable<PlaceAddress> Addresses
62 _list = new List<PlaceAddress>();
63 handle.Foreach(addressHandle => _list.Add(new PlaceAddress(addressHandle)));
69 #region IDisposable Support
70 private bool _disposedValue = false;
73 /// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
75 /// <param name="disposing">If true, managed and unmanaged resources can be disposed, otherwise only unmanaged resources can be disposed.</param>
76 protected virtual void Dispose(bool disposing)
85 _disposedValue = true;
90 /// Releases all the resources used by this object.
92 /// <since_tizen> 3 </since_tizen>
96 GC.SuppressFinalize(this);