<?xml version="1.0"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" 
               "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
<refentry id="libedata-cal-e-data-cal-common">
<refmeta>
<refentrytitle role="top_of_page">e-data-cal-common</refentrytitle>
<manvolnum>3</manvolnum>
<refmiscinfo>LIBEDATA-CAL Library</refmiscinfo>
</refmeta>

<refnamediv>
<refname>e-data-cal-common</refname>
<refpurpose></refpurpose>
<!--[<xref linkend="desc" endterm="desc.title"/>]-->
</refnamediv>

<refsynopsisdiv role="synopsis">
<title role="synopsis.title">Synopsis</title>
<anchor id="ECalBackend"/><anchor id="EDataCal"/><anchor id="EDataCalView"/><anchor id="ECalBackendSExp"/>
<synopsis>



            <link linkend="ECalBackend-struct">ECalBackend</link>;
            <link linkend="ECalBackendClass">ECalBackendClass</link>;
            <link linkend="EDataCal-struct">EDataCal</link>;
            <link linkend="EDataCalClass">EDataCalClass</link>;
            <link linkend="EDataCalView-struct">EDataCalView</link>;
            <link linkend="EDataCalViewClass">EDataCalViewClass</link>;
            <link linkend="ECalBackendSExp-struct">ECalBackendSExp</link>;
            <link linkend="ECalBackendSExpClass">ECalBackendSExpClass</link>;
</synopsis>
</refsynopsisdiv>

<refsect1 role="object_hierarchy">
<title role="object_hierarchy.title">Object Hierarchy</title>
<synopsis>

  <link linkend="GObject">GObject</link>
   +----ECalBackend
</synopsis>
<synopsis>

  <link linkend="GObject">GObject</link>
   +----<link linkend="BonoboObject">BonoboObject</link>
         +----EDataCal
</synopsis>
<synopsis>

  <link linkend="GObject">GObject</link>
   +----<link linkend="BonoboObject">BonoboObject</link>
         +----EDataCalView
</synopsis>
<synopsis>

  <link linkend="GObject">GObject</link>
   +----ECalBackendSExp
</synopsis>

</refsect1>





<refsect1 role="properties">
<title role="properties.title">Properties</title>
<synopsis>

  &quot;<link linkend="ECalBackend--kind">kind</link>&quot;                 <link linkend="gulong">gulong</link>                : Read / Write / Construct Only
  &quot;<link linkend="ECalBackend--source">source</link>&quot;               <link linkend="ESource">ESource</link>               : Read / Write / Construct Only
  &quot;<link linkend="ECalBackend--uri">uri</link>&quot;                  <link linkend="gchararray">gchararray</link>            : Read / Write / Construct Only
  &quot;<link linkend="EDataCalView--backend">backend</link>&quot;              <link linkend="ECalBackend">ECalBackend</link>           : Read / Write / Construct Only
  &quot;<link linkend="EDataCalView--listener">listener</link>&quot;             <link linkend="gpointer">gpointer</link>              : Read / Write / Construct Only
  &quot;<link linkend="EDataCalView--sexp">sexp</link>&quot;                 <link linkend="ECalBackendSExp">ECalBackendSExp</link>       : Read / Write / Construct Only
</synopsis>
</refsect1>

<refsect1 role="signal_proto">
<title role="signal_proto.title">Signals</title>
<synopsis>

&quot;<link linkend="ECalBackend-last-client-gone">last-client-gone</link>&quot;
            <link linkend="void">void</link>        user_function      (<link linkend="ECalBackend">ECalBackend</link> *ecalbackend,
                                            <link linkend="gpointer">gpointer</link>     user_data)        : Run first
&quot;<link linkend="ECalBackend-opened">opened</link>&quot;    <link linkend="void">void</link>        user_function      (<link linkend="ECalBackend">ECalBackend</link> *ecalbackend,
                                            <link linkend="gint">gint</link>         arg1,
                                            <link linkend="gpointer">gpointer</link>     user_data)        : Run first
