| 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