\name{xmapcore.utils}
\alias{xmapcore.utils}
\alias{xmap.clear.cache}
\alias{xmap.connect}
\alias{xmap.disconnect}
\alias{xmap.toggle.caching}
\alias{xmap.gene.plot}
\title{
  xmapcore \'utils\' functions
}
\description{
  Functions to connect to the database and manage the database connections. 
}
\usage{
  xmap.connect( name )
  xmap.disconnect()
  xmap.toggle.caching()
  xmap.clear.cache()
  xmap.gene.plot( genes, style=c( 'real', 'stacked', 'jointed', 'injointed' ), rect.func=.default.plotter )
}
\arguments{
  \item{name}{ The name of the database to connect to. }
  \item{genes}{ A vector of Gene Names, or a RangedData object returned from another xmapcore call }
  \item{style}{ The style of graph you require }
  \item{rect.func}{ For each transcript in the gene, this will be called and passed a data.frame containing gene, transcript, exon, and rectangle data for you to do your own drawing }
}
\details{
  \code{xmap.connect} is used to establish a connection to an
  instance of the X:Map database, and  \code{xmap.disconnect} closes the connection.


  Many of the functions in \code{xmapcore} cache results locally. The
  function \code{xmap.toggle.caching} turns this functionality on and
  off, and  \code{xmap.clear.cache} can be used to clear the cache
  (this is not normally something a user needs to do).

  Note that details of how to set up the default databases, connection details, etc. Can be found in the package vignette.
}
\seealso{
  \code{\link{xmapcore.to}}\cr
  \code{\link{xmapcore.details}}\cr
  \code{\link{xmapcore.all}}\cr
  \code{\link{xmapcore.range}}\cr
  \code{\link{xmapcore.filters}}\cr
}
\author{
  Tim Yates
  Crispin J. Miller
}
\examples{
  if(interactive()) {
    xmap.connect()
    xmap.toggle.caching()
    xmap.toggle.caching()

    #NOTE: since the next function empties out the local cache, don't
    #run it unless you want to do this!
    #xmap.clear.cache()
 }
}