- /* vim: ts=4 sw=4 sts=4 ff=unix fenc=utf-8 :
- * =====================================================================
- * sc_terator.h
- * Copyright (c) 2003 - 2011 sys0tem
- * LICENSE :
- * LGPL (GNU Lesser General Public License - Version 3,29 June 2007)
- * http://www.gnu.org/copyleft/lesser.html
- * or
- * EPL (Eclipse Public License - v1.0)
- * http://www.eclipse.org/legal/epl-v10.html
- * =====================================================================
- */
- #ifndef __SC_ITERATOR_H__
- #define __SC_ITERATOR_H__
-
- #include <stddef.h>
-
- #include <sc_stdbool.h>
-
- #ifdef __cplusplus
- extern "C" {
- #endif
-
-
- typedef struct SC_Iterator_Entry_ {
- struct SC_Iterator_Entry_* next;
- const void* value;
- size_t size;
- } SC_Iterator_Entry;
-
-
- /**
- * Iteratorオブジェクト。
- */
- typedef struct SC_Iterator_ {
- bool (*hasNext)(struct SC_Iterator_* ite);
- const void* (*next )(struct SC_Iterator_* ite, size_t* size);
- const char* (*nextStr)(struct SC_Iterator_* ite);
- struct SC_Iterator_Entry_* _head;
- struct SC_Iterator_Entry_* _now;
- } SC_Iterator;
-
-
- SC_Iterator* SC_Iterator_new(SC_Iterator_Entry* head);
- void SC_Iterator_delete(SC_Iterator* ite);
-
-
- #ifdef __cplusplus
- }
- #endif
-
- #endif /* __SC_ITERATOR_H__ */
-