Open or create the build state file.
Inserts a vertex into the database unless it already exists.
Adds a vertex to the list of pending vertices. If the vertex is already pending, nothing is done.
Returns the number of incoming edges to the given vertex.
Checks if an edge exists between two vertices.
Returns the index of the given vertex.
Returns true if a given vertex is pending.
Returns the number of vertices in the database.
Dito
Returns the vertex state at the given index.
Returns the vertex state for the given vertex name. Throws an exception if the vertex does not exist.
Changes the state of the vertex at the given index. Throws an exception if the vertex does not exist.
Inserts a vertex into the database. An exception is thrown if the vertex already exists. Otherwise, the vertex's ID is returned.
Adds an edge. Throws an exception if the edge already exists. Returns the index of the edge.
Removes a vertex by the given index. If the vertex does not exist, an exception is thrown.
Removes an edge. Throws an exception if the edge does not exist.
Removes a pending vertex.
Lists all outgoing task edges.
Lists all outgoing resource edges.
Returns an input range that iterates over all resources. The order is guaranteed to be the same as the order they were inserted in.
Returns an input range that iterates over all tasks. The order is guaranteed to be the same as the order they were inserted in.
Returns a range of vertex keys. The returned range is not guaranteed to be sorted.
Returns a range of row indices.
Returns the incoming neighbors of the given node.
Finds vertices with no incoming and no outgoing edges.
Returns the outgoing neighbors of the given node.
Lists the pending vertices.
Closes the database.
Opens or creates a database.
Takes control of an existing database handle. The database will still be closed upon destruction.
Closes the database.
Convenience functions for beginning, committing, or rolling back a transaction.
Returns the internal handle to the SQLite3 database. This should only be used if this class does not provide the necessary functionality.
Prepare SQL statement for multiple execution or for parameters binding.
Like prepare, but ignores results and returns the number of changed rows.
Returns the ID of the last row that was inserted.
Returns the number of rows changed by the last statement.
The database is accessed using statements.
Stores the current state of the build.