FMAIExporter

FMAIExporter — The Export Interface

Functions

Types and Values

Object Hierarchy

    GInterface
    ╰── FMAIExporter

Prerequisites

FMAIExporter requires GObject.

Includes

#include <filemanager-actions/fma-iexporter.h>

Description

The FMAIExporter interface exports items to the outside world. Each implementation may provide one or more formats.

Export format identifier

For its own internal needs, FileManager-Actions™ requires that each export format have its own identifier, as an ASCII string.

In order to avoid any collision, this export format identifier is allocated by the FileManager-Actions™ maintainers team. If you wish provide yourself a new export format, and so need a new export format identifier, please contact the maintainers (see filemanager-actions.doap at the root of the source tree).

Below is a list of currently allocated export format identifiers. This list has been last updated on 2015, September 10th.

Table 5. Currently allocated export format identifiers

Identifier Name Holder Allocated on    
Ask Reserved for FileManager-Actions™ internal needs FileManager-Actions 2010-02-15   current
Desktop1 FMA Desktop module FileManager-Actions 2010-07-28   current
GConfSchemaV1 FMA XML module FileManager-Actions 2010-02-15 deprecated  
GConfSchemaV2 FMA XML module FileManager-Actions 2010-02-15 deprecated  
GConfEntry FMA XML module FileManager-Actions 2010-02-15 deprecated  


Versions historic

Table 6. Historic of the versions of the FMAIExporter interface

FileManager-Actions™ version FMAIExporter interface version    
from 2.30 to 3.1.5 1 deprecated  
since 3.2 2   current version

Functions

FMA_IEXPORTER()

#define FMA_IEXPORTER( instance )               ( G_TYPE_CHECK_INSTANCE_CAST( instance, FMA_TYPE_IEXPORTER, FMAIExporter ))

FMA_IS_IEXPORTER()

#define FMA_IS_IEXPORTER( instance )            ( G_TYPE_CHECK_INSTANCE_TYPE( instance, FMA_TYPE_IEXPORTER ))

FMA_IEXPORTER_GET_INTERFACE()

#define FMA_IEXPORTER_GET_INTERFACE( instance ) ( G_TYPE_INSTANCE_GET_INTERFACE(( instance ), FMA_TYPE_IEXPORTER, FMAIExporterInterface ))

Types and Values

FMA_TYPE_IEXPORTER

#define FMA_TYPE_IEXPORTER                      ( fma_iexporter_get_type())

FMAIExporter

typedef struct _FMAIExporter FMAIExporter;

FMAIExporterInterface

