model_multipart* reader::load_from_file(const std::string &name) const { std::ifstream file; file.open((m_basepath + name).c_str(), std::ios::in); if (!file.is_open()) throw exception(__func__, exception::user_error, std::string("Could not open file for reading: ") + name); model_multipart *model = load_from_stream(file, name); file.close(); return model; }
model_multipart* reader::load_from_file(const std::string &name) const { std::ifstream file; std::string filename = m_basepath + name; struct stat buffer; if (stat(filename.c_str(), &buffer) != 0) throw exception(__func__, exception::user_error, std::string("Could not open file for reading: ") + name); file.open(filename.c_str(), std::ios::in); model_multipart *model = load_from_stream(file, name); file.close(); return model; }
void load(GraphType& g, std::string prefix, line_parser_type<GraphType> line_parser) { if (prefix.length() == 0) return; g.dc().full_barrier(); g.clear(); std::string directory_name; std::string original_path(prefix); boost::filesystem::path path(prefix); std::string search_prefix; if (boost::filesystem::is_directory(path)) { // if this is a directory // force a "/" at the end of the path // make sure to check that the path is non-empty. (you do not // want to make the empty path "" the root path "/" ) directory_name = path.native(); } else { directory_name = path.parent_path().native(); search_prefix = path.filename().native(); directory_name = (directory_name.empty() ? "." : directory_name); } std::vector<std::string> graph_files; fs_util::list_files_with_prefix(directory_name, search_prefix, graph_files); if (graph_files.size() == 0) { logstream(LOG_WARNING) << "No files found matching " << original_path << std::endl; } parallel_for(0, graph_files.size(), [&](size_t i) { if (i % g.numprocs() == g.procid()) { logstream(LOG_EMPH) << "Loading graph from file: " << graph_files[i] << std::endl; general_ifstream fin(graph_files[i]); if(!fin.good()) { log_and_throw_io_failure("Cannot open file: " + graph_files[i]); } const bool success = load_from_stream(g, graph_files[i], fin, line_parser); if(!success) { log_and_throw_io_failure("Fail parsing file: " + graph_files[i]); } } }); g.dc().full_barrier(); g.finalize(); } // end of load
GthImage * gth_pixbuf_new_from_file (GInputStream *istream, GthFileData *file_data, int requested_size, int *original_width, int *original_height, gboolean *loaded_original, gboolean scale_to_original, GCancellable *cancellable, GError **error) { ScaleData scale_data; GdkPixbufLoader *pixbuf_loader; GdkPixbuf *pixbuf; GthImage *image; gboolean original_size_rotated = FALSE; if (original_width != NULL) *original_width = -1; if (original_height != NULL) *original_height = -1; scale_data.requested_size = requested_size; scale_data.original_width = -1; scale_data.original_height = -1; scale_data.loader_width = -1; scale_data.loader_height = -1; pixbuf_loader = gdk_pixbuf_loader_new (); g_signal_connect (pixbuf_loader, "size-prepared", G_CALLBACK (pixbuf_loader_size_prepared_cb), &scale_data); pixbuf = load_from_stream (pixbuf_loader, istream, requested_size, cancellable, error); g_object_unref (pixbuf_loader); if ((pixbuf != NULL) && scale_to_original) { GdkPixbuf *tmp; tmp = _gdk_pixbuf_scale_simple_safe (pixbuf, scale_data.original_width, scale_data.original_height, GDK_INTERP_NEAREST); g_object_unref (pixbuf); pixbuf = tmp; } if ((original_width != NULL) && (original_height != NULL)) { if (file_data != NULL) { char *path; path = g_file_get_path (file_data->file); if (path != NULL) { gdk_pixbuf_get_file_info (path, &scale_data.original_width, &scale_data.original_height); original_size_rotated = TRUE; g_free (path); } } } if (pixbuf != NULL) { GdkPixbuf *rotated; rotated = gdk_pixbuf_apply_embedded_orientation (pixbuf); if (rotated != NULL) { if (! original_size_rotated) { /* swap width and height */ int tmp = scale_data.original_width; scale_data.original_width = scale_data.original_height; scale_data.original_height =tmp; } g_object_unref (pixbuf); pixbuf = rotated; } } image = gth_image_new (); if (pixbuf != NULL) { cairo_surface_t *surface; cairo_surface_metadata_t *metadata; surface = _cairo_image_surface_create_from_pixbuf (pixbuf); metadata = _cairo_image_surface_get_metadata (surface); metadata->original_width = scale_data.original_width; metadata->original_height = scale_data.original_height; metadata->has_alpha = gdk_pixbuf_get_has_alpha (pixbuf); gth_image_set_cairo_surface (image, surface); } if (original_width != NULL) *original_width = scale_data.original_width; if (original_height != NULL) *original_height = scale_data.original_height; if (loaded_original != NULL) *loaded_original = (pixbuf != NULL) && (scale_data.original_width == gdk_pixbuf_get_width (pixbuf)) && (scale_data.original_height == gdk_pixbuf_get_height (pixbuf)); _g_object_unref (pixbuf); return image; }
GthImage * gth_pixbuf_new_from_file (GInputStream *istream, GthFileData *file_data, int requested_size, int *original_width, int *original_height, gboolean scale_to_original, GCancellable *cancellable, GError **error) { ScaleData scale_data; GdkPixbufLoader *pixbuf_loader; GdkPixbuf *pixbuf; GthImage *image; if (original_width != NULL) *original_width = -1; if (original_height != NULL) *original_height = -1; scale_data.requested_size = requested_size; scale_data.original_width = -1; scale_data.original_height = -1; scale_data.loader_width = -1; scale_data.loader_height = -1; pixbuf_loader = gdk_pixbuf_loader_new (); g_signal_connect (pixbuf_loader, "size-prepared", G_CALLBACK (pixbuf_loader_size_prepared_cb), &scale_data); pixbuf = load_from_stream (pixbuf_loader, istream, requested_size, cancellable, error); g_object_unref (pixbuf_loader); if ((pixbuf != NULL) && scale_to_original) { GdkPixbuf *tmp; tmp = _gdk_pixbuf_scale_simple_safe (pixbuf, scale_data.original_width, scale_data.original_height, GDK_INTERP_NEAREST); g_object_unref (pixbuf); pixbuf = tmp; } if (pixbuf != NULL) { GdkPixbuf *rotated; rotated = gdk_pixbuf_apply_embedded_orientation (pixbuf); if (rotated != NULL) { scale_data.original_width = gdk_pixbuf_get_width (rotated); scale_data.original_height = gdk_pixbuf_get_height (rotated); g_object_unref (pixbuf); pixbuf = rotated; } } image = gth_image_new_for_pixbuf (pixbuf); if (original_width != NULL) *original_width = scale_data.original_width; if (original_height != NULL) *original_height = scale_data.original_height; _g_object_unref (pixbuf); return image; }