20#ifndef _OPENMBV_GROUP_H_
21#define _OPENMBV_GROUP_H_
23#include <openmbvcppinterface/objectfactory.h>
24#include <openmbvcppinterface/object.h>
33 ,
public std::enable_shared_from_this<Group>
40 std::vector<std::shared_ptr<Object> > object;
41 std::string expandStr;
42 boost::filesystem::path fileName;
43 std::shared_ptr<H5::File> hdf5File;
44 std::function<void()> closeRequestCallback;
45 std::function<void()> refreshCallback;
46 void createHDF5File()
override;
47 void openHDF5File()
override;
50 ~Group()
override =
default;
52 std::shared_ptr<xercesc::DOMDocument> writeXMLDoc();
65 void setExpand(
bool expand) { expandStr=(expand)?
"true":
"false"; }
67 bool getExpand() {
return expandStr==
"true"?
true:
false; }
70 void addObject(
const std::shared_ptr<Object>& newObject);
72 std::vector<std::shared_ptr<Object> >& getObjects() {
76 std::shared_ptr<H5::File>& getHDF5File() {
return hdf5File; }
84 void setFileName(
const boost::filesystem::path &fn) { fileName=fn; }
90 void write(
bool writeXMLFile=
true,
bool writeH5File=
true,
bool embedXMLInH5=
false);
108 void setCloseRequestCallback(
const std::function<
void()> &closeRequestCallback_) { closeRequestCallback=closeRequestCallback_; }
112 void setRefreshCallback(
const std::function<
void()> &refreshCallback_) { refreshCallback=refreshCallback_; }
117 xercesc::DOMElement* writeXMLFile(xercesc::DOMNode *parent)
override;
121 std::shared_ptr<Group> p=parent.lock();
122 return !p?shared_from_this():p->getTopLevelGroup();
void setCloseRequestCallback(const std::function< void()> &closeRequestCallback_)
Definition: group.h:108
void readXML()
Definition: group.cc:142
void addObject(const std::shared_ptr< Object > &newObject)
Definition: group.cc:50
void refresh()
Definition: group.cc:208
void flushIfRequested()
Definition: group.cc:204
void write(bool writeXMLFile=true, bool writeH5File=true, bool embedXMLInH5=false)
Definition: group.cc:160
void initializeUsingXML(xercesc::DOMElement *element) override
Definition: group.cc:119
void writeXML()
Definition: group.cc:115
void setExpand(bool expand)
Definition: group.h:65
void setFileName(const boost::filesystem::path &fn)
Definition: group.h:84
std::string getFullName() override
Definition: group.cc:59
std::shared_ptr< Group > getTopLevelGroup()
Definition: group.h:120
void setRefreshCallback(const std::function< void()> &refreshCallback_)
Definition: group.h:112
void requestFlush()
Definition: group.cc:212
void read()
Definition: group.cc:217
void enableSWMR()
Definition: group.cc:199
std::string getFileName()
Definition: group.h:79
Definition: objectfactory.h:38