gstreamermm 0.10.10
Public Member Functions | Static Public Member Functions | Protected Member Functions | Related Functions

Gst::XML Class Reference

A class facilitating XML save/restore operations of pipelines. More...

Inheritance diagram for Gst::XML:
Inheritance graph
[legend]
Collaboration diagram for Gst::XML:
Collaboration graph
[legend]

List of all members.

Public Member Functions

virtual ~XML ()
GstXML* gobj ()
 Provides access to the underlying C GObject.
const GstXML* gobj () const
 Provides access to the underlying C GObject.
GstXML* gobj_copy ()
 Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs.
bool parse_doc (xmlpp::Document* doc, Glib::ustring& root)
 Fills the GstXML object with the elements from the xmlDocPtr.
bool parse_file (const std::string& filename, const Glib::ustring& root)
 Fills the GstXML object with the corresponding elements from the XML file fname.
bool parse_memory (const std::string& buffer, const Glib::ustring& root)
 Fills the Gst::XML object with the corresponding elements from an in memory XML buffer.
Glib::RefPtr< Gst::Elementget_element (const Glib::ustring& name)
 This function is used to get a pointer to the GstElement corresponding to name in the pipeline description.
Glib::RefPtr< const Gst::Elementget_element (const Glib::ustring& name) const
 This function is used to get a pointer to the GstElement corresponding to name in the pipeline description.
Glib::ListHandle< Glib::RefPtr
< Gst::Element > > 
get_topelements ()
 Retrieve a list of toplevel elements.
Glib::ListHandle< Glib::RefPtr
< const Gst::Element > > 
get_topelements () const
 Retrieve a list of toplevel elements.
Glib::SignalProxy2< void,
const Glib::RefPtr
< Gst::Object >&, xmlNodePtr > 
signal_object_loaded ()
 Signals that a new object has been deserialized.

Static Public Member Functions

static Glib::RefPtr< XMLcreate ()
 Create a new Gst::XML parser object.
static xmlDocPtr write (const Glib::RefPtr< const Gst::Element >& element)
 Converts the given element into an XML presentation.
static void write_to_stream (const Glib::RefPtr< const Gst::Element >& element, std::ostream& out)
 Converts the given element into XML and writes the formatted XML to an open output stream.
static Glib::RefPtr< Gst::Elementmake_element (xmlpp::Node* curr, const Glib::RefPtr< Gst::Object >& parent)
 Load the element from the XML description.

Protected Member Functions

 XML ()
virtual void on_object_loaded (const Glib::RefPtr< Gst::Object >& object, xmlNodePtr xml_node)

Related Functions

(Note that these are not member functions.)
Glib::RefPtr< Gst::XMLwrap (GstXML* object, bool take_copy=false)
 A Glib::wrap() method for this object.

Detailed Description

A class facilitating XML save/restore operations of pipelines.

GStreamer pipelines can be saved to xml files using write_to_stream(). They can be loaded back using parse_doc() / parse_file() / parse_memory(). Additionally one can load saved pipelines into the gst-editor to inspect the graph.

Gst::Element implementations need to override Gst::Object::save_vfunc() and Gst::Object::restore_vfunc().


Constructor & Destructor Documentation

virtual Gst::XML::~XML ( ) [virtual]
Gst::XML::XML ( ) [protected]

Member Function Documentation

static Glib::RefPtr<XML> Gst::XML::create ( ) [static]

Create a new Gst::XML parser object.

Returns:
A Glib::RefPtr<> to a new Gst::XML object.
Glib::RefPtr<Gst::Element> Gst::XML::get_element ( const Glib::ustring name)

This function is used to get a pointer to the GstElement corresponding to name in the pipeline description.

You would use this if you have to do anything to the element after loading.

Parameters:
nameThe name of element to retrieve.
Returns:
A pointer to a new GstElement, caller owns returned reference.
Glib::RefPtr<const Gst::Element> Gst::XML::get_element ( const Glib::ustring name) const

This function is used to get a pointer to the GstElement corresponding to name in the pipeline description.

