blob: 791891f81e2e91fcec9834f0663c6aafcaf14b7d (
plain) (
tree)
|
|
/* -*- Mode: IDL; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
/*
* Interfaces for the importer framework.
*
* Authors:
* Iain Holmes <iain@helixcode.com>
*
* Copyright (C) 2000 Helix Code, Inc.
*/
#include <Bonobo.idl>
module GNOME {
module Evolution {
interface ImporterListener {
enum ImporterResult {
OK,
UNSUPPORTED_OPERATION,
NOT_READY,
UNKNOWN_DATA,
BAD_DATA,
BAD_FILE
};
/**
* notifyResult:
* @result: The result of the import.
* @more_items: Are there any more items to be processed?
*
* Notifies the listener of the result and whether there are
* any more items to be imported.
*/
void notifyResult (in ImporterResult result,
in boolean more_items);
};
interface Importer : Bonobo::Unknown {
/**
* Busy: Raised if the Importer object is in the middle of
* processing an item;
*/
exception Busy {};
/**
* processItem:
* @listener: The ImporterListener that will be notified of the
* progress.
*
* Processes the next item.
*
*/
void processItem (in ImporterListener listener)
raises (Busy);
/**
* getError:
*
* Retrieve a detailed explaination of the error.
*
* Returns: A string.
*/
string getError ();
};
interface ImporterFactory : Bonobo::Unknown {
/**
* supportFormat:
* @filename: The filename of the file.
*
* Checks if the importer created by this factory can
* import the file specified.
*
* Returns: A boolean, TRUE if it can import the file,
* FALSE otherwise.
*/
boolean supportFormat (in string filename);
/**
* loadFile:
* @filename: The filename of the file.
*
* Loads the file and prepares an Importer object that can
* process files of this type.
*
* Returns: An Importer object.
*/
Importer loadFile (in string filename);
};
};
};
|