### Class

# RB RhythmDBEntryType

#### Description [src]

    class RB.RhythmDBEntryType : GObject.Object
    {
      RhythmDBEntryTypePrivate* priv
    }

This is the base class for database entry type classes, which provide some aspects of the behaviour of database entry types. There are different entry types for songs, radio streams, podcast feeds and episodes, and so on.

Plugins written in Python or Vala can create new entry types by subclassing and overriding any methods required. Plugins written in C can create a new instance of the RhythmDBEntryType base class and use its function pointer members rather than subclassing.

#### Ancestors

- GObject

#### Descendants

- RBMediaPlayerEntryType

#### Instance methods

###### rhythmdb_entry_type_fetch_metadata

Fetches metadata for a URI (not an entry yet, at this point) from a cache, if possible.

###### rhythmdb_entry_type_get_name

Returns the name of the entry type.

###### rhythmdb_entry_type_purge_metadata_cache

No description available.

##### Methods inherited from GObject (43)

Please see GObject for a full list of methods.

#### Properties

###### RB.RhythmDBEntryType:cache-name

Metadata cache name. For entry types created by a plugin, should match the plugin name. If this is set, the entry type must also implement the uri_to_cache_key method.

###### RB.RhythmDBEntryType:category

The `RhythmDBEntryCategory` that this entry type fits into.

###### RB.RhythmDBEntryType:db

The `RhythmDB` instance.

###### RB.RhythmDBEntryType:name

Entry type name. This must be unique.

###### RB.RhythmDBEntryType:save-to-disk

If `TRUE`, entries of this type should be written to the on-disk database.

###### RB.RhythmDBEntryType:type-data-size

The size of the type-specific data structure to allocate for each entry of this type.

#### Signals

##### Signals inherited from GObject (1)

###### GObject::notify

The notify signal is emitted on an object when one of its properties has its value set through g_object_set_property(), g_object_set(), et al.

#### Class structure

    struct RBRhythmDBEntryTypeClass {
      GObjectClass parent_class;
      void (* entry_created) (
        RhythmDBEntryType* etype,
        RhythmDBEntry* entry
      );
      void (* destroy_entry) (
        RhythmDBEntryType* etype,
        RhythmDBEntry* entry
      );
      char* (* get_playback_uri) (
        RhythmDBEntryType* etype,
        RhythmDBEntry* entry
      );
      void (* update_availability) (
        RhythmDBEntryType* etype,
        RhythmDBEntry* entry,
        RhythmDBEntryAvailability avail
      );
      gboolean (* can_sync_metadata) (
        RhythmDBEntryType* etype,
        RhythmDBEntry* entry
      );
      void (* sync_metadata) (
        RhythmDBEntryType* etype,
        RhythmDBEntry* entry,
        GSList* changes,
        GError** error
      );
      char* (* uri_to_cache_key) (
        RhythmDBEntryType* etype,
        const char* uri
      );
      char* (* cache_key_to_uri) (
        RhythmDBEntryType* etype,
        const char* key
      );
      RBExtDBKey* (* create_ext_db_key) (
        RhythmDBEntryType* etype,
        RhythmDBEntry* entry,
        RhythmDBPropType prop
      );

    }

No description available.

###### Class members

`parent_class: GObjectClass`

  No description available.

`entry_created: void (* entry_created) ( RhythmDBEntryType* etype, RhythmDBEntry* entry )`

  No description available.

`destroy_entry: void (* destroy_entry) ( RhythmDBEntryType* etype, RhythmDBEntry* entry )`

  No description available.

`get_playback_uri: char* (* get_playback_uri) ( RhythmDBEntryType* etype, RhythmDBEntry* entry )`

  No description available.

`update_availability: void (* update_availability) ( RhythmDBEntryType* etype, RhythmDBEntry* entry, RhythmDBEntryAvailability avail )`

  No description available.

`can_sync_metadata: gboolean (* can_sync_metadata) ( RhythmDBEntryType* etype, RhythmDBEntry* entry )`

  No description available.

`sync_metadata: void (* sync_metadata) ( RhythmDBEntryType* etype, RhythmDBEntry* entry, GSList* changes, GError** error )`

  No description available.

`uri_to_cache_key: char* (* uri_to_cache_key) ( RhythmDBEntryType* etype, const char* uri )`

  No description available.

`cache_key_to_uri: char* (* cache_key_to_uri) ( RhythmDBEntryType* etype, const char* key )`

  No description available.

`create_ext_db_key: RBExtDBKey* (* create_ext_db_key) ( RhythmDBEntryType* etype, RhythmDBEntry* entry, RhythmDBPropType prop )`

  No description available.

#### Virtual methods

###### RB.RhythmDBEntryTypeClass.cache_key_to_uri

No description available.

###### RB.RhythmDBEntryTypeClass.can_sync_metadata

No description available.

###### RB.RhythmDBEntryTypeClass.create_ext_db_key

No description available.

###### RB.RhythmDBEntryTypeClass.destroy_entry

No description available.

###### RB.RhythmDBEntryTypeClass.entry_created

No description available.

###### RB.RhythmDBEntryTypeClass.get_playback_uri

No description available.

###### RB.RhythmDBEntryTypeClass.sync_metadata

No description available.

###### RB.RhythmDBEntryTypeClass.update_availability

No description available.

###### RB.RhythmDBEntryTypeClass.uri_to_cache_key

No description available.