/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
/*
 * Bonobo_GenericFactory.idl: Basic object factory interface, based on CORBA
 * LifeCycle version
 */

#ifndef __BONOBO_GENERIC_FACTORY_IDL__
#define __BONOBO_GENERIC_FACTORY_IDL__

#ifndef __Bonobo_GenericFactory_COMPILATION
#ifdef __ORBIT_IDL__
%{
#pragma include_defs bonobo-activation/Bonobo_GenericFactory.h
%}
#pragma inhibit push
#endif
#endif

#include <Bonobo_Unknown.idl>
#include <Bonobo_Activation_types.idl>

module Bonobo {
	interface GenericFactory : Bonobo::Unknown {
		exception CannotActivate { };


		/**
		 * createObject:
		 * @iid: A string identifying an implementation.
		 *
		 * Returns: A newly created CORBA object of the
                 * specified type, or raises the CannotActivate
                 * exception.
                 * 
		 */
		Object createObject (in string iid)
			raises (CannotActivate);

	};
};

#ifndef __Bonobo_GenericFactory_COMPILATION
#ifdef __ORBIT_IDL__
#pragma inhibit pop
#endif
#endif

#endif /* __BONOBO_GENERIC_FACTORY_IDL__ */
