with Zoom.Options; use Zoom.Options; with Zoom.Queries; use Zoom.Queries; with Zoom.Result_Sets; use Zoom.Result_Sets; with Zoom.Scan_Sets; use Zoom.Scan_Sets; package Zoom.Connections is type Connection is private; function New_Connection (Hostname : String := "localhost"; Portnum : Integer := 210) return Connection; function Create (O : Option) return Connection; procedure Connect (C : in out Connection; Hostname : String := "localhost"; Portnum : Integer := 210); procedure Close (This : in out Connection); function Search (This : Connection; Q : Query'Class) return Result_Set; function Search_Pqf (This : Connection; Q : String) return Result_Set; function Scan (This : Connection; Q : Query) return Scan_Set; procedure Set_Option (This : in out Connection; Key : String; Value : String); procedure Get_Option (This : Connection; Key : String; Value : out String); private type Connection is null record; end Zoom.Connections;