You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by na...@apache.org on 2006/08/17 10:00:37 UTC
svn commit: r432178 - in /webservices/axis2/trunk/c/axiom:
include/axiom_children_iterator.h src/om/om_children_iterator.c
Author: nandika
Date: Thu Aug 17 01:00:32 2006
New Revision: 432178
URL: http://svn.apache.org/viewvc?rev=432178&view=rev
Log:
patch applied, thanks to dimuthu
Modified:
webservices/axis2/trunk/c/axiom/include/axiom_children_iterator.h
webservices/axis2/trunk/c/axiom/src/om/om_children_iterator.c
Modified: webservices/axis2/trunk/c/axiom/include/axiom_children_iterator.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/axiom/include/axiom_children_iterator.h?rev=432178&r1=432177&r2=432178&view=diff
==============================================================================
--- webservices/axis2/trunk/c/axiom/include/axiom_children_iterator.h (original)
+++ webservices/axis2/trunk/c/axiom/include/axiom_children_iterator.h Thu Aug 17 01:00:32 2006
@@ -81,6 +81,16 @@
axiom_node_t* (AXIS2_CALL *
next)(axiom_children_iterator_t *iterator,
const axis2_env_t *env);
+
+ /**
+ * Resets the Iterator. This moves the cursor back to the initial.
+ * iterator chidren_iterator to be reset.
+ * @param env Environment. MUST NOT be NULL.
+ * @return satus of the op. AXIS2_SUCCESS on success else AXIS2_FAILURE.
+ */
+ axis2_status_t (AXIS2_CALL *
+ reset)(axiom_children_iterator_t *iterator,
+ const axis2_env_t *env);
};
@@ -113,6 +123,8 @@
#define AXIOM_CHILDREN_ITERATOR_NEXT(iterator, env) \
((iterator)->ops->next(iterator, env))
+#define AXIOM_CHILDREN_ITERATOR_RESET(iterator, env) \
+ ((iterator)->ops->reset(iterator, env))
/** @} */
#ifdef __cplusplus
Modified: webservices/axis2/trunk/c/axiom/src/om/om_children_iterator.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/axiom/src/om/om_children_iterator.c?rev=432178&r1=432177&r2=432178&view=diff
==============================================================================
--- webservices/axis2/trunk/c/axiom/src/om/om_children_iterator.c (original)
+++ webservices/axis2/trunk/c/axiom/src/om/om_children_iterator.c Thu Aug 17 01:00:32 2006
@@ -34,11 +34,16 @@
axiom_children_iterator_next(axiom_children_iterator_t *iterator,
const axis2_env_t *env);
+axis2_status_t AXIS2_CALL
+axiom_chidren_iterator_reset(axiom_children_iterator_t *iterator,
+ const axis2_env_t *env);
+
/*************** end function prototypes **********************************/
typedef struct axiom_children_iterator_impl_t
{
axiom_children_iterator_t iterator;
+ axiom_node_t *first_child;
axiom_node_t *current_child;
axiom_node_t *last_child;
axis2_bool_t next_called;
@@ -73,6 +78,7 @@
iterator_impl->current_child = NULL;
iterator_impl->last_child = NULL;
+ iterator_impl->first_child = NULL;
iterator_impl->next_called = AXIS2_FALSE;
iterator_impl->remove_called = AXIS2_FALSE;
@@ -89,11 +95,13 @@
return NULL;
}
+ iterator_impl->first_child = current_child;
iterator_impl->current_child = current_child;
iterator_impl->iterator.ops->free_fn = axiom_children_iterator_free;
iterator_impl->iterator.ops->remove = axiom_children_iterator_remove;
iterator_impl->iterator.ops->has_next = axiom_children_iterator_has_next;
iterator_impl->iterator.ops->next = axiom_children_iterator_next;
+ iterator_impl->iterator.ops->reset = axiom_chidren_iterator_reset;
return &(iterator_impl->iterator);
}
@@ -172,4 +180,16 @@
return iterator_impl->last_child;
}
return NULL;
+}
+
+axis2_status_t AXIS2_CALL
+axiom_chidren_iterator_reset(axiom_children_iterator_t *iterator,
+ const axis2_env_t *env)
+{
+ axiom_children_iterator_impl_t *iterator_impl = NULL;
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+ iterator_impl = AXIS2_INTF_TO_IMPL(iterator);
+
+ iterator_impl->current_child = iterator_impl->first_child;
+ return AXIS2_SUCCESS;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org