package GNATCOLL.Remote.Db is
Invalid_Remote_Configuration : exception;
---------------------------------------------------
-- The remote configuration interface definition --
---------------------------------------------------
type Remote_Db_Interface is interface;
function Is_Configured
(Config : Remote_Db_Interface;
Nickname : String) return Boolean is abstract;
-- Tell if a server with this name exists in the global configuration
function Get_Server
(Config : Remote_Db_Interface;
Nickname : String) return Server_Access is abstract;
-- Get the server from its nickname.
function Nb_Mount_Points
(Config : Remote_Db_Interface;
Nickname : String) return Natural is abstract;
-- Get the number of mount points defined for the server
function Get_Mount_Point_Local_Root
(Config : Remote_Db_Interface;
Nickname : String;
Index : Natural) return FS_String is abstract;
-- Get the local mount point
function Get_Mount_Point_Host_Root
(Config : Remote_Db_Interface;
Nickname : String;
Index : Natural) return FS_String is abstract;
-- Get the remote point.
---------------------------------------------------------
-- Needs to be called before any of the static methods --
---------------------------------------------------------
procedure Define_Remote_Configuration
(Config : access Remote_Db_Interface'Class);
-- Defines the remote configuration that will be used for all remote access
-- performed by GNATCOLL.
-------------------------------------------------
-- Static methods used by GNATCOLL internally --
-------------------------------------------------
function Is_Configured (Nickname : String) return Boolean;
-- Tell if a server with this name exists in the global configuration
-- Raise Invalid_Remote_Config if no global configuration has been defined.
function Get_Server (Nickname : String) return Server_Access;
-- Get the server from its nickname.
-- Raise Invalid_Remote_Config if no global configuration has been defined.
function Nb_Mount_Points
(Nickname : String) return Natural;
-- Get the number of mount points defined for the server
-- Raise Invalid_Remote_Config if no global configuration has been defined.
function Get_Mount_Point_Local_Root
(Nickname : String;
Index : Natural) return FS_String;
-- Get the local mount point
-- Raise Invalid_Remote_Config if no global configuration has been defined.
function Get_Mount_Point_Host_Root
(Nickname : String;
Index : Natural) return FS_String;
-- Get the remote point.
-- Raise Invalid_Remote_Config if no global configuration has been defined.
end GNATCOLL.Remote.Db;