From dd7573e0c156c3920ffa0967ae790eed3c56bf54 Mon Sep 17 00:00:00 2001 From: "mostafah%oeone.com" Date: Wed, 8 May 2002 21:13:44 +0000 Subject: [PATCH] Added getFirstEventsForRange() function git-svn-id: svn://10.0.0.236/trunk@121096 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/calendar/libxpical/oeICalImpl.cpp | 31 +++++++++++++++++++++-- mozilla/calendar/libxpical/oeIICal.idl | 2 +- 2 files changed, 30 insertions(+), 3 deletions(-) diff --git a/mozilla/calendar/libxpical/oeICalImpl.cpp b/mozilla/calendar/libxpical/oeICalImpl.cpp index 0a47ba19224..d0e90b01345 100644 --- a/mozilla/calendar/libxpical/oeICalImpl.cpp +++ b/mozilla/calendar/libxpical/oeICalImpl.cpp @@ -1227,7 +1227,6 @@ oeICalImpl::GetEventsForRange( PRTime checkdateinms, PRTime checkenddateinms, ns return NS_ERROR_OUT_OF_MEMORY; EventList *tmplistptr = &m_eventlist; - int i=0; while( tmplistptr ) { if( tmplistptr->event ) { oeIICalEvent* tmpevent = tmplistptr->event; @@ -1241,7 +1240,6 @@ oeICalImpl::GetEventsForRange( PRTime checkdateinms, PRTime checkenddateinms, ns } } tmplistptr = tmplistptr->next; - i++; } eventEnum->QueryInterface(NS_GET_IID(nsISimpleEnumerator), (void **)eventlist); @@ -1249,6 +1247,35 @@ oeICalImpl::GetEventsForRange( PRTime checkdateinms, PRTime checkenddateinms, ns return NS_OK; } +NS_IMETHODIMP +oeICalImpl::GetFirstEventsForRange( PRTime checkdateinms, PRTime checkenddateinms, nsISimpleEnumerator **eventlist ) { +#ifdef ICAL_DEBUG_ALL + printf( "oeICalImpl::GetEventsInRange()\n" ); +#endif + + nsCOMPtr eventEnum = new oeEventEnumerator( ); + + if (!eventEnum) + return NS_ERROR_OUT_OF_MEMORY; + + EventList *tmplistptr = &m_eventlist; + while( tmplistptr ) { + if( tmplistptr->event ) { + oeIICalEvent* tmpevent = tmplistptr->event; + PRBool isvalid; + PRTime checkdateloop = checkdateinms; + tmpevent->GetNextRecurrence( checkdateloop, &checkdateloop, &isvalid ); + if( isvalid && LL_CMP( checkdateloop, <, checkenddateinms ) ) { + eventEnum->AddEvent( tmpevent ); + } + } + tmplistptr = tmplistptr->next; + } + + eventEnum->QueryInterface(NS_GET_IID(nsISimpleEnumerator), (void **)eventlist); + return NS_OK; +} + icaltimetype oeICalImpl::GetNextEvent( icaltimetype starting ) { #ifdef ICAL_DEBUG_ALL printf( "oeICalImpl::GetNextEvent()\n" ); diff --git a/mozilla/calendar/libxpical/oeIICal.idl b/mozilla/calendar/libxpical/oeIICal.idl index 75a755b9632..a7959aa20dd 100644 --- a/mozilla/calendar/libxpical/oeIICal.idl +++ b/mozilla/calendar/libxpical/oeIICal.idl @@ -132,7 +132,7 @@ interface oeIICal : nsISupports nsISimpleEnumerator getEventsForDay(in PRTime date, out nsISimpleEnumerator datelist ); nsISimpleEnumerator getEventsForRange(in PRTime begindate, in PRTime enddate, out nsISimpleEnumerator datelist ); nsISimpleEnumerator getNextNEvents(in PRTime begindate, in long count, out nsISimpleEnumerator datelist ); - + nsISimpleEnumerator getFirstEventsForRange(in PRTime begindate, in PRTime enddate ); };