private PlaceSearchRequest(MapService service, ServiceRequestType type) : base(service, type) { // The Maps Service invokes this callback while iterating through the set of obtained Place data. _placeCallback = (result, id, index, total, place, userData) => { errorCode = result; if (result.IsSuccess()) { // The parameter place must be released using maps_place_destroy(). var placeHandle = new Interop.PlaceHandle(place, needToRelease: true); _placeList.Add(new Place(placeHandle)); if (_placeList.Count == total) { _requestTask?.TrySetResult(_placeList); } return(true); } else { // If search is failed, the value of total is 0 and place is NULL _requestTask?.TrySetException(errorCode.GetException(errMessage)); return(false); } }; }
internal Place(Interop.PlaceHandle nativeHandle) { handle = nativeHandle; }