&quot;<link linkend="ECalBackend-removed">removed</link>&quot;   <link linkend="void">void</link>        user_function      (<link linkend="ECalBackend">ECalBackend</link> *ecalbackend,
                                            <link linkend="gint">gint</link>         arg1,
                                            <link linkend="gpointer">gpointer</link>     user_data)        : Run first
</synopsis>
</refsect1>


<refsect1 role="desc">
<title role="desc.title">Description</title>
<para>

</para>
</refsect1>

<refsect1 role="details">
<title role="details.title">Details</title>
<refsect2>
<title><anchor id="ECalBackend-struct" role="struct"/>ECalBackend</title>
<indexterm><primary>ECalBackend</primary></indexterm><programlisting>typedef struct _ECalBackend ECalBackend;</programlisting>
<para>

</para></refsect2>
<refsect2>
<title><anchor id="ECalBackendClass" role="struct"/>ECalBackendClass</title>
<indexterm><primary>ECalBackendClass</primary></indexterm><programlisting>typedef struct {
	GObjectClass parent_class;

	/* Notification signals */
	void (* last_client_gone) (ECalBackend *backend);
	void (* cal_added) (ECalBackend *backend, EDataCal *cal);

	gboolean (* is_loaded) (ECalBackend *backend);

	/* FIXME What to pass back here */
	void (* opened) (ECalBackend *backend, int status);
	void (* removed) (ECalBackend *backend, int status);
	void (* obj_updated) (ECalBackend *backend, const char *uid);

	/* Virtual methods */
	void (* is_read_only) (ECalBackend *backend, EDataCal *cal);
	void (* get_cal_address) (ECalBackend *backend, EDataCal *cal);
	void (* get_alarm_email_address) (ECalBackend *backend, EDataCal *cal);
	void (* get_ldap_attribute) (ECalBackend *backend, EDataCal *cal);
	void (* get_static_capabilities) (ECalBackend *backend, EDataCal *cal);
	
	void (* open) (ECalBackend *backend, EDataCal *cal, gboolean only_if_exists, const char *username, const char *password);
	void (* remove) (ECalBackend *backend, EDataCal *cal);

	/* Object related virtual methods */
	void (* create_object) (ECalBackend *backend, EDataCal *cal, const char *calobj);
	void (* modify_object) (ECalBackend *backend, EDataCal *cal, const char *calobj, CalObjModType mod);
	void (* remove_object) (ECalBackend *backend, EDataCal *cal, const char *uid, const char *rid, CalObjModType mod);

	void (* discard_alarm) (ECalBackend *backend, EDataCal *cal, const char *uid, const char *auid);

	void (* receive_objects) (ECalBackend *backend, EDataCal *cal, const char *calobj);
	void (* send_objects) (ECalBackend *backend, EDataCal *cal, const char *calobj);

	void (* get_default_object) (ECalBackend *backend, EDataCal *cal);
	void (* get_object) (ECalBackend *backend, EDataCal *cal, const char *uid, const char *rid);	
	void (* get_object_list) (ECalBackend *backend, EDataCal *cal, const char *sexp);

	void (* get_attachment_list) (ECalBackend *backend, EDataCal *cal, const char *uid, const char *rid);	
	
	/* Timezone related virtual methods */
	void (* get_timezone) (ECalBackend *backend, EDataCal *cal, const char *tzid);
	void (* add_timezone) (ECalBackend *backend, EDataCal *cal, const char *object);
	void (* set_default_zone) (ECalBackend *backend, EDataCal *cal, const char *tzobj);
	void (* set_default_timezone) (ECalBackend *backend, EDataCal *cal, const char *tzid);

	void (* start_query) (ECalBackend *backend, EDataCalView *query);

	/* Mode relate virtual methods */
	CalMode (* get_mode) (ECalBackend *backend);
	void    (* set_mode) (ECalBackend *backend, CalMode mode);

	void (* get_free_busy) (ECalBackend *backend, EDataCal *cal, GList *users, time_t start, time_t end);
	void (* get_changes) (ECalBackend *backend, EDataCal *cal, const char *change_id);

	/* Internal methods for use only in the pcs */
	icaltimezone *(* internal_get_default_timezone) (ECalBackend *backend);
	icaltimezone *(* internal_get_timezone) (ECalBackend *backend, const char *tzid);
} ECalBackendClass;
</programlisting>
<para>

