/usr/include/choreonoid-1.1/cnoid/src/Base/MultiSeqItem.h is in libcnoid-dev 1.1.0+dfsg-6.1+b4.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 | /**
@file
@author Shin'ichiro Nakaoka
*/
#ifndef CNOID_GUIBASE_MULTI_SEQ_ITEM_H_INCLUDED
#define CNOID_GUIBASE_MULTI_SEQ_ITEM_H_INCLUDED
#include "Item.h"
#include <cnoid/MultiSeq>
#include "exportdecl.h"
namespace cnoid {
class CNOID_EXPORT MultiSeqItemBase : public Item
{
public:
MultiSeqItemBase();
MultiSeqItemBase(const MultiSeqItemBase& org);
virtual ~MultiSeqItemBase();
virtual MultiSeqBasePtr seqBase() = 0;
virtual void notifyUpdate();
protected:
void doPutPropertiesSub(PutPropertyFunction& putProperty, MultiSeqBase* seq);
bool storeSub(Archive& archive);
bool restoreSub(const Archive& archive);
};
template <typename MultiSeqType> class MultiSeqItem : public MultiSeqItemBase
{
public:
static void initialize(ExtensionManager* ext) { }
typedef boost::intrusive_ptr< MultiSeqItem<MultiSeqType> > Ptr;
MultiSeqItem() : seq_(new MultiSeqType()) { }
MultiSeqItem(typename MultiSeqType::Ptr seq) : seq_(seq) { }
virtual MultiSeqBasePtr seqBase() { return seq_; }
inline boost::shared_ptr<MultiSeqType> seq() { return seq_; }
//void resetSeq(boost::shared_ptr<MultiSeqType> seq) { seq_ = seq; }
protected:
MultiSeqItem(const MultiSeqItem<MultiSeqType>& org)
: MultiSeqItemBase(org),
seq_(new MultiSeqType(*org.seq_)) { }
virtual ItemPtr doDuplicate() const {
return new MultiSeqItem<MultiSeqType>(*this);
}
virtual void doPutProperties(PutPropertyFunction& putProperty) {
doPutPropertiesSub(putProperty, seq_.get());
}
virtual bool store(Archive& archive) {
return storeSub(archive);
}
virtual bool restore(const Archive& archive) {
return restoreSub(archive);
}
private:
virtual ~MultiSeqItem() { }
boost::shared_ptr<MultiSeqType> seq_;
};
}
#endif
|