// $Id: Deployment_RepositoryManager.idl 77254 2007-02-20 16:38:18Z wotte $
#ifndef REPOSITORY_MANAGER_IDL
#define REPOSITORY_MANAGER_IDL

#include "DAnCE/Deployment/Deployment_Packaging_Data.idl"
#include "DAnCE/Deployment/Deployment.idl"

module Deployment {

  exception NameExists {
  };

  exception PackageError {
    string source;
    string reason;
  };

  interface RepositoryManager {
    void installPackage (in string installationName,
                         in string location,
                         in boolean replace)
      raises (NameExists, PackageError);
    void createPackage (in string installationName,
                        in PackageConfiguration package,
                        in string baseLocation,
                        in boolean replace)
      raises (NameExists, PackageError);
    PackageConfiguration findPackageByName (in string name)
      raises (NoSuchName);
    PackageConfiguration findPackageByUUID (in string UUID)
      raises (NoSuchName);
    ::CORBA::StringSeq findNamesByType (in string type);
    ::CORBA::StringSeq getAllNames ();
    ::CORBA::StringSeq getAllTypes ();
    void deletePackage (in string installationName)
      raises (NoSuchName);
  };
};

#endif /* REPOSITOR_MANAGER_IDL */