typedef struct {
	/**
	 * get_version:
	 * @instance: this FMAIExporter instance.
	 *
	 * FileManager-Actions calls this method each time it needs to know
	 * which version of this interface the plugin implements.
	 *
	 * If this method is not implemented by the plugin,
	 * FileManager-Actions considers that the plugin only implements
	 * the version 1 of the FMAIImporter interface.
	 *
	 * Return value: if implemented, this method must return the version
	 * number of this interface the I/O provider is supporting.
	 *
	 * Defaults to 1.
	 *
	 * Since: 2.30
	 */
	guint   ( *get_version )( const FMAIExporter *instance );

	/**
	 * get_name:
	 * @instance: this FMAIExporter instance.
	 *
	 * Return value: if implemented, the method should return the name to be
	 * displayed, as a newly allocated string which will be g_free() by the
	 * caller.
	 *
	 * This may be the name of the module itself, but this also may be a
	 * special name the modules gives to this interface.
	 *
	 * Defaults to a NULL string.
	 *
	 * Since: 2.30
	 */
	gchar * ( *get_name )   ( const FMAIExporter *instance );

	/**
	 * get_formats:
	 * @instance: this FMAIExporter instance.
	 *
	 * For its own internal needs, FileManager-Actions requires each export
	 * format has its own unique identifier (in fact, just a small ASCII
	 * string).
	 *
	 * To avoid any collision, the format identifier is allocated by the
	 * FileManager-Actions maintainers team. If you wish develop a new export
	 * format, and so need a new format identifier, please contact the
	 * maintainers (see filemanager-actions.doap).
	 *
	 * Return value:
	 * - Interface v1:
	 *   a null-terminated list of FMAIExporterFormat structures
	 *   which describes the formats supported by this FMAIExporter
	 *   provider.
	 *   The returned list is owned by the FMAIExporter provider,
	 *   and should not be freed nor released by the caller.
	 *
	 * - Interface v2:
	 *   a GList of FMAIExporterFormatv2 structures
	 *   which describes the formats supported by this FMAIExporter
	 *   provider.
	 *   The caller should then invoke the free_formats() method
	 *   in order the provider be able to release the resources
	 *   allocated to the list.
	 *
	 * Defaults to NULL (no format at all).
	 *
	 * Since: 2.30
	 */
	void *  ( *get_formats )( const FMAIExporter *instance );

	/**
	 * free_formats:
	 * @instance: this FMAIExporter instance.
	 * @formats: a null-terminated list of FMAIExporterFormatv2 structures,
	 *  as returned by get_formats() method above.
	 *
	 * Free the resources allocated to the @formats list.
	 *
	 * Since: 3.2
	 */
	void    ( *free_formats )( const FMAIExporter *instance, GList *formats );

	/**
	 * to_file:
	 * @instance: this FMAIExporter instance.
	 * @parms: a FMAIExporterFileParmsv2 structure.
	 *
	 * Exports the specified 'exported' to the target 'folder' in the required
	 * 'format'.
	 *
	 * Return value: the FMAIExporterExportStatus status of the operation.
	 *
	 * Since: 2.30
	 */
	guint   ( *to_file )    ( const FMAIExporter *instance, FMAIExporterFileParmsv2 *parms );

	/**
	 * to_buffer:
	 * @instance: this FMAIExporter instance.
	 * @parms: a FMAIExporterFileParmsv2 structure.
	 *
	 * Exports the specified 'exported' to a newly allocated 'buffer' in
	 * the required 'format'. The allocated 'buffer' will be g_free()
	 * by the caller.
	 *
	 * Return value: the FMAIExporterExportStatus status of the operation.
	 *
	 * Since: 2.30
	 */
	guint   ( *to_buffer )  ( const FMAIExporter *instance, FMAIExporterBufferParmsv2 *parms );
} FMAIExporterInterface;

This defines the interface that a FMAIExporter should implement.

Members

get_version ()

[should] returns the version of this interface the plugin implements.

 

get_name ()

[should] returns the public plugin name.

 

get_formats ()

[should] returns the list of supported formats.

 

free_formats ()

[should] free a list of formats

 

to_file ()

[should] exports an item to a file.

 

to_buffer ()

[should] exports an item to a buffer.

 

enum FMAIExporterExportStatus

The reasons for which an item may not have been exported

Members

FMA_IEXPORTER_CODE_OK

export OK.

 

FMA_IEXPORTER_CODE_INVALID_ITEM

exported item was found invalid.

 

FMA_IEXPORTER_CODE_INVALID_TARGET

selected target was found invalid.

 

FMA_IEXPORTER_CODE_INVALID_FORMAT

asked format was found invalid.

 

FMA_IEXPORTER_CODE_UNABLE_TO_WRITE

unable to write the item.

 

FMA_IEXPORTER_CODE_ERROR

other undetermined error.

 

FMAIExporterFormat

typedef struct {
	gchar     *format;
	gchar     *label;
	gchar     *description;
} FMAIExporterFormat;

FMAIExporterFormat has been deprecated since version 3.2 and should not be used in newly-written code.

This structure describes a supported output format. It must be provided by each FMAIExporter implementation (see e.g. src/io-xml/naxml-formats.c).

When listing available export formats, the instance returns a GList of these structures.

Members

gchar *format;

format identifier (ascii).

 

gchar *label;

short label to be displayed in dialog (UTF-8 localized)

 

gchar *description;

full description of the format (UTF-8 localized); mainly used in the export assistant.

 

FMAIExporterFormatv2

typedef struct {
	guint         version;
	FMAIExporter *provider;
	gchar        *format;
	gchar        *label;
	gchar        *description;
	GdkPixbuf    *pixbuf;
} FMAIExporterFormatv2;

This structure describes a supported output format. It must be provided by each FMAIExporter implementation (see e.g. src/io-xml/fma-xml-formats.c).

When listing available export formats, the provider must return a GList of these structures.

Members

guint version;

the version of this FMAIExporterFormatv2 structure; equals to 2; since structure version 1.

 

FMAIExporter *provider;

