- getExactTypeName() - increment() - decrement() - isBegin() - isEnd() Contrary to previously stated, I am reverting back to implementing iterators in the (Python) API, for different reasons: - it will make testing quicker to achieve, as I won't have to recode a big chunk of the original Python files - it will be a base for API refactoring - it won't prevent the use a list-based approach later (it is simple to get it from the Iterator)
36 lines
817 B
C++
36 lines
817 B
C++
#ifndef FREESTYLE_PYTHON_ITERATOR_H
|
|
#define FREESTYLE_PYTHON_ITERATOR_H
|
|
|
|
#include "../system/Iterator.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
///////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
#include <Python.h>
|
|
|
|
extern PyTypeObject Iterator_Type;
|
|
|
|
#define BPy_Iterator_Check(v) (( (PyObject *) v)->ob_type == &Iterator_Type)
|
|
|
|
/*---------------------------Python BPy_Iterator structure definition----------*/
|
|
typedef struct {
|
|
PyObject_HEAD
|
|
Iterator *it;
|
|
} BPy_Iterator;
|
|
|
|
/*---------------------------Python BPy_Iterator visible prototypes-----------*/
|
|
|
|
PyMODINIT_FUNC Iterator_Init( PyObject *module );
|
|
|
|
|
|
///////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* FREESTYLE_PYTHON_ITERATOR_H */
|