void MediaBase::SetSource (Downloader *downloader, const char *PartName) { source_changed = false; if (source.queued) { if (source.downloader) source.downloader->unref (); g_free (source.part_name); source.downloader = NULL; source.part_name = NULL; } source.part_name = g_strdup (PartName); source.downloader = downloader; if (downloader) downloader->ref (); if (source.downloader && source.downloader->Completed ()) { SetSourceInternal (source.downloader, source.part_name); source.downloader->unref (); } else if (!source.queued) { AddTickCall (MediaBase::set_source_async); source.queued = true; } }
void BitmapImage::OnPropertyChanged (PropertyChangedEventArgs *args, MoonError *error) { if (args->GetProperty ()->GetOwnerType () != Type::BITMAPIMAGE) { BitmapSource::OnPropertyChanged (args, error); return; } if (args->GetId () == BitmapImage::UriSourceProperty) { Uri *uri = args->GetNewValue () ? args->GetNewValue ()->AsUri () : NULL; Abort (); if (Uri::IsNullOrEmpty (uri)) { SetBitmapData (NULL, false); } else if (uri->IsInvalidPath ()) { if (IsBeingParsed ()) MoonError::FillIn (error, MoonError::ARGUMENT_OUT_OF_RANGE, 0, "invalid path found in uri"); SetBitmapData (NULL, false); } else { AddTickCall (uri_source_changed_callback); } } else if (args->GetId () == BitmapImage::ProgressProperty) { if (HasHandlers (DownloadProgressEvent)) Emit (DownloadProgressEvent, new DownloadProgressEventArgs (GetProgress ())); } NotifyListenersOfPropertyChange (args, error); }
void HttpRequest::Send () { LOG_DOWNLOADER ("HttpRequest::Send () async send disabled: %i\n", options & DisableAsyncSend); if (options & DisableAsyncSend) { SendAsync (); } else { AddTickCall (SendAsyncCallback); } }
void Downloader::Send () { LOG_DOWNLOADER ("Downloader::Send ()\n"); if (send_queued) return; send_queued = true; SetStatusText (""); SetStatus (0); AddTickCall (SendAsync); }