aboutsummaryrefslogtreecommitdiffstats
path: root/shell/importer/GNOME_Evolution_Importer.idl
diff options
context:
space:
mode:
Diffstat (limited to 'shell/importer/GNOME_Evolution_Importer.idl')
-rw-r--r--shell/importer/GNOME_Evolution_Importer.idl91
1 files changed, 91 insertions, 0 deletions
diff --git a/shell/importer/GNOME_Evolution_Importer.idl b/shell/importer/GNOME_Evolution_Importer.idl
new file mode 100644
index 0000000000..791891f81e
--- /dev/null
+++ b/shell/importer/GNOME_Evolution_Importer.idl
@@ -0,0 +1,91 @@
+/* -*- 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);
+ };
+};
+};