
/* This is the top level of the Database Storage Service Provider Interface.
   Its methods correspond to top-level methods in the API. 
*/


/* Object getDefaultConnectionProperties()
   IMMEDIATE
   RETURNS an object containing all of the valid properties 
   for this service provider, all set to their default values.
 */   
  function getDefaultConnectionProperties() {};


/* connect(Object properties, Function(err, DBConnectionPool) callback)
   ASYNC.
   Async connect.
*/
  function connect(properties, callback) {};


/* String getFactoryKey(Object properties)
   IMMEDIATE
   Create a SessionFactory key that will identify a DBConnectionPool 
   based on connection properties.
   RETURNS the String key
*/
  function getFactoryKey(properties) {};


/* Bool loadRequiredModules()
   IMMEDIATE
   The module should attempt to load all of its prerequisite modules.
   If succesful, return true.
   On failure, throw an excpetion with a message that describes the missing 
   component.
   Note that it must be possible to succesfully require the DBServiceProvider
   module itself even if the dependencies are missing.
*/
  function loadRequiredModules() {};


/* Object getDBMetadataManager()
   IMMEDIATE
   Returns a DBMetadataManager for this service provider
*/
  function getDBMetadataManager() {};
