![]() |
![]() |
![]() |
Ximian Connector for Microsoft Exchange Programmer’s Reference Manual | ![]() |
---|
E2kFreebusyE2kFreebusy — Exchange Free/Busy processing |
E2kFreebusy; enum E2kBusyStatus; E2kFreebusyEvent; E2kFreebusy* e2k_freebusy_new (E2kContext *ctx, const char *public_uri, const char *dn); void e2k_freebusy_reset (E2kFreebusy *fb, int nmonths); void e2k_freebusy_add_interval (E2kFreebusy *fb, E2kBusyStatus busystatus, time_t start, time_t end); void e2k_freebusy_clear_interval (E2kFreebusy *fb, time_t start, time_t end); E2kHTTPStatus e2k_freebusy_add_from_calendar_uri (E2kFreebusy *fb, const char *uri, time_t start_tt, time_t end_tt); E2kHTTPStatus e2k_freebusy_save (E2kFreebusy *fb); void e2k_freebusy_destroy (E2kFreebusy *fb);
typedef enum { E2K_BUSYSTATUS_FREE = 0, E2K_BUSYSTATUS_TENTATIVE = 1, E2K_BUSYSTATUS_BUSY = 2, E2K_BUSYSTATUS_OOF = 3, E2K_BUSYSTATUS_MAX, /* Alias for internal use */ E2K_BUSYSTATUS_ALL = E2K_BUSYSTATUS_FREE } E2kBusyStatus;
These represent the possible states of a free/busy interval:
E2K_BUSYSTATUS_FREE |
The user is free during this interval. |
E2K_BUSYSTATUS_TENTATIVE |
The user is tentatively busy during this interval. |
E2K_BUSYSTATUS_BUSY |
The user is busy during this interval. |
E2K_BUSYSTATUS_OOF |
The user is out of the office during this interval. |
E2K_BUSYSTATUS_MAX |
|
E2K_BUSYSTATUS_ALL |
typedef struct { } E2kFreebusyEvent;
Represents a single interval of time in the user's free/busy data.
E2kFreebusy* e2k_freebusy_new (E2kContext *ctx, const char *public_uri, const char *dn);
Creates a new E2kFreebusy, filled in with information from the
indicated user's published free/busy information. This uses the
public free/busy folder; the caller does not need permission to
access the dn
's Calendar.
Note that currently, this will fail and return NULL
if the user
does not already have free/busy information stored on the server.
ctx : |
an E2kContext |
public_uri : |
the URI of the MAPI public folder tree |
dn : |
the legacy Exchange DN of a user |
Returns : | the freebusy information |
void e2k_freebusy_reset (E2kFreebusy *fb, int nmonths);
Clears all existing data in fb
and resets the start and end times
to a span of nmonths
around the current date.
fb : |
an E2kFreebusy |
nmonths : |
the number of months of info fb will store
|
void e2k_freebusy_add_interval (E2kFreebusy *fb, E2kBusyStatus busystatus, time_t start, time_t end);
This adds an interval of type busystatus
to fb
.
fb : |
an E2kFreebusy |
busystatus : |
the busy status of the interval |
start : |
the start of the interval |
end : |
the end of the interval |
void e2k_freebusy_clear_interval (E2kFreebusy *fb, time_t start, time_t end);
This removes any events between start
and end
in fb
.
fb : |
an E2kFreebusy |
start : |
the start of the interval |
end : |
the end of the interval |
E2kHTTPStatus e2k_freebusy_add_from_calendar_uri (E2kFreebusy *fb, const char *uri, time_t start_tt, time_t end_tt);
This queries the server for events between start_tt
and end_tt
in
the calendar at uri
(which the caller must have permission to
read) and adds them fb
. Any previously-existing events during that
range are removed.
fb : |
an E2kFreebusy |
uri : |
the URI of a calendar folder |
start_tt : |
start of the range to add |
end_tt : |
end of the range to add |
Returns : | an HTTP status code. |
E2kHTTPStatus e2k_freebusy_save (E2kFreebusy *fb);
Saves the data in fb
back to the server.
fb : |
an E2kFreebusy |
Returns : | a libsoup or HTTP status code |
void e2k_freebusy_destroy (E2kFreebusy *fb);
Frees fb
and all associated data.
fb : |
the E2kFreebusy |
<< E2kAction | E2kRestriction (vaporware) >> |