</para></refsect2>
<refsect2>
<title><anchor id="EDataCal-struct" role="struct"/>EDataCal</title>
<indexterm><primary>EDataCal</primary></indexterm><programlisting>typedef struct _EDataCal EDataCal;</programlisting>
<para>

</para></refsect2>
<refsect2>
<title><anchor id="EDataCalClass" role="struct"/>EDataCalClass</title>
<indexterm><primary>EDataCalClass</primary></indexterm><programlisting>typedef struct {
	BonoboObjectClass parent_class;

	POA_GNOME_Evolution_Calendar_Cal__epv epv;
} EDataCalClass;
</programlisting>
<para>

</para></refsect2>
<refsect2>
<title><anchor id="EDataCalView-struct" role="struct"/>EDataCalView</title>
<indexterm><primary>EDataCalView</primary></indexterm><programlisting>typedef struct _EDataCalView EDataCalView;</programlisting>
<para>

</para></refsect2>
<refsect2>
<title><anchor id="EDataCalViewClass" role="struct"/>EDataCalViewClass</title>
<indexterm><primary>EDataCalViewClass</primary></indexterm><programlisting>typedef struct {
	BonoboObjectClass parent_class;

	POA_GNOME_Evolution_Calendar_CalView__epv epv;
} EDataCalViewClass;
</programlisting>
<para>

</para></refsect2>
<refsect2>
<title><anchor id="ECalBackendSExp-struct" role="struct"/>ECalBackendSExp</title>
<indexterm><primary>ECalBackendSExp</primary></indexterm><programlisting>typedef struct _ECalBackendSExp ECalBackendSExp;</programlisting>
<para>

</para></refsect2>
<refsect2>
<title><anchor id="ECalBackendSExpClass" role="struct"/>ECalBackendSExpClass</title>
<indexterm><primary>ECalBackendSExpClass</primary></indexterm><programlisting>typedef struct {
	GObjectClass parent_class;
} ECalBackendSExpClass;
</programlisting>
<para>

</para></refsect2>

</refsect1>
<refsect1 role="property_details">
<title role="property_details.title">Property Details</title>
<refsect2><title><anchor id="ECalBackend--kind"/>The &quot;<literal>kind</literal>&quot; property</title>
<indexterm><primary>ECalBackend:kind</primary></indexterm><programlisting>  &quot;kind&quot;                 <link linkend="gulong">gulong</link>                : Read / Write / Construct Only</programlisting>
<para></para><para>Allowed values: &lt;= 25</para>
</refsect2>
<refsect2><title><anchor id="ECalBackend--source"/>The &quot;<literal>source</literal>&quot; property</title>
<indexterm><primary>ECalBackend:source</primary></indexterm><programlisting>  &quot;source&quot;               <link linkend="ESource">ESource</link>               : Read / Write / Construct Only</programlisting>
<para></para></refsect2>
<refsect2><title><anchor id="ECalBackend--uri"/>The &quot;<literal>uri</literal>&quot; property</title>
<indexterm><primary>ECalBackend:uri</primary></indexterm><programlisting>  &quot;uri&quot;                  <link linkend="gchararray">gchararray</link>            : Read / Write / Construct Only</programlisting>
<para></para><para>Default value: ""</para>
</refsect2>
<refsect2><title><anchor id="EDataCalView--backend"/>The &quot;<literal>backend</literal>&quot; property</title>
<indexterm><primary>EDataCalView:backend</primary></indexterm><programlisting>  &quot;backend&quot;              <link linkend="ECalBackend">ECalBackend</link>           : Read / Write / Construct Only</programlisting>
<para></para></refsect2>
<refsect2><title><anchor id="EDataCalView--listener"/>The &quot;<literal>listener</literal>&quot; property</title>
<indexterm><primary>EDataCalView:listener</primary></indexterm><programlisting>  &quot;listener&quot;             <link linkend="gpointer">gpointer</link>              : Read / Write / Construct Only</programlisting>
<para></para></refsect2>
<refsect2><title><anchor id="EDataCalView--sexp"/>The &quot;<literal>sexp</literal>&quot; property</title>
<indexterm><primary>EDataCalView:sexp</primary></indexterm><programlisting>  &quot;sexp&quot;                 <link linkend="ECalBackendSExp">ECalBackendSExp</link>       : Read / Write / Construct Only</programlisting>
<para></para></refsect2>