You would use this if you have to do anything to the element after loading.

Parameters:
nameThe name of element to retrieve.
Returns:
A pointer to a new GstElement, caller owns returned reference.
Glib::ListHandle< Glib::RefPtr<Gst::Element> > Gst::XML::get_topelements ( )

Retrieve a list of toplevel elements.

Returns:
A GList of top-level elements. The caller does not own a copy of the list and must not free or modify the list. The caller also does not own a reference to any of the elements in the list and should obtain its own reference using Gst::Object::ref() if necessary.
Glib::ListHandle< Glib::RefPtr<const Gst::Element> > Gst::XML::get_topelements ( ) const

Retrieve a list of toplevel elements.

Returns:
A GList of top-level elements. The caller does not own a copy of the list and must not free or modify the list. The caller also does not own a reference to any of the elements in the list and should obtain its own reference using Gst::Object::ref() if necessary.
const GstXML* Gst::XML::gobj ( ) const [inline]

Provides access to the underlying C GObject.

Reimplemented from Gst::Object.

GstXML* Gst::XML::gobj ( ) [inline]

Provides access to the underlying C GObject.

Reimplemented from Gst::Object.

GstXML* Gst::XML::gobj_copy ( )

Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs.

Reimplemented from Gst::Object.

static Glib::RefPtr<Gst::Element> Gst::XML::make_element ( xmlpp::Node *  curr,
const Glib::RefPtr< Gst::Object >&  parent 
) [static]

Load the element from the XML description.

Parameters:
curThe xml node.
parentThe parent of this object when it's loaded.
Returns:
The new element.
virtual void Gst::XML::on_object_loaded ( const Glib::RefPtr< Gst::Object >&  object,
xmlNodePtr  xml_node 
) [protected, virtual]
bool Gst::XML::parse_doc ( xmlpp::Document *  doc,
Glib::ustring root 
)

Fills the GstXML object with the elements from the xmlDocPtr.

Parameters:
docA pointer to an xml document to parse.
rootThe name of the root object to build.
Returns:
true on success, false otherwise.
bool Gst::XML::parse_file ( const std::string filename,
const Glib::ustring root 
)

Fills the GstXML object with the corresponding elements from the XML file fname.

Optionally it will only build the element from the element node root (if it is not 0). This feature is useful if you only want to build a specific element from an XML file but not the pipeline it is embedded in.

Pass "-" as fname to read from stdin. You can also pass a URI of any format that libxml supports, including http.

Parameters:
fnameThe filename with the xml description.
rootThe name of the root object to build.
Returns:
true on success, false otherwise.
bool Gst::XML::parse_memory ( const std::string buffer,
const Glib::ustring root 
)

Fills the Gst::XML object with the corresponding elements from an in memory XML buffer.

Parameters:
bufferThe in memory XML buffer.
rootThe name of the root objects to build.
Returns:
true on success.
Glib::SignalProxy2< void,const Glib::RefPtr<Gst::Object>&,xmlNodePtr > Gst::XML::signal_object_loaded ( )

Signals that a new object has been deserialized.

Prototype:
void on_my_object_loaded(const Glib::RefPtr<Gst::Object>& object, xmlNodePtr xml_node)
static xmlDocPtr Gst::XML::write ( const Glib::RefPtr< const Gst::Element >&  element) [static]

Converts the given element into an XML presentation.

Parameters:
elementThe element to write out.
Returns:
A pointer to an XML document.
static void Gst::XML::write_to_stream ( const Glib::RefPtr< const Gst::Element >&  element,
std::ostream out 
) [static]

Converts the given element into XML and writes the formatted XML to an open output stream.

Parameters:
elementThe element to write out.
outAn open std::ostream, like std::cout.

Friends And Related Function Documentation

Glib::RefPtr< Gst::XML > wrap ( GstXML *  object,
bool  take_copy = false 
) [related]

A Glib::wrap() method for this object.

Parameters:
objectThe C instance.
take_copyFalse if the result should take ownership of the C instance. True if it should take a new copy or ref.
Returns:
A C++ instance that wraps this C instance.

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