|  |  |  | Evolution-Data-Server Reference Manual |  | 
|---|---|---|---|---|
| Top | Description | ||||
#include <libedata-cal/libedata-cal.h> #define E_INTERVALTREE_DEBUG struct EIntervalTree; struct EIntervalTreeClass; EIntervalTree * e_intervaltree_new (void); gboolean e_intervaltree_insert (EIntervalTree *tree,time_t start,time_t end,ECalComponent *comp); gboolean e_intervaltree_remove (EIntervalTree *tree,const gchar *uid,const gchar *rid); GList * e_intervaltree_search (EIntervalTree *tree,time_t start,time_t end); void e_intervaltree_destroy (EIntervalTree *tree); void e_intervaltree_dump (EIntervalTree *tree);
Implementation of the interval node as described in Introduction to Algorithms book by Cormen et al, chapter 14.3.
Basically, the interval tree is the red-black tree, the node key is the start of the interval.
struct EIntervalTree {
};
Contains only private data that should be read and manipulated using the functions below.
Since 2.32
struct EIntervalTreeClass {
};
Class structure for the EIntervalTree class.
Since 2.32
EIntervalTree *     e_intervaltree_new                  (void);
Creates a new EIntervalTree.
| Returns : | The newly-created EIntervalTree. | 
Since 2.32
gboolean e_intervaltree_insert (EIntervalTree *tree,time_t start,time_t end,ECalComponent *comp);
| 
 | interval tree | 
| 
 | start of the interval | 
| 
 | end of the interval | 
| 
 | Component | 
Since 2.32
gboolean e_intervaltree_remove (EIntervalTree *tree,const gchar *uid,const gchar *rid);
| 
 | an EIntervalTree | 
| 
 | the uid of the component to remove | 
| 
 | the recurrance id of the component to remove | 
Since 2.32
GList * e_intervaltree_search (EIntervalTree *tree,time_t start,time_t end);
| 
 | interval tree | 
| 
 | start of the interval | 
| 
 | end of the interval | 
| Returns : | list of nodes that overlaps given interval or NULL. | 
Since 2.32
void                e_intervaltree_destroy              (EIntervalTree *tree);
| 
 | an EIntervalTree | 
Since 2.32