| Structure SilcVCard
 
 NAME
 
    typedef struct { ... } SilcVCardStruct, *SilcVCard;
DESCRIPTION
    This structure is the VCard.  This holds the contents of the
    card.  When a card is parsed it is parsed into this structure.
    When creating a new card application fills this structure and
    the library encodes the card from it.  Free the allocated
    structure with silc_vcard_free function.
SOURCE    typedef struct SilcVCardObject {
      char *full_name;          /* full name, X.520 common name */
      char *family_name;        /* last name, string */
      char *first_name;         /* first name, string */
      char *middle_names;       /* other names, string (comma sep.) */
      char *prefix;             /* honorifix prefix (Mr., Mrs.), string */
      char *suffix;             /* honorifix suffix (MD), string (comma sep.) */
      char *nickname;           /* string (comma sep. if more than one) */
      char *bday;               /* birth day, UTC date string */
      char *title;              /* job title X.520, string */
      char *role;               /* job role X.520, string */
      char *org_name;           /* organization name, string */
      char *org_unit;           /* organization unit, string */
      char *categories;         /* application category, string */
      char *catclass;           /* class (public, private, confidental), string */
      char *url;                /* home page, URI string */
      char *label;              /* formatted address label, string (same
                                   format as for 'addr' but comma sep.) */
    
      struct addr {
        char *type;             /* address type, string
                                   (intl, dom, home, work, pref, postal, parcel) */
        char *pbox;             /* post office box, string */
        char *ext_addr;         /* extended address, string */
        char *street_addr;      /* street address, string */
        char *city;             /* city, string */
        char *state;            /* state/province, string */
        char *code;             /* postal code, string */
        char *country;          /* country name, string */
      } *addrs;
      SilcUInt8 num_addrs;      /* number of addresses */
    
      struct tel {
        char *type;             /* telephone number type, string
                                   (msg, voice, home, work, pref, bbs, modem, car,
                                   cell, video, pager, isdn, fax) */
        char *telnum;           /* single telephone number, string */
      } *tels;
      SilcUInt8 num_tels;
    
      struct email {
        char *type;             /* email type, string (internet, pref, x400) */
        char *address;          /* single email address, string */
      } *emails;
      SilcUInt8 num_emails;
    
      char *note;               /* a note, string */
      char *rev;                /* revision of card, UTC date string */
    
      SilcBool dynamic;                 /* TRUE when dynamically allocated */
    } SilcVCardStruct, *SilcVCard;
 
 
 
 |