cUPnPClassObject Class Reference

#include <object.h>

Inheritance diagram for cUPnPClassObject:

Inheritance graph
[legend]
Collaboration diagram for cUPnPClassObject:

Collaboration graph
[legend]

List of all members.

Public Member Functions

time_t modified () const
virtual int Compare (const cListObject &ListObject) const
virtual cStringList * getPropertyList ()
virtual bool getProperty (const char *Property, char **Value) const
virtual bool setProperty (const char *Property, const char *Value)
virtual cUPnPClassContainergetContainer ()
virtual IXML_Node * createDIDLFragment (IXML_Document *Document, cStringList *Filter)=0
bool isContainer ()
void setSortCriteria (const char *Property, bool Descending=false)
void clearSortCriteria ()
int setTitle (const char *Title)
int setCreator (const char *Creator)
int setRestricted (bool Restricted)
int setWriteStatus (int Status)
int setResources (cList< cUPnPResource > *Resources)
int addResource (cUPnPResource *Resource)
int removeResource (cUPnPResource *Resource)
cUPnPObjectID getID () const
cUPnPObjectID getParentID () const
cUPnPClassContainergetParent () const
const char * getTitle () const
const char * getClass () const
const char * getCreator () const
bool isRestricted () const
int getWriteStatus () const
cUPnPResourcegetResource (unsigned int ResourceID) const
cList< cUPnPResource > * getResources () const

Protected Member Functions

int setID (cUPnPObjectID ID)
int setParent (cUPnPClassContainer *Parent)
int setClass (const char *Class)
void setModified (void)

Protected Attributes

time_t mLastModified
 The last modification of this property.
cUPnPObjectID mID
 The object ID.
cUPnPClassObjectmParent
 The parent object.
cString mClass
 Class (Who am I?).
cString mTitle
 Object title.
cString mCreator
 Creator of this object.
bool mRestricted
 Ability of changing metadata?
int mWriteStatus
 Ability of writing resources?
cList< cUPnPResource > * mResources
 The resources of this object.
cHash< cUPnPResource > * mResourcesID
 The resources of this object as hashmap.
IXML_Document * mDIDLFragment
 The DIDL fragment of the object.
cString mSortCriteria
 The sort criteria to sort with.
bool mSortDescending
 The direction of the sort.

Friends

class cMediaDatabase
class cUPnPObjectMediator
class cUPnPClassContainer


Detailed Description

The UPnP class Object

This is a UPnP class Object representation with all its properties.


Member Function Documentation

int cUPnPClassObject::addResource ( cUPnPResource Resource  ) 

Add resource to list

This adds the specified resource to the resource list of the object

Returns:
returns
  • 0, if setting was successful
  • <0, otherwise
Parameters:
Resource the resource to be added

void cUPnPClassObject::clearSortCriteria (  ) 

Clears the sort criteria

Clears the property of the sort criteria and sets the descending flag to false.

int cUPnPClassObject::Compare ( const cListObject &  ListObject  )  const [virtual]

Compares a object

This compares a given object with this object It uses the SortCriteria to compare them.

Returns:
returns
  • >0, if the object comes after this one
  • 0, if the objects have the same property
  • <0, if the object comes before this one
Parameters:
ListObject the object to compare with

virtual IXML_Node* cUPnPClassObject::createDIDLFragment ( IXML_Document *  Document,
cStringList *  Filter 
) [pure virtual]

Create the DIDL fragment

This creates the DIDL-Lite fragment of the object. The DIDL is written to the specified IXML document. The details of the output can be controlled via the filter stringlist

Returns:
the DIDL fragment of the object
Parameters:
Document the IXML document where to write the contents
Filter the string list with the filter criteria

Implemented in cUPnPClassItem, and cUPnPClassContainer.

const char* cUPnPClassObject::getClass (  )  const [inline]

Get the object class

This returns the object class of the object. The classes are defined by the UPnP Working Committee. However, custom classes which are derived from a standardized class are also possible.

Returns:
the class of the object

virtual cUPnPClassContainer* cUPnPClassObject::getContainer (  )  [inline, virtual]

Converts to container

This will convert the object into a container if it is one. If not, it returns NULL.

Returns:
returns
  • NULL, if it is not a container
  • a container representation of this object

Reimplemented in cUPnPClassContainer.

const char* cUPnPClassObject::getCreator (  )  const [inline]

Get the creator

This returns the creator of the object. Usually, this is the primary content creator or the owner of the object

Returns:
the creator of the object

cUPnPObjectID cUPnPClassObject::getID (  )  const [inline]

Get the object ID

This returns the object ID of the object.

Returns:
the object ID

cUPnPClassContainer* cUPnPClassObject::getParent (  )  const [inline]

Get the parent object

This returns the parent container object, associated with this object. It is NULL, if the object is the root object.

Returns:
the parent object

cUPnPObjectID cUPnPClassObject::getParentID (  )  const [inline]

Get the parent ID

This returns the ID of the parent container object, associated with this object. It is -1, if the object is the root object.

Returns:
the parent ID

bool cUPnPClassObject::getProperty ( const char *  Property,
char **  Value 
) const [virtual]

Gets a property

Returns the value of a specified property. The value is converted into a string.

Returns:
returns
  • true, if the property exists
  • false, otherwise
Parameters:
Property the property which should be returned
Value the value of that property

Reimplemented in cUPnPClassItem, cUPnPClassContainer, cUPnPClassVideoItem, cUPnPClassMovie, and cUPnPClassVideoBroadcast.

