aboutsummaryrefslogblamecommitdiffstats
path: root/ebook/e-book.c
blob: 4230394904185b875bb43023eb59e1fc3529fdec (plain) (tree)


































































































































































































                                                                      
/*
 * The Evolution addressbook client object.
 *
 * Author:
 *   Nat Friedman (nat@helixcode.com)
 *
 * Copyright 1999, Helix Code, Inc.
 */

#include <ebook/e-book.h>

/**
 * e_book_new:
 * @uri: A URI string describing the location of the backend
 * which the new #EBook will use.
 *
 * Returns: A new #EBook object, bound to the backend specified
 * by @uri, or %NULL if an error occurs.
 */
EBook *
e_book_new (const char *uri)
{
    e_book_get_card (
}

/**
 * e_book_get_type:
 *
 * Returns: The #GtkType for #EBook.
 */
GtkType
e_book_get_type (void)
{
}

/**
 * e_book_get_card:
 * @book: An #EBook object.
 * @id: A unique ID which specified a card stored inside
 * @book's backend store.
 *
 * This function fetches the card specified by @id from @book's
 * backend, parses it into a new #ECard object, and returns it.
 *
 * Returns: A newly created #ECard, filled with the card data
 * specified by @id.  The #EBook may maintain an internal card cache,
 * and will therefore hold a reference to each #ECard itself.  The
 * reference count on the returned #ECard will be incremented when the
 * card is returned.  When the client wishes to destroy the returned
 * #ECard, he should just dereference it.
 */
ECard *
e_book_get_card (EBook *book, const char *id)
{
}

/**
 * e_book_get_cards:
 * @book: An #EBook object.
 *
 * Returns: A #GList of all the #ECards stored in @book's backend.
 * The #GList is newly-allocated for the client and must be freed by
 * him.  The #ECard objects in the #GList are each referenced, and
 * must be unreferenced when the client is done using them.
 */
GList *
e_book_get_cards (EBook *book)
{
}

/**
 * e_book_get_ids:
 * @book: An #EBook object.
 *
 * Returns: A #GList of all the unique card ID strings stored in
 * @book's backend.  The #GList is newly-allocated, as are all of the
 * #ECard objects stored in it.  The client must free the #GList and
 * unreference all fo the cards when he is done with them.
 */
GList *
e_book_get_ids (EBook *book)
{
}

/**
 * e_book_sync_card:
 * @book: An #EBook object.
 * @card: A dirty #ECard object.
 *
 * Writes all the changes in @card into @book's card store.
 */
void
e_book_sync_card (EBook *book)
{
}

/**
 * e_book_update_card:
 * @book: An #EBook object.
 * @card: An #ECard object which has become out-of-date
 * and no longer contains the most current card data
 * in @book's card store.
 *
 * Updates @card with any changes which may have occured in its
 * corresponding backend data.
 */
void
e_book_update_card (EBook *book, ECard *card)
{
}

/**
 * e_book_add_card:
 * @book: An #EBook object.
 * @card: A newly-created ECard object.
 *
 * Adds @card to @book's card store.  Creates a unique ID for @card
 * and sets @card's ID field.  This action will cause a #card_added
 * signal to be raised on @book.
 *
 * Returns: The newly-created unique ID for @card.  The copy
 * returned is the same copy which is stored in @card.  The #EBook
 * may reference @card and keep a handle to it.
 */
const char *
e_book_add_card (EBook *book, ECard *card)
{
}

/**
 * e_book_remove_card:
 * @book: An #EBook object.
 * @id: A unique ID for a card stored in @book.
 *
 * Removes the card specified by @id from @book's card store.  If the
 * client has kept around an old #ECard object for the card being
 * removed, he will have to remove it himself.  The #ECard will not
 * receive a #card_removed signals.  A #card_removed signal will be
 * raised on @book, the card will be removed from the #EBook card
 * cache, and the corresponding #ECard's reference count will be
 * decremented.
 */
void
e_book_remove_card (EBook *book, const char *id)
{
}

/**
 * e_book_complete:
 * @book: An #EBook object.
 * @str: A string.
 *
 * The purpose of this function is to provide an easy way for the
 * client application to to implement typing completion in its address
 * entry dialogs.  The #EBook will compute a list of cards which
 * potentially complete @str.  The basis for the completion (address,
 * nickname, etc) is implementation-dependent, and I may add some
 * configurability to this later.
 * 
 * Returns: A list of #ECard objects which are potentially what the
 * user was getting at when he typed @str.  The list is sorted in
 * descending order of likelihood.  The returned #GList must be freed
 * by the client.  The #ECard objects in the #GList may have come from
 * @book's cache, and the client may already hold other references to
 * them.  For this reason, the reference count on each #ECard object
 * is incremented when the object is returned.
 */
GList *
e_book_complete (EBook *book, const char *str)
{
}       

/**
 * e_book_get_name:
 * @book: An #EBook object.
 *
 * Returns: The name of the card store to which @book is bound.
 * The returned string must be freed by the client.
 */
char *
e_book_get_name (EBook *book)
{
}

/**
 * e_book_set_name:
 * @book: An #EBook object.
 * @name: A string containing a new name for @book.
 *
 * Sets @book's name to @name.
 */
char *
e_book_set_name (EBook *book, const char *namen)
{
}