Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source
Source file caqti_connection_sig.ml
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113(* Copyright (C) 2017--2018 Petter A. Urkedal <paurkedal@gmail.com>
*
* This library is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or (at your
* option) any later version, with the OCaml static compilation exception.
*
* This library is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
* License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this library. If not, see <http://www.gnu.org/licenses/>.
*)(** Signature of connection handles. *)(** Essential connection signature implemented by drivers. *)moduletypeBase=sigtype'afuture(** {2 Query} *)moduleResponse:Caqti_response_sig.Swithtype'afuture:='afuturevalcall:f:(('b,'m)Response.t->('c,'e)resultfuture)->('a,'b,'m)Caqti_request.t->'a->('c,[>Caqti_error.call]as'e)resultfuture(** [call ~f request params] performs [request] with parameters [params]
invoking [f] to process the result. *)(** {2 Transactions} *)valstart:unit->(unit,[>Caqti_error.transact])resultfuture(** Starts a transaction if supported by the underlying database, otherwise
does nothing. *)valcommit:unit->(unit,[>Caqti_error.transact])resultfuture(** Commits the current transaction if supported by the underlying database,
otherwise does nothing. *)valrollback:unit->(unit,[>Caqti_error.transact])resultfuture(** Rolls back a transaction if supported by the underlying database,
otherwise does nothing. *)(** {2 Disconnection and Reuse} *)valdisconnect:unit->unitfuture(** Calling [disconnect ()] closes the connection to the database and frees
up related resources. *)valvalidate:unit->boolfuture(** For internal use by {!Caqti_pool}. Tries to ensure the validity of the
connection and must return [false] if unsuccessful. *)valcheck:(bool->unit)->unit(** For internal use by {!Caqti_pool}. Called after a connection has been
used. [check f] must call [f ()] exactly once with an argument
indicating whether to keep the connection in the pool or discard it. *)end(** Full connection signature available to users. *)moduletypeS=sigincludeBasevaldriver_info:Caqti_driver_info.t(** Information about the driver providing this connection module. *)(** {2 Retrieval Convenience}
These are shortcuts for {!call} combined with retrieval functions from
{!Caqti_response_sig.S} of the same name. *)valexec:('a,unit,[<`Zero])Caqti_request.t->'a->(unit,[>Caqti_error.call_or_retrieve]as'e)resultfuture(** Combines {!call} with {!Response.exec}. *)valfind:('a,'b,[<`One])Caqti_request.t->'a->('b,[>Caqti_error.call_or_retrieve]as'e)resultfuture(** Combines {!call} with {!Response.find}. *)valfind_opt:('a,'b,[<`Zero|`One])Caqti_request.t->'a->('boption,[>Caqti_error.call_or_retrieve]as'e)resultfuture(** Combines {!call} with {!Response.find_opt}. *)valfold:('a,'b,[<`Zero|`One|`Many])Caqti_request.t->('b->'c->'c)->'a->'c->('c,[>Caqti_error.call_or_retrieve]as'e)resultfuture(** Combines {!call} with {!Response.fold}. *)valfold_s:('a,'b,[<`Zero|`One|`Many])Caqti_request.t->('b->'c->('c,'e)resultfuture)->'a->'c->('c,[>Caqti_error.call_or_retrieve]as'e)resultfuture(** Combines {!call} with {!Response.fold_s}. *)valiter_s:('a,'b,[<`Zero|`One|`Many])Caqti_request.t->('b->(unit,'e)resultfuture)->'a->(unit,[>Caqti_error.call_or_retrieve]as'e)resultfuture(** Combines {!call} with {!Response.iter_s}. *)end