예제 #1
0
        bool IEnumerator.MoveNext()
        {
            int label;

            if (cursor.TryMoveNextLabel(out label))
            {
                currentEntityLabel = label;
                return(true);
            }
            else if (currentModelIndex < models.Count - 1) //we have more models to process
            {
                currentModelIndex++;                       //go to next model
                cache.FreeTable(cursor);
                cache       = models[currentModelIndex].Cache;
                this.cursor = cache.GetEntityTable();
                cursor.MoveBeforeFirst();
                if (cursor.TryMoveNextLabel(out label))
                {
                    currentEntityLabel = label;
                    return(true);
                }
            }
            return(false);
        }
예제 #2
0
 public void Dispose()
 {
     cache.FreeTable(cursor);
 }