</refsect1>

<refsect1 role="signals">
<title role="signals.title">Signal Details</title>
<refsect2><title><anchor id="ECalBackend-last-client-gone"/>The &quot;last-client-gone&quot; signal</title>
<indexterm><primary>ECalBackend::last-client-gone</primary></indexterm><programlisting><link linkend="void">void</link>        user_function                  (<link linkend="ECalBackend">ECalBackend</link> *ecalbackend,
                                            <link linkend="gpointer">gpointer</link>     user_data)        : Run first</programlisting>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>ecalbackend</parameter>&nbsp;:</term>
<listitem><simpara>the object which received the signal.

</simpara></listitem></varlistentry>
<varlistentry><term><parameter>user_data</parameter>&nbsp;:</term>
<listitem><simpara>user data set when the signal handler was connected.</simpara></listitem></varlistentry>
</variablelist></refsect2><refsect2><title><anchor id="ECalBackend-opened"/>The &quot;opened&quot; signal</title>
<indexterm><primary>ECalBackend::opened</primary></indexterm><programlisting><link linkend="void">void</link>        user_function                  (<link linkend="ECalBackend">ECalBackend</link> *ecalbackend,
                                            <link linkend="gint">gint</link>         arg1,
                                            <link linkend="gpointer">gpointer</link>     user_data)        : Run first</programlisting>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>ecalbackend</parameter>&nbsp;:</term>
<listitem><simpara>the object which received the signal.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>arg1</parameter>&nbsp;:</term>
<listitem><simpara>

</simpara></listitem></varlistentry>
<varlistentry><term><parameter>user_data</parameter>&nbsp;:</term>
<listitem><simpara>user data set when the signal handler was connected.</simpara></listitem></varlistentry>
</variablelist></refsect2><refsect2><title><anchor id="ECalBackend-removed"/>The &quot;removed&quot; signal</title>
<indexterm><primary>ECalBackend::removed</primary></indexterm><programlisting><link linkend="void">void</link>        user_function                  (<link linkend="ECalBackend">ECalBackend</link> *ecalbackend,
                                            <link linkend="gint">gint</link>         arg1,
                                            <link linkend="gpointer">gpointer</link>     user_data)        : Run first</programlisting>
<para>

</para><variablelist role="params">
<varlistentry><term><parameter>ecalbackend</parameter>&nbsp;:</term>
<listitem><simpara>the object which received the signal.
</simpara></listitem></varlistentry>
<varlistentry><term><parameter>arg1</parameter>&nbsp;:</term>
<listitem><simpara>

</simpara></listitem></varlistentry>
<varlistentry><term><parameter>user_data</parameter>&nbsp;:</term>
<listitem><simpara>user data set when the signal handler was connected.</simpara></listitem></varlistentry>
</variablelist></refsect2>
</refsect1>



</refentry>
