SINGLE_PASS

来源:互联网 发布:个人征信所用数据 编辑:程序博客网 时间:2024/06/03 15:15
/**
 * The array interface provides metadata about the array, including its handle, type and
 * array descriptors.
 * To access the data in the array, a constant (read-only) iterator can be requested, or a
 * volatile iterator can be used.
 */
class Array : public SelfStatistics
{
public:


    /**
     * An enum that defines three levels of Array read access policy - ranging from most restrictive to least restrictive.
     */
    enum Access
    {
        /**
         * Most restrictive access policy wherein the array can only be iterated over one time.
         * If you need to read multiple attributes, you need to read all of the attributes horizontally, at the same time.
         * Imagine that reading the array is like scanning from a pipe - after a single scan, the data is no longer available.
         * This is the only supported access mode for InputArray and MergeSortArray.
         * Any SINGLE_PASS array must inherit from scidb::SinglePassArray if that array is ever returned from PhysicalOperator::execute().
         * The reason is that the sg() operator can handle only the SINGLE_PASS arrays conforming to the SinglePassArray interface.
         */
        SINGLE_PASS = 0,


        /**
         * A policy wherein the array can be iterated over several times, and various attributes can be scanned independently,
         * but the ArrayIterator::setPosition() function is not supported.
         * This is less restrictive than SINGLE_PASS.
         * This is the least restrictive access mode fsupported by ConcatArray
         */
        MULTI_PASS  = 1,


        /**
         * A policy wherein the client of the array can use the full functionality of the API.
         * This is the least restrictive access policy and it's supported by the vast majority of Array subtypes.
         */
        RANDOM      = 2
    };
0 0
原创粉丝点击