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="Place"/> objects to be used in <see cref="ServiceData.MapService"/> APIs
25 internal class PlaceList
27 internal Interop.PlaceListHandle handle;
28 private List<Place> _list;
30 internal PlaceList(IntPtr nativeHandle)
32 handle = new Interop.PlaceListHandle(nativeHandle);
33 Interop.Place.PlaceCallback callback = (index, placeHandle, userData) =>
35 _list.Add(new Place(placeHandle));
39 var err = Interop.Place.ListForeach(handle, callback, IntPtr.Zero);
40 err.WarnIfFailed("Failed to create address to the list from native handle");
44 /// Iterator for addresses in this list
46 public IEnumerable<Place> Places
52 _list = new List<Place>();
53 Interop.Place.PlaceCallback callback = (index, handle, userData) =>
55 _list.Add(new Place(handle));
59 var err = Interop.Place.ListForeach(handle, callback, IntPtr.Zero);
60 err.WarnIfFailed("Failed to get place list from native handle");