Re: [PATCH 09/13] refs: introduce an iterator interface

2016-06-03 Thread Michael Haggerty
On 06/01/2016 01:12 AM, Eric Sunshine wrote: > On Tue, May 31, 2016 at 3:59 AM, Michael Haggerty > wrote: >> On 05/31/2016 07:29 AM, Eric Sunshine wrote: >>> On Mon, May 30, 2016 at 3:55 AM, Michael Haggerty >>> wrote: +struct ref_iterator *empty_ref_iterator_begin(void); + +/* >

Re: [PATCH 09/13] refs: introduce an iterator interface

2016-06-02 Thread Michael Haggerty
On 06/02/2016 12:08 PM, Duy Nguyen wrote: > On Mon, May 30, 2016 at 2:55 PM, Michael Haggerty > wrote: >> Currently, the API for iterating over references is via a family of >> for_each_ref()-type functions that invoke a callback function for each >> selected reference. All of these eventually ca

Re: [PATCH 09/13] refs: introduce an iterator interface

2016-06-02 Thread Duy Nguyen
On Mon, May 30, 2016 at 2:55 PM, Michael Haggerty wrote: > Currently, the API for iterating over references is via a family of > for_each_ref()-type functions that invoke a callback function for each > selected reference. All of these eventually call do_for_each_ref(), > which knows how to do one

Re: [PATCH 09/13] refs: introduce an iterator interface

2016-05-31 Thread Eric Sunshine
On Tue, May 31, 2016 at 3:59 AM, Michael Haggerty wrote: > On 05/31/2016 07:29 AM, Eric Sunshine wrote: >> On Mon, May 30, 2016 at 3:55 AM, Michael Haggerty >> wrote: >>> +struct ref_iterator *empty_ref_iterator_begin(void); >>> + >>> +/* >>> + * Return true iff ref_iterator is an empty_ref_iter

Re: [PATCH 09/13] refs: introduce an iterator interface

2016-05-31 Thread Michael Haggerty
On 05/31/2016 08:10 AM, Junio C Hamano wrote: > Michael Haggerty writes: > >> This commit introduces a new iteration primitive for references: a >> ref_iterator. A ref_iterator is a polymorphic object that a reference >> storage backend can be asked to instantiate. There are three functions >> th

Re: [PATCH 09/13] refs: introduce an iterator interface

2016-05-31 Thread Michael Haggerty
On 05/31/2016 07:29 AM, Eric Sunshine wrote: > On Mon, May 30, 2016 at 3:55 AM, Michael Haggerty > wrote: >> [...] > [...] > Either: > > s/false/something other than ITER_OK/ > > or: > > s/false/ITER_DONE or ITER_ERROR/ Thanks. >> +int ref_iterator_advance(struct ref_iterator *ref_it

Re: [PATCH 09/13] refs: introduce an iterator interface

2016-05-30 Thread Junio C Hamano
Michael Haggerty writes: > This commit introduces a new iteration primitive for references: a > ref_iterator. A ref_iterator is a polymorphic object that a reference > storage backend can be asked to instantiate. There are three functions > that can be applied to a ref_iterator: > > * ref_iterato

Re: [PATCH 09/13] refs: introduce an iterator interface

2016-05-30 Thread Eric Sunshine
On Mon, May 30, 2016 at 3:55 AM, Michael Haggerty wrote: > [...] > This commit introduces a new iteration primitive for references: a > ref_iterator. A ref_iterator is a polymorphic object that a reference > storage backend can be asked to instantiate. There are three functions > that can be appli

Re: [PATCH 09/13] refs: introduce an iterator interface

2016-05-30 Thread Michael Haggerty
On 05/30/2016 06:57 PM, Ramsay Jones wrote: > > > On 30/05/16 16:22, Ramsay Jones wrote: >> >> >> On 30/05/16 08:55, Michael Haggerty wrote: >> [snip] >> >>> /* Reference is a symbolic reference. */ >>> diff --git a/refs/files-backend.c b/refs/files-backend.c >>> index 8ab4d5f..dbf1587 100644 >>

Re: [PATCH 09/13] refs: introduce an iterator interface

2016-05-30 Thread Ramsay Jones
On 30/05/16 16:22, Ramsay Jones wrote: > > > On 30/05/16 08:55, Michael Haggerty wrote: > [snip] > >> /* Reference is a symbolic reference. */ >> diff --git a/refs/files-backend.c b/refs/files-backend.c >> index 8ab4d5f..dbf1587 100644 >> --- a/refs/files-backend.c >> +++ b/refs/files-backend

Re: [PATCH 09/13] refs: introduce an iterator interface

2016-05-30 Thread Ramsay Jones
On 30/05/16 08:55, Michael Haggerty wrote: [snip] > /* Reference is a symbolic reference. */ > diff --git a/refs/files-backend.c b/refs/files-backend.c > index 8ab4d5f..dbf1587 100644 > --- a/refs/files-backend.c > +++ b/refs/files-backend.c > @@ -1,6 +1,7 @@ > #include "../cache.h" > #includ

[PATCH 09/13] refs: introduce an iterator interface

2016-05-30 Thread Michael Haggerty
Currently, the API for iterating over references is via a family of for_each_ref()-type functions that invoke a callback function for each selected reference. All of these eventually call do_for_each_ref(), which knows how to do one thing: iterate in parallel through two ref_caches, one for loose a