20 #ifndef __pbd_stateful_h__
21 #define __pbd_stateful_h__
50 virtual XMLNode& get_state (
void) = 0;
51 virtual int set_state (
const XMLNode&,
int version) = 0;
65 XMLNode *extra_xml (
const std::string& str,
bool add_if_missing =
false);
66 void save_extra_xml (
const XMLNode&);
70 void set_id (
const std::string&);
75 void clear_changes ();
76 virtual void clear_owned_changes ();
78 virtual void rdiff (std::vector<Command*> &)
const;
92 virtual void suspend_property_changes ();
93 virtual void resume_property_changes ();
99 void add_instant_xml (
XMLNode&,
const std::string& directory_path);
100 XMLNode *instant_xml (
const std::string& str,
const std::string& directory_path);
101 void add_properties (
XMLNode &);
bool property_changes_suspended() const
PBD::Signal1< void, const PropertyChange & > PropertyChanged
OwnedPropertyList * _properties
static int current_state_version
const PBD::ID & id() const
RouteGroup::RouteGroup(Session &s, const string &n) add_property(_relative)
static int loading_state_version
const OwnedPropertyList & properties() const
virtual void post_set(const PropertyChange &)
Glib::Threads::Mutex _lock
std::string _xml_node_name
name of node to use for this object in XML
LIBPBD_API uint64_t Stateful
PBD::PropertyChange _pending_changed
virtual void mid_thaw(const PropertyChange &)