cStringList * cUPnPClassObject::getPropertyList (  )  [virtual]

Get the properties of the object

This returns a property list with all the properties which can be obtained or set with getProperty or setProperty.

Returns:
a stringlist with the properties

Reimplemented in cUPnPClassItem, cUPnPClassContainer, cUPnPClassVideoItem, cUPnPClassMovie, and cUPnPClassVideoBroadcast.

cUPnPResource* cUPnPClassObject::getResource ( unsigned int  ResourceID  )  const [inline]

Get a resource by its ID

Returns the resource with the specified resource ID.

Returns:
the resource by ID
Parameters:
ResourceID the resource ID of the demanded resource

cList<cUPnPResource>* cUPnPClassObject::getResources (  )  const [inline]

Get the resources

This returns a list with resources associated with this object.

Returns:
the resources of this object

const char* cUPnPClassObject::getTitle (  )  const [inline]

Get the title

This returns the title of the object. This may be the title of an item or the folder name in case of a container.

Returns:
the title of the object

int cUPnPClassObject::getWriteStatus (  )  const [inline]

Get write status

This returns the write status of the object. It gives information, if the resource is modifiable.

Returns:
the write status

bool cUPnPClassObject::isContainer (  )  [inline]

Is this a container?

Returns if this object is a container or not

Returns:
returns
  • true, if it is a container
  • false, otherwise

bool cUPnPClassObject::isRestricted (  )  const [inline]

Is the resource restricted?

Returns true, if the object is restricted or false, otherwise. When the object is restricted, then modifications to the metadata of the object are disallowed.

Returns:
returns
  • true, if the object is restricted
  • false, otherwise

time_t cUPnPClassObject::modified (  )  const [inline]

Last modified

Returns when the object was modified the last time.

Returns:
last modification timestamp

int cUPnPClassObject::removeResource ( cUPnPResource Resource  ) 

Remove resource from list

This removes the specified resource from the resource list of the object

Returns:
returns
  • 0, if setting was successful
  • <0, otherwise
Parameters:
Resource the resource to be removed

int cUPnPClassObject::setClass ( const char *  Class  )  [protected]

Set the object class

This is only allowed by mediators and the media database. Manually editing the object class may result in unpredictable behavior.

Parameters:
Class the class of this object
Returns:
returns
  • 0, if setting was successful
  • <0, otherwise

int cUPnPClassObject::setCreator ( const char *  Creator  ) 

Set the creator

The creator of an object is primarily the creator or owner of the object

Returns:
returns
  • 0, if setting was successful
  • <0, otherwise
Parameters:
Creator the creator of the object

int cUPnPClassObject::setID ( cUPnPObjectID  ID  )  [protected]

Set the Object ID

This is only allowed by mediators and the media database. Manually editing the object ID may result in unpredictable behavior.

Parameters:
ID the ObjectID of this object
Returns:
returns
  • 0, if setting was successful
  • <0, otherwise

void cUPnPClassObject::setModified ( void   )  [inline, protected]

Set the modification time

This sets the last modification time to the current timestamp. This is used to indicate when the object was updated the last time.

int cUPnPClassObject::setParent ( cUPnPClassContainer Parent  )  [protected]

Set the Parent Object

This is only allowed by mediators and the media database. Manually editing the parent may result in unpredictable behavior.

Parameters:
Parent the parent of this object
Returns:
returns
  • 0, if setting was successful
  • <0, otherwise

bool cUPnPClassObject::setProperty ( const char *  Property,
const char *  Value 
) [virtual]

Sets a property

Sets the value of a specified property. The value is converted from string into the propper data type

Returns:
returns
  • true, if the property exists
  • false, otherwise
Parameters:
Property the property which should be set
Value the value of that property

Reimplemented in cUPnPClassItem, cUPnPClassContainer, cUPnPClassVideoItem, cUPnPClassMovie, and cUPnPClassVideoBroadcast.

int cUPnPClassObject::setResources ( cList< cUPnPResource > *  Resources  ) 

Set the resources

This sets the list of resources of an object. The list usally contain a single resource. However, multiple resources a also very common.

Returns:
returns
  • 0, if setting was successful
  • <0, otherwise
Parameters:
Resources the resource list of this object

int cUPnPClassObject::setRestricted ( bool  Restricted  ) 

Set the restriction

This sets the restriction flag. If the object is restricted, no modifications to its metadata by the user are allowed.

Returns:
returns
  • 0, if setting was successful
  • <0, otherwise
Parameters:
Restricted true, to disallow modification, false to allow it

void cUPnPClassObject::setSortCriteria ( const char *  Property,
bool  Descending = false 
)

Set the sort criteria

This sets a certain criteria which the object can be compared with.

Parameters:
Property the property to sort after
Descending sort the objects in descending order

int cUPnPClassObject::setTitle ( const char *  Title  ) 

Set the title

This sets the title of the object. It is a required metadata information. It must not be NULL or an empty string.

Returns:
returns
  • 0, if setting was successful
  • <0, otherwise
Parameters:
Title the title of the object

int cUPnPClassObject::setWriteStatus ( int  Status  ) 

Set the write status

This sets the write status of a resource. With this indicator, you can set the modifiabilty of resources by a control point.

Returns:
returns
  • 0, if setting was successful
  • <0, otherwise
Parameters:
Status the write status


The documentation for this class was generated from the following files:

Generated on Sun Nov 8 15:44:09 2009 for UPnP/DLNA plugin for VDR by  doxygen 1.5.8