static void spice_win_usb_driver_read_reply_async(SpiceWinUsbDriver *self) { SpiceWinUsbDriverPrivate *priv; GInputStream *istream; g_return_if_fail(SPICE_IS_WIN_USB_DRIVER(self)); priv = self->priv; SPICE_DEBUG("waiting for a reply from usbclerk"); istream = g_win32_input_stream_new(priv->handle, FALSE); g_input_stream_read_async(istream, &priv->reply, sizeof(priv->reply), G_PRIORITY_DEFAULT, priv->cancellable, win_usb_driver_handle_reply_cb, self); }
/** * gegl_gio_open_input_stream: * @uri: (allow none) URI to open. @uri is preferred over @path if both are set * @path: (allow none) path to open. * @out_file: (out) (transfer full): return location for GFile, if stream is for a file * * Return value: (transfer full): A new #GInputStream, free with g_object_unref() * * Note: currently private API */ GInputStream * gegl_gio_open_input_stream(const gchar *uri, const gchar *path, GFile **out_file, GError **err) { GFile *infile = NULL; GInputStream *fis = NULL; g_return_val_if_fail(uri || path, NULL); g_return_val_if_fail(out_file, NULL); if (path && g_strcmp0(path, "-") == 0) { const gboolean close_fd = FALSE; infile = NULL; #ifdef G_OS_WIN32 fis = g_win32_input_stream_new (GetStdHandle (STD_INPUT_HANDLE), close_fd); #else fis = g_unix_input_stream_new(STDIN_FILENO, close_fd); #endif } else if (uri && strlen(uri) > 0) { if (gegl_gio_uri_is_datauri(uri)) { fis = input_stream_datauri(uri); } else { infile = g_file_new_for_uri(uri); } } else if (path && strlen(path) > 0) { infile = g_file_new_for_path(path); } else { return NULL; } if (infile) { g_assert(!fis); fis = G_INPUT_STREAM(g_file_read(infile, NULL, err)); *out_file = infile; } return fis; }
GInputStream * gitg_platform_support_new_input_stream_from_fd (gint fd, gboolean close_fd) { return g_win32_input_stream_new ((void *)fd, close_fd); }