+ /** Sets the buffer for the entire chain of objects. */
+ void change_buffer(Buffer *);
+
+ /** Returns the total amount of storage required by this object and others
+ in the same chain, including any alignment between objects. */
+ unsigned get_required_buffer_size() const;
+
+ /** Uploads new data into the buffer if necessary. */
+ void refresh() const { if(buffer && dirty) upload_data(0); }
+
+ AsyncUpdater *refresh_async() const;
+