X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fardour%2Felement_import_handler.h;h=32898ec9de504d49eeeb50bf1c6d5cc070aeafd7;hb=2a7ed69c28c5c4606ff13b3605b9bc9c3eba607d;hp=9393c315595855b86bb32e308fe697281e48a9cf;hpb=572fa80aa713e723f63e1e1822db614307eea6af;p=ardour.git diff --git a/libs/ardour/ardour/element_import_handler.h b/libs/ardour/ardour/element_import_handler.h index 9393c31559..32898ec9de 100644 --- a/libs/ardour/ardour/element_import_handler.h +++ b/libs/ardour/ardour/element_import_handler.h @@ -23,10 +23,13 @@ #include #include +#include #include -using std::string; +#include "ardour/libardour_visibility.h" +#include "pbd/libpbd_visibility.h" + class XMLTree; namespace ARDOUR { @@ -34,8 +37,8 @@ namespace ARDOUR { class Session; class ElementImporter; -/// Virtual interface class for element import handlers -class ElementImportHandler +/// Virtual interface class for element import handlers +class LIBARDOUR_API ElementImportHandler { public: typedef boost::shared_ptr ElementPtr; @@ -48,61 +51,61 @@ class ElementImportHandler * @param source XML tree to be parsed * @see elements */ - ElementImportHandler (XMLTree const & source, ARDOUR::Session & session) : - source (source), session (session) { } - + ElementImportHandler (XMLTree const & source, ARDOUR::Session & session) + : source (source), session (session) { } + virtual ~ElementImportHandler (); - + /** Gets a textual representation of the element type * @return textual representation of element type */ - virtual string get_info () const = 0; - + virtual std::string get_info () const = 0; + /// Elements this handler handles ElementList elements; - + /* For checking duplicates names against queued elements */ - + /** Checks whether or not an element with some name is queued or not * @param name name to check * @return true if name is not used */ - bool check_name (const string & name) const; - + bool check_name (const std::string & name) const; + /// Adds name to the list of used names - void add_name (string name); - + void add_name (std::string name); + /// Removes name from the list of used names - void remove_name (const string & name); - + void remove_name (const std::string & name); + /// Checks wheter or not all elements can be imported cleanly static bool dirty () { return _dirty; } - + /// Sets handler dirty static void set_dirty () { _dirty = true; } - + /// Checks wheter or not all elements were imported cleanly static bool errors () { return _errors; } - + /// Sets handler dirty static void set_errors () { _errors = true; } protected: /// Source session XML tree XMLTree const & source; - + /// Destination session ARDOUR::Session & session; - + /// Session XML readability static bool _dirty; - + /// Errors post initialization static bool _errors; - + private: - /// List of names for duplicate checking - std::list names; + /// Set of names for duplicate checking + std::set names; }; } // namespace ARDOUR