the FMAIExporter provider for this format; since structure version 2.

 

gchar *format;

format identifier (ascii, allocated by the FileManager-Actions team); since structure version 2.

 

gchar *label;

short label to be displayed in dialog (UTF-8 localized); since structure version 2.

 

gchar *description;

full description of the format (UTF-8 localized); mainly used as a tooltip; since structure version 2.

 

GdkPixbuf *pixbuf;

an image to be associated with this export format; this pixbuf is supposed to be rendered with GTK_ICON_SIZE_DIALOG size; since structure version 2.

 

Since: 3.2


FMAIExporterFileParms

typedef struct {
	guint          version;
	FMAObjectItem *exported;
	gchar         *folder;
	GQuark         format;
	gchar         *basename;
	GSList        *messages;
} FMAIExporterFileParms;

FMAIExporterFileParms has been deprecated since version 3.2 and should not be used in newly-written code.

The structure that the implementation receives as a parameter of FMAIExporterInterface.to_file() interface method.

Members

guint version;

[in] version of this structure; since structure version 1.

 

FMAObjectItem *exported;

[in] exported FMAObjectItem-derived object; since structure version 1.

 

gchar *folder;

[in] URI of the target folder; since structure version 1.

 

GQuark format;

[in] export format as a GQuark; since structure version 1.

 

gchar *basename;

[out] basename of the exported file; since structure version 1.

 

GSList *messages;

[in/out] a GSList list of localized strings; the provider may append messages to this list, but shouldn't reinitialize it; since structure version 1.

 

FMAIExporterFileParmsv2

typedef struct {
	guint          version;
	guint          content;
	FMAObjectItem *exported;
	gchar         *folder;
	gchar         *format;
	gchar         *basename;
	GSList        *messages;
} FMAIExporterFileParmsv2;

The structure that the plugin receives as a parameter of FMAIExporterInterface.to_file() interface method.

Members

guint version;

[in] version of this structure; equals to 2; since structure version 1.

 

guint content;

[in] version of the content of this structure; equals to 1; since structure version 2.

 

FMAObjectItem *exported;

[in] exported FMAObjectItem-derived object; since structure version 1.

 

gchar *folder;

[in] URI of the target folder; since structure version 1.

 

gchar *format;

[in] export format string identifier; since structure version 1.

 

gchar *basename;

[out] basename of the exported file; since structure version 1.

 

GSList *messages;

[in/out] a GSList list of localized strings; the provider may append messages to this list, but shouldn't reinitialize it; since structure version 1.

 

Since: 3.2


FMAIExporterBufferParms

typedef struct {
	guint          version;
	FMAObjectItem *exported;
	GQuark         format;
	gchar         *buffer;
	GSList        *messages;
} FMAIExporterBufferParms;

FMAIExporterBufferParms has been deprecated since version 3.2 and should not be used in newly-written code.

The structure that the plugin receives as a parameter of FMAIExporterInterface.to_buffer() interface method.

Members

guint version;

[in] version of this structure; since structure version 1.

 

FMAObjectItem *exported;

[in] exported FMAObjectItem-derived object; since structure version 1.

 

GQuark format;

[in] export format as a GQuark; since structure version 1.

 

gchar *buffer;

[out] buffer which contains the exported object; since structure version 1.

 

GSList *messages;

[in/out] a GSList list of localized strings; the provider may append messages to this list, but shouldn't reinitialize it; since structure version 1.

 

FMAIExporterBufferParmsv2

typedef struct {
	guint          version;
	guint          content;
	FMAObjectItem *exported;
	gchar         *format;
	gchar         *buffer;
	GSList        *messages;
} FMAIExporterBufferParmsv2;

The structure that the plugin receives as a parameter of FMAIExporterInterface.to_buffer() interface method.

Members

guint version;

[in] version of this structure; equals to 2; since structure version 1.

 

guint content;

[in] version of the content of this structure; equals to 1; since structure version 2.

 

FMAObjectItem *exported;

[in] exported FMAObjectItem-derived object; since structure version 1.

 

gchar *format;

[in] export format string identifier; since structure version 2.

 

gchar *buffer;

[out] buffer which contains the exported object; since structure version 1.

 

GSList *messages;

[in/out] a GSList list of localized strings; the provider may append messages to this list, but shouldn't reinitialize it; since structure version 1.

 

Since: 3.2