## Share API

Share API — Using the share API

## Share API

A DmapAvShare (or DmapImageShare) allows a program to share the media described by its DmapDb object. The libdmapsharing package also provides an optional interface, DmapRecordFactory, that can be used in conjunction with a DmapDb implementation. The following demonstrates the use of the share API; it serves up a media database made up of a single record.

    DmapRecordFactory *factory;
    DmapRecord *record;
    DmapDb *db;
    gboolean ok;
    DmapShare *share;
    GError *error = NULL;

    factory = DMAP_RECORD_FACTORY (my_dmap_av_record_factory_new ());

    record  = DMAP_RECORD (dmap_record_factory_create (factory, path_to_media_file, &error));
    if (record == NULL) {
    	g_error("Error reading record: %s\n", error->messaage);
    }

    db = DMAP_DB (my_dmap_db_new ());
    dmap_db_add (db, record, &error);
    g_object_unref (record);

    share = DMAP_SHARE(dmap_av_share_new (name, NULL, db, dmap_container_db, NULL);

    ok = dmap_share_serve(share, &error);
    if (!ok) {
    	g_error("Error sharing: %s", error->message);
    }

    ok = dmap_share_publish(share, &errro);
    if (!ok) {
    	g_error("Error publishing: %s", error->message);
    }

    g_main_loop_run(loop);