Blame toonz/sources/include/tpersistset.h
|
Shinya Kitaoka |
810553 |
#pragma once
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
#ifndef TPERSISTSET_H
|
|
Toshihiro Shimizu |
890ddd |
#define TPERSISTSET_H
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
// TnzCore includes
|
|
Toshihiro Shimizu |
890ddd |
#include "tpersist.h"
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
// STD includes
|
|
Toshihiro Shimizu |
890ddd |
#include <vector></vector>
|
|
Toshihiro Shimizu |
890ddd |
|
|
Campbell Barton |
40cabe |
#include <memory></memory>
|
|
Campbell Barton |
40cabe |
|
|
Toshihiro Shimizu |
890ddd |
//**************************************************************************************
|
|
Toshihiro Shimizu |
890ddd |
// TPersistSet declaration
|
|
Toshihiro Shimizu |
890ddd |
//**************************************************************************************
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
/*!
|
|
Toshihiro Shimizu |
890ddd |
Container of TPersist instances that are unique per concrete type .
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
This class acts as a container of TPersist instances where only a single
|
|
Toshihiro Shimizu |
890ddd |
instance of a given most-derived type can be stored.
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
This is typically useful to \a overwrite objects of a given type, typically
|
|
Toshihiro Shimizu |
890ddd |
configuration options, without discarding the other objects.
|
|
Toshihiro Shimizu |
890ddd |
*/
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
d1f6c4 |
class DVAPI TPersistSet final : public TPersist {
|
|
Shinya Kitaoka |
120a6e |
PERSIST_DECLARATION(TPersistSet)
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
std::vector<tpersist *=""> m_objects; //!< #owned# Stored objects.</tpersist>
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
public:
|
|
Shinya Kitaoka |
120a6e |
~TPersistSet(); //!< Destroys the stored objects.
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
const std::vector<tpersist *=""> &objects() const {</tpersist>
|
|
Shinya Kitaoka |
120a6e |
return m_objects;
|
|
Shinya Kitaoka |
120a6e |
} //!< Returns the stored objects list
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
2a7129 |
void insert(std::unique_ptr<tpersist></tpersist>
|
|
Shinya Kitaoka |
120a6e |
object); //!< Overwrites an object type instance with
|
|
Shinya Kitaoka |
120a6e |
//! the supplied one.
|
|
Toshihiro Shimizu |
890ddd |
public:
|
|
Shinya Kitaoka |
473e70 |
void saveData(TOStream &os) override; //!< Saves data to stream
|
|
Shinya Kitaoka |
473e70 |
void loadData(TIStream &is) override; //!< Loads data from stream
|
|
Toshihiro Shimizu |
890ddd |
};
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
#endif // TPERSISTSET_H
|