<?xml version="1.0"?>
<doc>
    <assembly>
        <name>Akavache.Sqlite3</name>
    </assembly>
    <members>
        <member name="T:Akavache.Sqlite3.Internal.AsyncLock">
            <summary>
            A lock that allows for async based operations and returns a IDisposable which allows for unlocking.
            </summary>
            <remarks>Straight-up thieved from
            http://www.hanselman.com/blog/ComparingTwoTechniquesInNETAsynchronousCoordinationPrimitives.aspx
            and all credit to that article.</remarks>
        </member>
        <member name="M:Akavache.Sqlite3.Internal.AsyncLock.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Akavache.Sqlite3.Internal.AsyncLock"/> class.
            </summary>
        </member>
        <member name="M:Akavache.Sqlite3.Internal.AsyncLock.LockAsync(System.Threading.CancellationToken)">
            <summary>
            Performs a lock which will be either released when the cancellation token is cancelled,
            or the returned disposable is disposed.
            </summary>
            <param name="cancellationToken">A cancellation token which allows for release of the lock.</param>
            <returns>A disposable which when Disposed will release the lock.</returns>
        </member>
        <member name="M:Akavache.Sqlite3.Internal.AsyncLock.Dispose">
            <inheritdoc />
        </member>
        <member name="T:Akavache.Sqlite3.Internal.SQLiteConnection">
            <summary>
            Represents an open connection to a SQLite database.
            </summary>
        </member>
        <member name="F:Akavache.Sqlite3.Internal.SQLiteConnection._preserveDuringLinkMagic">
            <summary>
            Used to list some code that we want the MonoTouch linker
            to see, but that we never want to actually execute.
            </summary>
        </member>
        <member name="M:Akavache.Sqlite3.Internal.SQLiteConnection.#ctor(System.String,System.Boolean)">
            <summary>
            Constructs a new SQLiteConnection and opens a SQLite database specified by databasePath.
            </summary>
            <param name="databasePath">
            Specifies the path to the database file.
            </param>
            <param name="storeDateTimeAsTicks">
            Specifies whether to store DateTime properties as ticks (true) or strings (false). You
            absolutely do want to store them as Ticks in all new projects. The default of false is
            only here for backwards compatibility. There is a *significant* speed advantage, with no
            down sides, when setting storeDateTimeAsTicks = true.
            </param>
        </member>
        <member name="M:Akavache.Sqlite3.Internal.SQLiteConnection.#ctor(System.String,Akavache.Sqlite3.Internal.SQLiteOpenFlags,System.Boolean)">
            <summary>
            Constructs a new SQLiteConnection and opens a SQLite database specified by databasePath.
            </summary>
            <param name="databasePath">
            Specifies the path to the database file.
            </param>
            <param name="openFlags">The flags to use to open the database.</param>
            <param name="storeDateTimeAsTicks">
            Specifies whether to store DateTime properties as ticks (true) or strings (false). You
            absolutely do want to store them as Ticks in all new projects. The default of false is
            only here for backwards compatibility. There is a *significant* speed advantage, with no
            down sides, when setting storeDateTimeAsTicks = true.
            </param>
        </member>
        <member name="P:Akavache.Sqlite3.Internal.SQLiteConnection.BusyTimeout">
            <summary>
            Sets a busy handler to sleep the specified amount of time when a table is locked.
            The handler will sleep multiple times until a total time of <see cref="P:Akavache.Sqlite3.Internal.SQLiteConnection.BusyTimeout"/> has accumulated.
            </summary>
        </member>
        <member name="P:Akavache.Sqlite3.Internal.SQLiteConnection.TableMappings">
            <summary>
            Returns the mappings from types to tables that the connection
            currently understands.
            </summary>
        </member>
        <member name="M:Akavache.Sqlite3.Internal.SQLiteConnection.GetMapping(System.Type,Akavache.Sqlite3.Internal.CreateFlags)">
            <summary>
            Retrieves the mapping that is automatically generated for the given type.
            </summary>
            <param name="type">
            The type whose mapping to the database is returned.
            </param>         
            <param name="createFlags">
            Optional flags allowing implicit PK and indexes based on naming conventions
            </param>     
            <returns>
            The mapping represents the schema of the columns of the database and contains 
            methods to set and get properties of objects.
            </returns>
        </member>
        <member name="M:Akavache.Sqlite3.Internal.SQLiteConnection.GetMapping``1">
            <summary>
            Retrieves the mapping that is automatically generated for the given type.
            </summary>
            <returns>
            The mapping represents the schema of the columns of the database and contains 
            methods to set and get properties of objects.
            </returns>
        </member>
        <member name="M:Akavache.Sqlite3.Internal.SQLiteConnection.DropTable``1">
            <summary>
            Executes a "drop table" on the database.  This is non-recoverable.
            </summary>
        </member>
        <member name="M:Akavache.Sqlite3.Internal.SQLiteConnection.CreateTable``1(Akavache.Sqlite3.Internal.CreateFlags)">
            <summary>
            Executes a "create table if not exists" on the database. It also
            creates any specified indexes on the columns of the table. It uses
            a schema automatically generated from the specified type. You can
            later access this schema by calling GetMapping.
            </summary>
            <returns>
            The number of entries added to the database schema.
            </returns>
        </member>
        <member name="M:Akavache.Sqlite3.Internal.SQLiteConnection.CreateTable(System.Type,Akavache.Sqlite3.Internal.CreateFlags)">
            <summary>
            Executes a "create table if not exists" on the database. It also
            creates any specified indexes on the columns of the table. It uses
            a schema automatically generated from the specified type. You can
            later access this schema by calling GetMapping.
            </summary>
            <param name="ty">Type to reflect to a database table.</param>
            <param name="createFlags">Optional flags allowing implicit PK and indexes based on naming conventions.</param>  
            <returns>
            The number of entries added to the database schema.
            </returns>
        </member>
        <member name="M:Akavache.Sqlite3.Internal.SQLiteConnection.CreateIndex(System.String,System.String,System.String[],System.Boolean)">
            <summary>
            Creates an index for the specified table and columns.
            </summary>
            <param name="indexName">Name of the index to create</param>
            <param name="tableName">Name of the database table</param>
            <param name="columnNames">An array of column names to index</param>
            <param name="unique">Whether the index should be unique</param>
        </member>
        <member name="M:Akavache.Sqlite3.Internal.SQLiteConnection.CreateIndex(System.String,System.String,System.String,System.Boolean)">
            <summary>
            Creates an index for the specified table and column.
            </summary>
            <param name="indexName">Name of the index to create</param>
            <param name="tableName">Name of the database table</param>
            <param name="columnName">Name of the column to index</param>
            <param name="unique">Whether the index should be unique</param>
        </member>
        <member name="M:Akavache.Sqlite3.Internal.SQLiteConnection.CreateIndex(System.String,System.String,System.Boolean)">
            <summary>
            Creates an index for the specified table and column.
            </summary>
            <param name="tableName">Name of the database table</param>
            <param name="columnName">Name of the column to index</param>
            <param name="unique">Whether the index should be unique</param>
        </member>
        <member name="M:Akavache.Sqlite3.Internal.SQLiteConnection.CreateIndex(System.String,System.String[],System.Boolean)">
            <summary>
            Creates an index for the specified table and columns.
            </summary>
            <param name="tableName">Name of the database table</param>
            <param name="columnNames">An array of column names to index</param>
            <param name="unique">Whether the index should be unique</param>
        </member>
        <member name="M:Akavache.Sqlite3.Internal.SQLiteConnection.CreateIndex``1(System.Linq.Expressions.Expression{System.Func{``0,System.Object}},System.Boolean)">
            <summary>
            Creates an index for the specified object property.
            e.g. CreateIndex(c => c.Name);
            </summary>
            <typeparam name="T">Type to reflect to a database table.</typeparam>
            <param name="property">Property to index</param>
            <param name="unique">Whether the index should be unique</param>
        </member>
        <member name="T:Akavache.Sqlite3.Internal.SQLiteConnection.ColumnInfo">
            <summary>
            Information about a column in the sql lite schema.
            </summary>
        </member>
        <member name="P:Akavache.Sqlite3.Internal.SQLiteConnection.ColumnInfo.Name">
            <summary>
            Gets or sets the name of the column.
            </summary>
        </member>
        <member name="M:Akavache.Sqlite3.Internal.SQLiteConnection.NewCommand">
            <summary>
            Creates a new SQLiteCommand. Can be overridden to provide a sub-class.
            </summary>
            <seealso cref="M:Akavache.Sqlite3.Internal.SQLiteCommand.OnInstanceCreated(System.Object)"/>
        </member>
        <member name="M:Akavache.Sqlite3.Internal.SQLiteConnection.CreateCommand(System.String,System.Object[])">
            <summary>
            Creates a new SQLiteCommand given the command text with arguments. Place a '?'
            in the command text for each of the arguments.
            </summary>
            <param name="cmdText">
            The fully escaped SQL.
            </param>
            <param name="ps">
            Arguments to substitute for the occurrences of '?' in the command text.
            </param>
            <returns>
            A <see cref="T:Akavache.Sqlite3.Internal.SQLiteCommand"/>
            </returns>
        </member>
        <member name="M:Akavache.Sqlite3.Internal.SQLiteConnection.Execute(System.String,System.Object[])">
            <summary>
            Creates a SQLiteCommand given the command text (SQL) with arguments. Place a '?'
            in the command text for each of the arguments and then executes that command.
            Use this method instead of Query when you don't expect rows back. Such cases include
            INSERTs, UPDATEs, and DELETEs.
            You can set the Trace or TimeExecution properties of the connection
            to profile execution.
            </summary>
            <param name="query">
            The fully escaped SQL.
            </param>
            <param name="args">
            Arguments to substitute for the occurrences of '?' in the query.
            </param>
            <returns>
            The number of rows modified in the database as a result of this execution.
            </returns>
        </member>
        <member name="M:Akavache.Sqlite3.Internal.SQLiteConnection.Query``1(System.String,System.Object[])">
            <summary>
            Creates a SQLiteCommand given the command text (SQL) with arguments. Place a '?'
            in the command text for each of the arguments and then executes that command.
            It returns each row of the result using the mapping automatically generated for
            the given type.
            </summary>
            <param name="query">
            The fully escaped SQL.
            </param>
            <param name="args">
            Arguments to substitute for the occurences of '?' in the query.
            </param>
            <returns>
            An enumerable with one result for each row returned by the query.
            </returns>
        </member>
        <member name="M:Akavache.Sqlite3.Internal.SQLiteConnection.DeferredQuery``1(System.String,System.Object[])">
            <summary>
            Creates a SQLiteCommand given the command text (SQL) with arguments. Place a '?'
            in the command text for each of the arguments and then executes that command.
            It returns each row of the result using the mapping automatically generated for
            the given type.
            </summary>
            <param name="query">
            The fully escaped SQL.
            </param>
            <param name="args">
            Arguments to substitute for the occurences of '?' in the query.
            </param>
            <returns>
            An enumerable with one result for each row returned by the query.
            The enumerator will call sqlite3_step on each call to MoveNext, so the database
            connection must remain open for the lifetime of the enumerator.
            </returns>
        </member>
        <member name="M:Akavache.Sqlite3.Internal.SQLiteConnection.Query(Akavache.Sqlite3.Internal.TableMapping,System.String,System.Object[])">
            <summary>
            Creates a SQLiteCommand given the command text (SQL) with arguments. Place a '?'
            in the command text for each of the arguments and then executes that command.
            It returns each row of the result using the specified mapping. This function is
            only used by libraries in order to query the database via introspection. It is
            normally not used.
            </summary>
            <param name="map">
            A <see cref="T:Akavache.Sqlite3.Internal.TableMapping"/> to use to convert the resulting rows
            into objects.
            </param>
            <param name="query">
            The fully escaped SQL.
            </param>
            <param name="args">
            Arguments to substitute for the occurrences of '?' in the query.
            </param>
            <returns>
            An enumerable with one result for each row returned by the query.
            </returns>
        </member>
        <member name="M:Akavache.Sqlite3.Internal.SQLiteConnection.DeferredQuery(Akavache.Sqlite3.Internal.TableMapping,System.String,System.Object[])">
            <summary>
            Creates a SQLiteCommand given the command text (SQL) with arguments. Place a '?'
            in the command text for each of the arguments and then executes that command.
            It returns each row of the result using the specified mapping. This function is
            only used by libraries in order to query the database via introspection. It is
            normally not used.
            </summary>
            <param name="map">
            A <see cref="T:Akavache.Sqlite3.Internal.TableMapping"/> to use to convert the resulting rows
            into objects.
            </param>
            <param name="query">
            The fully escaped SQL.
            </param>
            <param name="args">
            Arguments to substitute for the occurrences of '?' in the query.
            </param>
            <returns>
            An enumerable with one result for each row returned by the query.
            The enumerator will call sqlite3_step on each call to MoveNext, so the database
            connection must remain open for the lifetime of the enumerator.
            </returns>
        </member>
        <member name="M:Akavache.Sqlite3.Internal.SQLiteConnection.Table``1">
            <summary>
            Returns a queryable interface to the table represented by the given type.
            </summary>
            <returns>
            A queryable object that is able to translate Where, OrderBy, and Take
            queries into native SQL.
            </returns>
        </member>
        <member name="M:Akavache.Sqlite3.Internal.SQLiteConnection.Get``1(System.Object)">
            <summary>
            Attempts to retrieve an object with the given primary key from the table
            associated with the specified type. Use of this method requires that
            the given type have a designated PrimaryKey (using the PrimaryKeyAttribute).
            </summary>
            <param name="pk">
            The primary key.
            </param>
            <returns>
            The object with the given primary key. Throws a not found exception
            if the object is not found.
            </returns>
        </member>
        <member name="M:Akavache.Sqlite3.Internal.SQLiteConnection.Get``1(System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}})">
            <summary>
            Attempts to retrieve the first object that matches the predicate from the table
            associated with the specified type. 
            </summary>
            <param name="predicate">
            A predicate for which object to find.
            </param>
            <returns>
            The object that matches the given predicate. Throws a not found exception
            if the object is not found.
            </returns>
        </member>
        <member name="M:Akavache.Sqlite3.Internal.SQLiteConnection.Find``1(System.Object)">
            <summary>
            Attempts to retrieve an object with the given primary key from the table
            associated with the specified type. Use of this method requires that
            the given type have a designated PrimaryKey (using the PrimaryKeyAttribute).
            </summary>
            <param name="pk">
            The primary key.
            </param>
            <returns>
            The object with the given primary key or null
            if the object is not found.
            </returns>
        </member>
        <member name="M:Akavache.Sqlite3.Internal.SQLiteConnection.Find(System.Object,Akavache.Sqlite3.Internal.TableMapping)">
            <summary>
            Attempts to retrieve an object with the given primary key from the table
            associated with the specified type. Use of this method requires that
            the given type have a designated PrimaryKey (using the PrimaryKeyAttribute).
            </summary>
            <param name="pk">
            The primary key.
            </param>
            <param name="map">
            The TableMapping used to identify the object type.
            </param>
            <returns>
            The object with the given primary key or null
            if the object is not found.
            </returns>
        </member>
        <member name="M:Akavache.Sqlite3.Internal.SQLiteConnection.Find``1(System.Linq.Expressions.Expression{System.Func{``0,System.Boolean}})">
            <summary>
            Attempts to retrieve the first object that matches the predicate from the table
            associated with the specified type. 
            </summary>
            <param name="predicate">
            A predicate for which object to find.
            </param>
            <returns>
            The object that matches the given predicate or null
            if the object is not found.
            </returns>
        </member>
        <member name="P:Akavache.Sqlite3.Internal.SQLiteConnection.IsInTransaction">
            <summary>
            Whether <see cref="M:Akavache.Sqlite3.Internal.SQLiteConnection.BeginTransaction"/> has been called and the database is waiting for a <see cref="M:Akavache.Sqlite3.Internal.SQLiteConnection.Commit"/>.
            </summary>
        </member>
        <member name="M:Akavache.Sqlite3.Internal.SQLiteConnection.BeginTransaction">
            <summary>
            Begins a new transaction. Call <see cref="M:Akavache.Sqlite3.Internal.SQLiteConnection.Commit"/> to end the transaction.
            </summary>
            <example cref="T:System.InvalidOperationException">Throws if a transaction has already begun.</example>
        </member>
        <member name="M:Akavache.Sqlite3.Internal.SQLiteConnection.SaveTransactionPoint">
            <summary>
            Creates a savepoint in the database at the current point in the transaction timeline.
            Begins a new transaction if one is not in progress.
            
            Call <see cref="M:Akavache.Sqlite3.Internal.SQLiteConnection.RollbackTo(System.String)"/> to undo transactions since the returned savepoint.
            Call <see cref="M:Akavache.Sqlite3.Internal.SQLiteConnection.Release(System.String)"/> to commit transactions after the savepoint returned here.
            Call <see cref="M:Akavache.Sqlite3.Internal.SQLiteConnection.Commit"/> to end the transaction, committing all changes.
            </summary>
            <returns>A string naming the savepoint.</returns>
        </member>
        <member name="M:Akavache.Sqlite3.Internal.SQLiteConnection.Rollback">
            <summary>
            Rolls back the transaction that was begun by <see cref="M:Akavache.Sqlite3.Internal.SQLiteConnection.BeginTransaction"/> or <see cref="M:Akavache.Sqlite3.Internal.SQLiteConnection.SaveTransactionPoint"/>.
            </summary>
        </member>
        <member name="M:Akavache.Sqlite3.Internal.SQLiteConnection.RollbackTo(System.String)">
            <summary>
            Rolls back the savepoint created by <see cref="M:Akavache.Sqlite3.Internal.SQLiteConnection.BeginTransaction"/> or SaveTransactionPoint.
            </summary>
            <param name="savepoint">The name of the savepoint to roll back to, as returned by <see cref="M:Akavache.Sqlite3.Internal.SQLiteConnection.SaveTransactionPoint"/>.  If savepoint is null or empty, this method is equivalent to a call to <see cref="M:Akavache.Sqlite3.Internal.SQLiteConnection.Rollback"/></param>
        </member>
        <member name="M:Akavache.Sqlite3.Internal.SQLiteConnection.RollbackTo(System.String,System.Boolean)">
            <summary>
            Rolls back the transaction that was begun by <see cref="M:Akavache.Sqlite3.Internal.SQLiteConnection.BeginTransaction"/>.
            </summary>
            <param name="savePoint">The name of the save point.</param>
            <param name="noThrow">true to avoid throwing exceptions, false otherwise</param>
        </member>
        <member name="M:Akavache.Sqlite3.Internal.SQLiteConnection.Release(System.String)">
            <summary>
            Releases a savepoint returned from <see cref="M:Akavache.Sqlite3.Internal.SQLiteConnection.SaveTransactionPoint"/>.  Releasing a savepoint 
               makes changes since that savepoint permanent if the savepoint began the transaction,
               or otherwise the changes are permanent pending a call to <see cref="M:Akavache.Sqlite3.Internal.SQLiteConnection.Commit"/>.
            
            The RELEASE command is like a COMMIT for a SAVEPOINT.
            </summary>
            <param name="savepoint">The name of the savepoint to release.  The string should be the result of a call to <see cref="M:Akavache.Sqlite3.Internal.SQLiteConnection.SaveTransactionPoint"/></param>
        </member>
        <member name="M:Akavache.Sqlite3.Internal.SQLiteConnection.Commit">
            <summary>
            Commits the transaction that was begun by <see cref="M:Akavache.Sqlite3.Internal.SQLiteConnection.BeginTransaction"/>.
            </summary>
        </member>
        <member name="M:Akavache.Sqlite3.Internal.SQLiteConnection.RunInTransaction(System.Action)">
            <summary>
            Executes the action within a (possibly nested) transaction by wrapping it in a SAVEPOINT. If an
            exception occurs the whole transaction is rolled back, not just the current savepoint. The exception
            is rethrown.
            </summary>
            <param name="action">
            The <see cref="T:System.Action"/> to perform within a transaction. This parameter can contain any number
            of operations on the connection but should never call <see cref="M:Akavache.Sqlite3.Internal.SQLiteConnection.BeginTransaction"/> or
            <see cref="M:Akavache.Sqlite3.Internal.SQLiteConnection.Commit"/>.
            </param>
        </member>
        <member name="M:Akavache.Sqlite3.Internal.SQLiteConnection.InsertAll(System.Collections.IEnumerable)">
            <summary>
            Inserts all specified objects.
            </summary>
            <param name="objects">
            An <see cref="T:System.Collections.IEnumerable"/> of the objects to insert.
            </param>
            <returns>
            The number of rows added to the table.
            </returns>
        </member>
        <member name="M:Akavache.Sqlite3.Internal.SQLiteConnection.InsertAll(System.Collections.IEnumerable,System.String)">
            <summary>
            Inserts all specified objects.
            </summary>
            <param name="objects">
            An <see cref="T:System.Collections.IEnumerable"/> of the objects to insert.
            </param>
            <param name="extra">
            Literal SQL code that gets placed into the command. INSERT {extra} INTO ...
            </param>
            <returns>
            The number of rows added to the table.
            </returns>
        </member>
        <member name="M:Akavache.Sqlite3.Internal.SQLiteConnection.InsertAll(System.Collections.IEnumerable,System.Type)">
            <summary>
            Inserts all specified objects.
            </summary>
            <param name="objects">
            An <see cref="T:System.Collections.IEnumerable"/> of the objects to insert.
            </param>
            <param name="objType">
            The type of object to insert.
            </param>
            <returns>
            The number of rows added to the table.
            </returns>
        </member>
        <member name="M:Akavache.Sqlite3.Internal.SQLiteConnection.Insert(System.Object)">
            <summary>
            Inserts the given object and retrieves its
            auto incremented primary key if it has one.
            </summary>
            <param name="obj">
            The object to insert.
            </param>
            <returns>
            The number of rows added to the table.
            </returns>
        </member>
        <member name="M:Akavache.Sqlite3.Internal.SQLiteConnection.InsertOrReplace(System.Object)">
            <summary>
            Inserts the given object and retrieves its
            auto incremented primary key if it has one.
            If a UNIQUE constraint violation occurs with
            some pre-existing object, this function deletes
            the old object.
            </summary>
            <param name="obj">
            The object to insert.
            </param>
            <returns>
            The number of rows modified.
            </returns>
        </member>
        <member name="M:Akavache.Sqlite3.Internal.SQLiteConnection.Insert(System.Object,System.Type)">
            <summary>
            Inserts the given object and retrieves its
            auto incremented primary key if it has one.
            </summary>
            <param name="obj">
            The object to insert.
            </param>
            <param name="objType">
            The type of object to insert.
            </param>
            <returns>
            The number of rows added to the table.
            </returns>
        </member>
        <member name="M:Akavache.Sqlite3.Internal.SQLiteConnection.InsertOrReplace(System.Object,System.Type)">
            <summary>
            Inserts the given object and retrieves its
            auto incremented primary key if it has one.
            If a UNIQUE constraint violation occurs with
            some pre-existing object, this function deletes
            the old object.
            </summary>
            <param name="obj">
            The object to insert.
            </param>
            <param name="objType">
            The type of object to insert.
            </param>
            <returns>
            The number of rows modified.
            </returns>
        </member>
        <member name="M:Akavache.Sqlite3.Internal.SQLiteConnection.Insert(System.Object,System.String)">
            <summary>
            Inserts the given object and retrieves its
            auto incremented primary key if it has one.
            </summary>
            <param name="obj">
            The object to insert.
            </param>
            <param name="extra">
            Literal SQL code that gets placed into the command. INSERT {extra} INTO ...
            </param>
            <returns>
            The number of rows added to the table.
            </returns>
        </member>
        <member name="M:Akavache.Sqlite3.Internal.SQLiteConnection.Insert(System.Object,System.String,System.Type)">
            <summary>
            Inserts the given object and retrieves its
            auto incremented primary key if it has one.
            </summary>
            <param name="obj">
            The object to insert.
            </param>
            <param name="extra">
            Literal SQL code that gets placed into the command. INSERT {extra} INTO ...
            </param>
            <param name="objType">
            The type of object to insert.
            </param>
            <returns>
            The number of rows added to the table.
            </returns>
        </member>
        <member name="M:Akavache.Sqlite3.Internal.SQLiteConnection.Update(System.Object)">
            <summary>
            Updates all of the columns of a table using the specified object
            except for its primary key.
            The object is required to have a primary key.
            </summary>
            <param name="obj">
            The object to update. It must have a primary key designated using the PrimaryKeyAttribute.
            </param>
            <returns>
            The number of rows updated.
            </returns>
        </member>
        <member name="M:Akavache.Sqlite3.Internal.SQLiteConnection.Update(System.Object,System.Type)">
            <summary>
            Updates all of the columns of a table using the specified object
            except for its primary key.
            The object is required to have a primary key.
            </summary>
            <param name="obj">
            The object to update. It must have a primary key designated using the PrimaryKeyAttribute.
            </param>
            <param name="objType">
            The type of object to insert.
            </param>
            <returns>
            The number of rows updated.
            </returns>
        </member>
        <member name="M:Akavache.Sqlite3.Internal.SQLiteConnection.UpdateAll(System.Collections.IEnumerable)">
            <summary>
            Updates all specified objects.
            </summary>
            <param name="objects">
            An <see cref="T:System.Collections.IEnumerable"/> of the objects to insert.
            </param>
            <returns>
            The number of rows modified.
            </returns>
        </member>
        <member name="M:Akavache.Sqlite3.Internal.SQLiteConnection.Delete(System.Object)">
            <summary>
            Deletes the given object from the database using its primary key.
            </summary>
            <param name="objectToDelete">
            The object to delete. It must have a primary key designated using the PrimaryKeyAttribute.
            </param>
            <returns>
            The number of rows deleted.
            </returns>
        </member>
        <member name="M:Akavache.Sqlite3.Internal.SQLiteConnection.Delete``1(System.Object)">
            <summary>
            Deletes the object with the specified primary key.
            </summary>
            <param name="primaryKey">
            The primary key of the object to delete.
            </param>
            <returns>
            The number of objects deleted.
            </returns>
            <typeparam name='T'>
            The type of object.
            </typeparam>
        </member>
        <member name="M:Akavache.Sqlite3.Internal.SQLiteConnection.DeleteAll``1">
            <summary>
            Deletes all the objects from the specified table.
            WARNING WARNING: Let me repeat. It deletes ALL the objects from the
            specified table. Do you really want to do that?
            </summary>
            <returns>
            The number of objects deleted.
            </returns>
            <typeparam name='T'>
            The type of objects to delete.
            </typeparam>
        </member>
        <member name="T:Akavache.Sqlite3.Internal.SQLiteConnectionString">
            <summary>
            Represents a parsed connection string.
            </summary>
        </member>
        <member name="M:Akavache.Sqlite3.Internal.SQLiteCommand.OnInstanceCreated(System.Object)">
             <summary>
             Invoked every time an instance is loaded from the database.
             </summary>
             <param name='obj'>
             The newly created object.
             </param>
             <remarks>
             This can be overridden in combination with the <see cref="M:Akavache.Sqlite3.Internal.SQLiteConnection.NewCommand"/>
             method to hook into the life-cycle of objects.
            
             Type safety is not possible because MonoTouch does not support virtual generic methods.
             </remarks>
        </member>
        <member name="T:Akavache.Sqlite3.Internal.PreparedSqlLiteInsertCommand">
            <summary>
            Since the insert never changed, we only need to prepare once.
            </summary>
        </member>
        <member name="M:Akavache.Sqlite3.Internal.TableQuery`1.CompileNullBinaryExpression(System.Linq.Expressions.Expression,Akavache.Sqlite3.Internal.TableQuery{`0}.CompileResult)">
            <summary>
            Compiles a BinaryExpression where one of the parameters is null.
            </summary>
            <param name="expression">The expression to compile.</param>
            <param name="parameter">The non-null parameter</param>
        </member>
        <member name="T:Akavache.Sqlite3.IPreparedSqliteOperation">
            <summary>
            A SQL operation connection.
            </summary>
        </member>
        <member name="P:Akavache.Sqlite3.IPreparedSqliteOperation.Connection">
            <summary>
            Gets the connection to the SQLite database.
            </summary>
        </member>
        <member name="T:Akavache.Sqlite3.SqliteOperationQueue">
            <summary>
            A queue which will perform Sqlite based operations.
            </summary>
        </member>
        <member name="M:Akavache.Sqlite3.SqliteOperationQueue.#ctor(Akavache.Sqlite3.Internal.SQLiteConnection,System.Reactive.Concurrency.IScheduler)">
            <summary>
            Initializes a new instance of the <see cref="T:Akavache.Sqlite3.SqliteOperationQueue"/> class.
            </summary>
            <param name="connection">A sql lite connection where to perform queue operation against.</param>
            <param name="scheduler">The scheduler to perform operations against.</param>
        </member>
        <member name="M:Akavache.Sqlite3.SqliteOperationQueue.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Akavache.Sqlite3.SqliteOperationQueue"/> class.
            </summary>
            <remarks>
            NB: This constructor is used for testing operation coalescing,
            don't actually use it for reals.
            </remarks>
        </member>
        <member name="M:Akavache.Sqlite3.SqliteOperationQueue.Start">
            <summary>
            Starts the operation queue.
            </summary>
            <returns>A disposable which when Disposed will stop the queue.</returns>
        </member>
        <member name="T:Akavache.Sqlite3.Registrations">
            <summary>
            Adds registrations required for the SQLite3 integration.
            </summary>
        </member>
        <member name="M:Akavache.Sqlite3.Registrations.Start(System.String,System.Action)">
            <summary>
            Activates SQLite3 for the application and creates any required storage.
            </summary>
            <param name="applicationName">The name of the application.</param>
            <param name="initSql">A action to initialize SQLite3.</param>
        </member>
        <member name="M:Akavache.Sqlite3.Registrations.Register(Splat.IMutableDependencyResolver,Splat.IReadonlyDependencyResolver)">
            <inheritdoc />
        </member>
        <member name="T:Akavache.Sqlite3.IObjectWrapper">
            <summary>
            A wrapper around a object.
            </summary>
        </member>
        <member name="T:Akavache.Sqlite3.ObjectWrapper`1">
            <summary>
            A object that has been wrapped. Used often for allowing serialization.
            </summary>
            <typeparam name="T">The type of object wrapped.</typeparam>
        </member>
        <member name="T:Akavache.Sqlite3.SQLiteEncryptedBlobCache">
            <summary>
            A SQLite blob cache where all the entries are encrypted.
            </summary>
        </member>
        <member name="M:Akavache.Sqlite3.SQLiteEncryptedBlobCache.#ctor(System.String,Akavache.IEncryptionProvider,System.Reactive.Concurrency.IScheduler)">
            <summary>
            Initializes a new instance of the <see cref="T:Akavache.Sqlite3.SQLiteEncryptedBlobCache"/> class.
            </summary>
            <param name="databaseFile">The location of the database.</param>
            <param name="encryptionProvider">The provider which encrypts and decrypts values.</param>
            <param name="scheduler">A scheduler to perform the operations on.</param>
            <exception cref="T:System.Exception">If there is no encryption provider available.</exception>
        </member>
        <member name="M:Akavache.Sqlite3.SQLiteEncryptedBlobCache.BeforeWriteToDiskFilter(System.Byte[],System.Reactive.Concurrency.IScheduler)">
            <inheritdoc />
        </member>
        <member name="M:Akavache.Sqlite3.SQLiteEncryptedBlobCache.AfterReadFromDiskFilter(System.Byte[],System.Reactive.Concurrency.IScheduler)">
            <inheritdoc />
        </member>
        <member name="T:Akavache.Sqlite3.SqlLite">
            <summary>
            Main class for registering items with the system.
            </summary>
        </member>
        <member name="M:Akavache.Sqlite3.SqlLite.Start(System.Action)">
            <summary>
            Starts the process and bundle registration.
            </summary>
            <param name="bundleRegistration">Performs the registration via the mention.</param>
        </member>
        <member name="T:Akavache.Sqlite3.SqlRawPersistentBlobCache">
            <summary>
            This class represents an IBlobCache backed by a SQLite3 database, and
            it is the default (and best!) implementation.
            </summary>
        </member>
        <member name="M:Akavache.Sqlite3.SqlRawPersistentBlobCache.#ctor(System.String,System.Reactive.Concurrency.IScheduler)">
            <summary>
            Initializes a new instance of the <see cref="T:Akavache.Sqlite3.SqlRawPersistentBlobCache"/> class.
            </summary>
            <param name="databaseFile">The location of the database file.</param>
            <param name="scheduler">The scheduler to perform operations on.</param>
        </member>
        <member name="P:Akavache.Sqlite3.SqlRawPersistentBlobCache.ForcedDateTimeKind">
            <inheritdoc />
        </member>
        <member name="P:Akavache.Sqlite3.SqlRawPersistentBlobCache.Scheduler">
            <inheritdoc />
        </member>
        <member name="P:Akavache.Sqlite3.SqlRawPersistentBlobCache.Connection">
            <summary>
            Gets the connection to the sqlite file.
            </summary>
        </member>
        <member name="P:Akavache.Sqlite3.SqlRawPersistentBlobCache.Shutdown">
            <inheritdoc />
        </member>
        <member name="M:Akavache.Sqlite3.SqlRawPersistentBlobCache.Insert(System.String,System.Byte[],System.Nullable{System.DateTimeOffset})">
            <inheritdoc />
        </member>
        <member name="M:Akavache.Sqlite3.SqlRawPersistentBlobCache.Get(System.String)">
            <inheritdoc />
        </member>
        <member name="M:Akavache.Sqlite3.SqlRawPersistentBlobCache.GetAllKeys">
            <inheritdoc />
        </member>
        <member name="M:Akavache.Sqlite3.SqlRawPersistentBlobCache.GetCreatedAt(System.String)">
            <inheritdoc />
        </member>
        <member name="M:Akavache.Sqlite3.SqlRawPersistentBlobCache.GetObjectCreatedAt``1(System.String)">
            <inheritdoc />
        </member>
        <member name="M:Akavache.Sqlite3.SqlRawPersistentBlobCache.Flush">
            <inheritdoc />
        </member>
        <member name="M:Akavache.Sqlite3.SqlRawPersistentBlobCache.Invalidate(System.String)">
            <inheritdoc />
        </member>
        <member name="M:Akavache.Sqlite3.SqlRawPersistentBlobCache.InvalidateAll">
            <inheritdoc />
        </member>
        <member name="M:Akavache.Sqlite3.SqlRawPersistentBlobCache.InsertObject``1(System.String,``0,System.Nullable{System.DateTimeOffset})">
            <inheritdoc />
        </member>
        <member name="M:Akavache.Sqlite3.SqlRawPersistentBlobCache.GetObject``1(System.String)">
            <inheritdoc />
        </member>
        <member name="M:Akavache.Sqlite3.SqlRawPersistentBlobCache.GetAllObjects``1">
            <inheritdoc />
        </member>
        <member name="M:Akavache.Sqlite3.SqlRawPersistentBlobCache.InvalidateObject``1(System.String)">
            <inheritdoc />
        </member>
        <member name="M:Akavache.Sqlite3.SqlRawPersistentBlobCache.InvalidateAllObjects``1">
            <inheritdoc />
        </member>
        <member name="M:Akavache.Sqlite3.SqlRawPersistentBlobCache.Vacuum">
            <inheritdoc />
        </member>
        <member name="M:Akavache.Sqlite3.SqlRawPersistentBlobCache.Insert(System.Collections.Generic.IDictionary{System.String,System.Byte[]},System.Nullable{System.DateTimeOffset})">
            <inheritdoc />
        </member>
        <member name="M:Akavache.Sqlite3.SqlRawPersistentBlobCache.Get(System.Collections.Generic.IEnumerable{System.String})">
            <inheritdoc />
        </member>
        <member name="M:Akavache.Sqlite3.SqlRawPersistentBlobCache.GetCreatedAt(System.Collections.Generic.IEnumerable{System.String})">
            <inheritdoc />
        </member>
        <member name="M:Akavache.Sqlite3.SqlRawPersistentBlobCache.Invalidate(System.Collections.Generic.IEnumerable{System.String})">
            <inheritdoc />
        </member>
        <member name="M:Akavache.Sqlite3.SqlRawPersistentBlobCache.InsertObjects``1(System.Collections.Generic.IDictionary{System.String,``0},System.Nullable{System.DateTimeOffset})">
            <inheritdoc />
        </member>
        <member name="M:Akavache.Sqlite3.SqlRawPersistentBlobCache.GetObjects``1(System.Collections.Generic.IEnumerable{System.String})">
            <inheritdoc />
        </member>
        <member name="M:Akavache.Sqlite3.SqlRawPersistentBlobCache.InvalidateObjects``1(System.Collections.Generic.IEnumerable{System.String})">
            <inheritdoc />
        </member>
        <member name="M:Akavache.Sqlite3.SqlRawPersistentBlobCache.Dispose">
            <inheritdoc />
        </member>
        <member name="M:Akavache.Sqlite3.SqlRawPersistentBlobCache.Dispose(System.Boolean)">
            <summary>
            Disposes of any managed objects that are IDisposable.
            </summary>
            <param name="isDisposing">If the method is being called by the Dispose() method.</param>
        </member>
        <member name="M:Akavache.Sqlite3.SqlRawPersistentBlobCache.Initialize">
            <summary>
            Initializes the cache.
            </summary>
            <returns>An observable that signals when the initialization is complete.</returns>
        </member>
        <member name="M:Akavache.Sqlite3.SqlRawPersistentBlobCache.GetSchemaVersion">
            <summary>
            Gets the current version of schema being used.
            </summary>
            <returns>The version of the schema.</returns>
        </member>
        <member name="M:Akavache.Sqlite3.SqlRawPersistentBlobCache.BeforeWriteToDiskFilter(System.Byte[],System.Reactive.Concurrency.IScheduler)">
            <summary>
            This method is called immediately before writing any data to disk.
            Override this in encrypting data stores in order to encrypt the
            data.
            </summary>
            <param name="data">The byte data about to be written to disk.</param>
            <param name="scheduler">The scheduler to use if an operation has
            to be deferred. If the operation can be done immediately, use
            Observable.Return and ignore this parameter.</param>
            <returns>A Future result representing the encrypted data.</returns>
        </member>
        <member name="M:Akavache.Sqlite3.SqlRawPersistentBlobCache.AfterReadFromDiskFilter(System.Byte[],System.Reactive.Concurrency.IScheduler)">
            <summary>
            This method is called immediately after reading any data to disk.
            Override this in encrypting data stores in order to decrypt the
            data.
            </summary>
            <param name="data">The byte data that has just been read from
            disk.</param>
            <param name="scheduler">The scheduler to use if an operation has
            to be deferred. If the operation can be done immediately, use
            Observable.Return and ignore this parameter.</param>
            <returns>A Future result representing the decrypted data.</returns>
        </member>
    </members>
</doc>
