GenericIterable.h File Reference


Detailed Description

Common base implementations of IIterable interface.

#include <support/IIterable.h>
#include <support/IRandomIterator.h>
#include <support/Locker.h>
#include <support/SortedVector.h>

Go to the source code of this file.

Classes

class  BGenericIterable
 The most generic base class implementation of the IIterable interface. More...
class  BGenericIterable::GenericIterator
 Generic base class implementation of a BGenericIterable's iterator. More...
class  SSQLBuilder
 Convenience class for converting SValue queries in to SQL queries. More...

Iterable Options

enum  { B_ORDER_BY_ASCENDING = 0, B_ORDER_BY_DESCENDING = 1, B_ORDER_BY_CASELESS = 0, B_ORDER_BY_CASED = 2 }
 B_CONST_STRING_VALUE_LARGE (BV_ITERABLE_ORDER_BY,"order_by",)
 Specify row ordering for IIterable::NewIterator().
 B_CONST_STRING_VALUE_LARGE (BV_ITERABLE_WHERE,"where",)
 Specify which rows you are interested in for IIterable::NewIterator().
 B_CONST_STRING_VALUE_LARGE (BV_ITERABLE_FILTER,"filter",)
 Specify an abstract filter of the rows you are interested in for IIterable::NewIterator().
 B_CONST_STRING_VALUE_LARGE (BV_ITERABLE_DATABASE,"database",)
 Specify the database(s) to use for IIterable::NewIterator().
 B_CONST_STRING_VALUE_LARGE (BV_ITERABLE_SELECT,"select",)
 Specify which columns you are interested in for IIterable::NewIterator().
 B_CONST_STRING_VALUE_SMALL (BV_ITERABLE_SQL,"sql",)
 Supply a raw SQL string for IIterable::NewIterator().
 B_CONST_STRING_VALUE_SMALL (BV_ITERABLE_WHERE_OP,"op",)
 Specify operation between left-hand-side and right-hand-side of BV_ITERABLE_WHERE expression.
 B_CONST_STRING_VALUE_SMALL (BV_ITERABLE_WHERE_RHS,"rhs",)
 Specify right-hand-side of BV_ITERABLE_WHERE expression.
 B_CONST_STRING_VALUE_SMALL (BV_ITERABLE_WHERE_LHS,"lhs",)
 Specify left-hand-side of BV_ITERABLE_WHERE expression.


Enumeration Type Documentation

anonymous enum
 

Enumerator:
B_ORDER_BY_ASCENDING 
B_ORDER_BY_DESCENDING 
B_ORDER_BY_CASELESS 
B_ORDER_BY_CASED 


Function Documentation

B_CONST_STRING_VALUE_LARGE BV_ITERABLE_ORDER_BY  ,
"order_by" 
 

Specify row ordering for IIterable::NewIterator().

This is constructed as a set of {index->column_name->order} mappings, where order can be a combination of B_ORDER_BY_ASCENDING, B_ORDER_BY_DESCENDING, B_ORDER_BY_CASELESS, and B_ORDER_BY_CASED. The index is used to control the order of multiple columns being sorted. If you are only sorting by one column, you can drop that part and simply specify {column_name->order}.

B_CONST_STRING_VALUE_LARGE BV_ITERABLE_WHERE  ,
"where" 
 

Specify which rows you are interested in for IIterable::NewIterator().

This contains a set of nested SValue mappings expressing an expression tree, using the BV_ITERABLE_WHERE_LHS, BV_ITERABLE_WHERE_RHS, and BV_ITERABLE_WHERE_OP keys.

B_CONST_STRING_VALUE_LARGE BV_ITERABLE_FILTER  ,
"filter" 
 

Specify an abstract filter of the rows you are interested in for IIterable::NewIterator().

This is like BV_ITERABLE_WHERE, except it allows you to supply a single string that the iterable is free to interpret in whatever way makes the most sense for it. It is most often used when displaying some data to a user, where the user enters text to be used to filter what is being shown. If nothing else, an iterable will simply filter by the name (key) of each item. This can be used in conjunction with BV_ITERABLE_WHERE, in which case you will only see the rows for which both expressions match.

B_CONST_STRING_VALUE_LARGE BV_ITERABLE_DATABASE  ,
"database" 
 

Specify the database(s) to use for IIterable::NewIterator().

This is the database portion of a SQL query. If an iterable support it, it specifies which of the underlying databases (possibly more than one) to query. Often this is not specified, which queries for the data directly under the iterable -- i.e., the iterable itself is a database table.

B_CONST_STRING_VALUE_LARGE BV_ITERABLE_SELECT  ,
"select" 
 

Specify which columns you are interested in for IIterable::NewIterator().

This contains a set of strings specifying the columns for which you would like data.

B_CONST_STRING_VALUE_SMALL BV_ITERABLE_SQL  ,
"sql" 
 

Supply a raw SQL string for IIterable::NewIterator().

This is a back-door to the underlying database. Never use unless you are intimately familiar with the iterable implementation.

B_CONST_STRING_VALUE_SMALL BV_ITERABLE_WHERE_OP  ,
"op" 
 

Specify operation between left-hand-side and right-hand-side of BV_ITERABLE_WHERE expression.

B_CONST_STRING_VALUE_SMALL BV_ITERABLE_WHERE_RHS  ,
"rhs" 
 

Specify right-hand-side of BV_ITERABLE_WHERE expression.

B_CONST_STRING_VALUE_SMALL BV_ITERABLE_WHERE_LHS  ,
"lhs" 
 

Specify left-hand-side of BV_ITERABLE_WHERE expression.