Calendar-CSA
view release on metacpan or search on metacpan
session->connected = 1;
RETVAL = session;
}
OUTPUT:
RETVAL
void
list_calendars(service=0)
char * service
PPCODE:
{
CSA_calendar_user *result;
CSA_uint32 number;
int err,i;
SV ** s;
HV * u;
number = 0;
err = csa_list_calendars(service, &number, &result, NULL);
session->iso_times = !SvTRUE(set);
}
OUTPUT:
RETVAL
void
look_up(session, users, flags=0)
Calendar::CSA::Session session
SV * users
SV * flags
PPCODE:
{
CSA_calendar_user user, *result;
CSA_uint32 number;
int err,i;
SvCSA_calendar_user(users, &user);
number = 1;
err = csa_look_up(session->session, &user, SvCSA_LOOKUP(flags), &number, &result, NULL);
PUSHs(sv_2mortal(newSVCSA_calendar_user(result+i)));
}
csa_free(result);
}
void
query_configuration(session, item)
Calendar::CSA::Session session
SV * item
PPCODE:
{
CSA_calendar_user user, *result;
CSA_uint32 number;
int err=0,i;
i = SvOpt(item, "configuration item", configs);
switch (i) {
case CSA_CONFIG_CHARACTER_SET:
{
char ** data;
err = csa_query_configuration(session->session, CSA_CONFIG_CHARACTER_SET, (void**)&data, NULL);
}
done:
if (err)
CsaCroak("query_configuration", err);
}
void
list_calendar_attributes(session)
Calendar::CSA::Session session
PPCODE:
{
CSA_attribute_reference *result;
CSA_uint32 number;
int err,i;
SV ** s;
HV * u;
number = 0;
err = csa_list_calendar_attributes(session->session, &number, &result, NULL);
EXTEND(sp, 1);
PUSHs(sv_2mortal(newSVpv(shorten(result[i], session->shorten),0)));
}
csa_free(result);
}
}
void
read_calendar_attributes(session, ...)
Calendar::CSA::Session session
PPCODE:
{
int i, j, err;
int flags=0;
CSA_uint32 count;
CSA_attribute * result;
CSA_attribute_reference * csa_names;
if (items>1) {
csa_names = safe_calloc(sizeof(CSA_attribute_reference)*(items-1),1);
for(i=1;i<items;i++)
csa_names[i-1] = lengthen(SvPV(ST(i), na));
PUSHs(sv_2mortal(newSVCSA_attribute_value(result[i].value, session->shorten, session->iso_times)));
}
csa_free(result);
}
}
void
read_next_reminder(session, given_time, ...)
Calendar::CSA::Session session
SV * given_time
PPCODE:
{
int i, j, err;
int flags=0;
CSA_uint32 count;
CSA_reminder_reference * result;
CSA_attribute_reference * csa_names;
if (items>1) {
csa_names = safe_calloc(sizeof(CSA_attribute_reference)*(items-1),1);
for(i=1;i<items;i++)
if (err)
CsaCroak("add_calendar", err);
}
void
free_time_search(session, range, duration, calendar,...)
Calendar::CSA::Session session
SV * range
SV * duration
SV * calendar
PPCODE:
{
int i, j, err;
CSA_uint32 count;
CSA_free_time * result;
CSA_calendar_user * csa_users;
if (items>3) {
csa_users = safe_malloc(sizeof(CSA_calendar_user)*(items-3));
for(i=3;i<items;i++)
SvCSA_calendar_user(ST(i), &csa_users[i-3]);
} else
entry->entry = new_entry;
RETVAL = entry;
}
OUTPUT:
RETVAL
void
list_entries(session, ...)
Calendar::CSA::Session session
PPCODE:
{
int i, j=0, err;
int flags=0;
CSA_uint32 count;
CSA_entry_handle *new_entries;
CSA_attribute * csa_attrs;
CSA_enum * csa_matches;
Calendar__CSA__EntryList entrylist;
if ((items-1)%2)
free(entrylist)
Calendar::CSA::EntryList entrylist
CODE:
if (entrylist->list)
csa_free(entrylist->list);
entrylist->list = 0;
AV *
entries(entrylist)
Calendar::CSA::EntryList entrylist
PPCODE:
{
int i;
Calendar__CSA__Entry entry;
SV *result;
if (!entrylist->list)
croak("Cannot retrieve entries from a freed EntryList");
for(i=0;i<entrylist->count;i++) {
entry = safe_malloc(sizeof(struct Calendar__CSA__Entry_t));
{
int err;
err = csa_delete_entry(entry->session->session, entry->entry, SvCSA_SCOPE(scope), NULL);
if (err)
CsaCroak("delete_entry", err);
}
void
read_entry_attributes(entry, ...)
Calendar::CSA::Entry entry
PPCODE:
{
int i, j, err;
CSA_uint32 count;
CSA_attribute * result;
CSA_attribute_reference * csa_names;
if (items>1) {
csa_names = safe_calloc(sizeof(CSA_attribute_reference)*(items-1),1);
for(i=1;i<items;i++)
csa_names[i-1] = lengthen(SvPV(ST(i), na));
} else {
CsaCroak("update_entry_attributes", err);
if (new_entry != 0)
entry->entry = new_entry;
}
void
list_entry_sequence(entry, range=&sv_undef, ...)
Calendar::CSA::Entry entry
SV * range
PPCODE:
{
int i, j, err;
int flags=0;
CSA_uint32 count;
CSA_attribute * result;
CSA_entry_handle *new_entries;
CSA_attribute csa_attr;
Calendar__CSA__EntryList entrylist;
err = csa_list_entry_sequence(entry->session->session, entry->entry, SvISO_date_time_range(range,0), &count, &new_entries, NULL);
( run in 1.325 second using v1.01-cache-2.11-cpan-71847e10f99 )