// -*- c++ -*- // Generated by gtkmmproc -- DO NOT MODIFY! #ifndef _GIOMM_MOUNT_H #define _GIOMM_MOUNT_H #include // -*- Mode: C++; indent-tabs-mode: nil; c-basic-offset: 2 -*- /* Copyright (C) 2007 The gtkmm Development Team * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ //#include #include #include #include #ifndef DOXYGEN_SHOULD_SKIP_THIS typedef struct _GMountIface GMountIface; #endif /* DOXYGEN_SHOULD_SKIP_THIS */ #ifndef DOXYGEN_SHOULD_SKIP_THIS typedef struct _GMount GMount; typedef struct _GMountClass GMountClass; #endif /* DOXYGEN_SHOULD_SKIP_THIS */ namespace Gio { class Mount_Class; } // namespace Gio namespace Gio { class Drive; //class Volume; /** The Mount interface represents user-visible mounts. * Mount is a "mounted" filesystem that you can access. Mounted is in quotes because it's not the same as a unix mount: * it might be a gvfs mount, but you can still access the files on it if you use GIO. It might or might not be related to a volume object. * * Unmounting a Mount instance is an asynchronous operation. For more information about asynchronous operations, see AsyncReady. * To unmount a Mount instance, first call unmount(). The callback slot will be called when the operation has resolved (either with success or failure), * and a AsyncReady structure will be passed to the callback. That callback should then call unmount_finish() with the AsyncReady data to see if the operation was completed successfully. * * @ingroup Streams * * @newin2p16 */ class Mount : public Glib::Interface { #ifndef DOXYGEN_SHOULD_SKIP_THIS public: typedef Mount CppObjectType; typedef Mount_Class CppClassType; typedef GMount BaseObjectType; typedef GMountIface BaseClassType; private: friend class Mount_Class; static CppClassType mount_class_; // noncopyable Mount(const Mount&); Mount& operator=(const Mount&); protected: Mount(); // you must derive from this class /** Called by constructors of derived classes. Provide the result of * the Class init() function to ensure that it is properly * initialized. * * @param interface_class The Class object for the derived type. */ explicit Mount(const Glib::Interface_Class& interface_class); public: // This is public so that C++ wrapper instances can be // created for C instances of unwrapped types. // For instance, if an unexpected C type implements the C interface. explicit Mount(GMount* castitem); protected: #endif /* DOXYGEN_SHOULD_SKIP_THIS */ public: virtual ~Mount(); static void add_interface(GType gtype_implementer); #ifndef DOXYGEN_SHOULD_SKIP_THIS static GType get_type() G_GNUC_CONST; static GType get_base_type() G_GNUC_CONST; #endif ///Provides access to the underlying C GObject. GMount* gobj() { return reinterpret_cast(gobject_); } ///Provides access to the underlying C GObject. const GMount* gobj() const { return reinterpret_cast(gobject_); } private: public: /** Gets the root directory on @a mount. * @return A File. */ Glib::RefPtr get_root(); /** Gets the root directory on @a mount. * @return A File. */ Glib::RefPtr get_root() const; /** Gets the name of @a mount. * @return The name for the given @a mount. The returned string should * be freed when no longer needed. */ std::string get_name() const; /** Gets the icon for @a mount. * @return A Icon. */ Glib::RefPtr get_icon(); /** Gets the icon for @a mount. * @return A Icon. */ Glib::RefPtr get_icon() const; /** Gets the UUID for the @a mount. The reference is typically based on * the file system UUID for the mount in question and should be * considered an opaque string. Returns 0 if there is no UUID * available. * @return The UUID for @a mount or 0 if no UUID can be computed. */ std::string get_uuid() const; /** Gets the volume for the @a mount. * @return A Volume or 0 if @a mount is not associated with a volume. */ Glib::RefPtr get_volume(); /** Gets the volume for the @a mount. * @return A Volume or 0 if @a mount is not associated with a volume. */ Glib::RefPtr get_volume() const; /** Gets the drive for the @a mount. * * This is a convenience method for getting the Volume and then * using that object to get the Drive. * @return A Drive or 0 if @a mount is not associated with a volume or a drive. */ Glib::RefPtr get_drive(); /** Gets the drive for the @a mount. * * This is a convenience method for getting the Volume and then * using that object to get the Drive. * @return A Drive or 0 if @a mount is not associated with a volume or a drive. */ Glib::RefPtr get_drive() const; /** Checks if @a mount can be mounted. * @return true if the @a mount can be unmounted. */ bool can_unmount() const; /** Checks if @a mount can be eject. * @return true if the @a mount can be ejected. */ bool can_eject() const; /** Unmounts a mount. * This is an asynchronous operation, and is finished by calling unmount_finish() with the AsyncResult data returned in the callback slot. * * @param slot A callback which will be called when the operation is completed or canceled. * @param cancellable A cancellable object which can be used to cancel the operation. * @param flags Flags affecting the unmount. */ void unmount(const SlotAsyncReady& slot, const Glib::RefPtr& cancellable, MountUnmountFlags flags = MOUNT_UNMOUNT_NONE); /** Unmounts a mount. * This is an asynchronous operation, and is finished by calling unmount_finish() with the AsyncResult data returned in the callback slot. * * @param slot A callback which will be called when the operation is completed or canceled. * @param flags Flags affecting the unmount. */ void unmount(const SlotAsyncReady& slot, MountUnmountFlags flags = MOUNT_UNMOUNT_NONE); /** Unmounts a mount. * * @param cancellable A cancellable object which can be used to cancel the operation. */ void unmount(MountUnmountFlags flags = MOUNT_UNMOUNT_NONE); /** Finishes unmounting a mount. If any errors occurred during the operation, * @a error will be set to contain the errors and false will be returned. * @param result A AsyncResult. * @return true if the mount was successfully unmounted. false otherwise. */ #ifdef GLIBMM_EXCEPTIONS_ENABLED bool unmount_finish(const Glib::RefPtr& result); #else bool unmount_finish(const Glib::RefPtr& result, std::auto_ptr& error); #endif //GLIBMM_EXCEPTIONS_ENABLED /** Remounts a mount. * This is an asynchronous operation, and is finished by calling mount_finish() with the AsyncResult data returned in the callback slot. * * Remounting is useful when some setting affecting the operation of the volume has been changed, as this may need a remount * to take affect. While this is semantically equivalent with unmounting and then remounting, not all backends might need to * actually be unmounted. * * @param operation A mount operation. * @param slot A callback which will be called when the operation is completed or canceled. * @param cancellable A cancellable object which can be used to cancel the operation. */ void remount(const Glib::RefPtr& operation, const SlotAsyncReady& slot, const Glib::RefPtr& cancellable, MountMountFlags flags = MOUNT_MOUNT_NONE); /** Remounts a mount. * This is an asynchronous operation, and is finished by calling mount_finish() with the AsyncResult data returned in the callback slot. * * Remounting is useful when some setting affecting the operation of the volume has been changed, as this may need a remount * to take affect. While this is semantically equivalent with unmounting and then remounting, not all backends might need to * actually be unmounted. * * @param operation A mount operation. * @param slot A callback which will be called when the operation is completed or canceled. */ void remount(const Glib::RefPtr& operation, const SlotAsyncReady& slot, MountMountFlags flags = MOUNT_MOUNT_NONE); /** Remounts a mount. * * Remounting is useful when some setting affecting the operation of the volume has been changed, as this may need a remount * to take affect. While this is semantically equivalent with unmounting and then remounting, not all backends might need to * actually be unmounted. * * @param operation A mount operation. */ void remount(const Glib::RefPtr& operation, MountMountFlags flags = MOUNT_MOUNT_NONE); /** Remounts a mount, without user interaction. * * Remounting is useful when some setting affecting the operation of the volume has been changed, as this may need a remount * to take affect. While this is semantically equivalent with unmounting and then remounting, not all backends might need to * actually be unmounted. */ void remount(MountMountFlags flags = MOUNT_MOUNT_NONE); /** Finishes remounting a mount. If any errors occurred during the operation, * @a error will be set to contain the errors and false will be returned. * @param result A AsyncResult. * @return true if the mount was successfully remounted. false otherwise. */ #ifdef GLIBMM_EXCEPTIONS_ENABLED bool remount_finish(const Glib::RefPtr& result); #else bool remount_finish(const Glib::RefPtr& result, std::auto_ptr& error); #endif //GLIBMM_EXCEPTIONS_ENABLED /** Ejects a mount. * This is an asynchronous operation, and is finished by calling eject_finish() with the AsyncResult data returned in the callback slot. * * @param slot A callback which will be called when the operation is completed or canceled. * @param cancellable A cancellable object which can be used to cancel the operation. * @param flags Flags affecting the unmount if required for eject. */ void eject(const SlotAsyncReady& slot, const Glib::RefPtr& cancellable, MountUnmountFlags flags = MOUNT_UNMOUNT_NONE); /** Ejects a mount. * This is an asynchronous operation, and is finished by calling eject_finish() with the AsyncResult data returned in the callback slot. * * @param slot A callback which will be called when the operation is completed or canceled. * @param flags Flags affecting the unmount if required for eject. */ void eject(const SlotAsyncReady& slot, MountUnmountFlags flags = MOUNT_UNMOUNT_NONE); /** Ejects a mount. * * @param flags Flags affecting the unmount if required for eject. */ void eject(MountUnmountFlags flags = MOUNT_UNMOUNT_NONE); /** Finishes ejecting a mount. If any errors occurred during the operation, * @a error will be set to contain the errors and false will be returned. * @param result A AsyncResult. * @return true if the mount was successfully ejected. false otherwise. */ #ifdef GLIBMM_EXCEPTIONS_ENABLED bool eject_finish(const Glib::RefPtr& result); #else bool eject_finish(const Glib::RefPtr& result, std::auto_ptr& error); #endif //GLIBMM_EXCEPTIONS_ENABLED /** Tries to guess the type of content stored on the mount. * Returns one or more textual identifiers of well-known content types (typically * prefixed with "x-content/"), e.g. x-content/image-dcf for camera * memory cards. See the shared-mime-info specification for more on x-content types. * * This is an asynchronous operation, and is finished by calling * guess_content_type_finish(). * * @param slot A callback which will be called when the operation is completed or canceled. * @param cancellable A cancellable object which can be used to cancel the operation. * @param force_rescan Whether to force a rescan of the content. Otherwise a cached result will be used if available. * * @newin2p18 */ void guess_content_type(const SlotAsyncReady& slot, const Glib::RefPtr& cancellable, bool force_rescan = true); /** Tries to guess the type of content stored on the mount. * Returns one or more textual identifiers of well-known content types (typically * prefixed with "x-content/"), e.g. x-content/image-dcf for camera * memory cards. See the shared-mime-info specification for more on x-content types. * * This is an asynchronous operation, and is finished by calling * guess_content_type_finish(). * * @param slot A callback which will be called when the operation is completed or canceled. * @param force_rescan Whether to force a rescan of the content. Otherwise a cached result will be used if available. * * @newin2p18 */ void guess_content_type(const SlotAsyncReady& slot, bool force_rescan = true); /** Tries to guess the type of content stored on the mount. * Returns one or more textual identifiers of well-known content types (typically * prefixed with "x-content/"), e.g. x-content/image-dcf for camera * memory cards. See the shared-mime-info specification for more on x-content types. * * @param force_rescan Whether to force a rescan of the content. Otherwise a cached result will be used if available. * * @newin2p18 */ void guess_content_type(bool force_rescan = true); //TODO: Correct the documentation: #ifdef GLIBMM_EXCEPTIONS_ENABLED Glib::StringArrayHandle guess_content_type_finish(const Glib::RefPtr& result); #else Glib::StringArrayHandle guess_content_type_finish(const Glib::RefPtr& result, std::auto_ptr& error); #endif //GLIBMM_EXCEPTIONS_ENABLED /** * @par Prototype: * void on_my_%changed() */ Glib::SignalProxy0< void > signal_changed(); /** * @par Prototype: * void on_my_%unmounted() */ Glib::SignalProxy0< void > signal_unmounted(); //There are no properties. public: public: //C++ methods used to invoke GTK+ virtual functions: #ifdef GLIBMM_VFUNCS_ENABLED #endif //GLIBMM_VFUNCS_ENABLED protected: //GTK+ Virtual Functions (override these to change behaviour): #ifdef GLIBMM_VFUNCS_ENABLED #endif //GLIBMM_VFUNCS_ENABLED //Default Signal Handlers:: #ifdef GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED virtual void on_changed(); virtual void on_unmounted(); #endif //GLIBMM_DEFAULT_SIGNAL_HANDLERS_ENABLED }; } // namespace Gio namespace Glib { //Pre-declare this so we can use it in TypeTrait: Glib::RefPtr wrap(GMount* object, bool take_copy); namespace Container_Helpers { /** This specialization of TypeTraits exists * because the default use of Glib::wrap(GObject*), * instead of a specific Glib::wrap(GSomeInterface*), * would not return a wrapper for an interface. */ template <> struct TypeTraits< Glib::RefPtr > { typedef Glib::RefPtr CppType; typedef GMount* CType; typedef GMount* CTypeNonConst; static CType to_c_type (const CppType& item) { return Glib::unwrap (item); } static CppType to_cpp_type (const CType& item) { //Use a specific Glib::wrap() function, //because CType has the specific type (not just GObject): return Glib::wrap(item, true /* take_copy */); } static void release_c_type (CType item) { GLIBMM_DEBUG_UNREFERENCE(0, item); g_object_unref(item); } }; } // Container_Helpers } // Glib namespace Glib { /** A Glib::wrap() method for this object. * * @param object The C instance. * @param take_copy False if the result should take ownership of the C instance. True if it should take a new copy or ref. * @result A C++ instance that wraps this C instance. * * @relates Gio::Mount */ Glib::RefPtr wrap(GMount* object, bool take_copy = false); } // namespace Glib #endif /* _GIOMM_MOUNT_H */