1 #ifndef CNOID_UTIL_ARCHIVE_SESSION_H
2 #define CNOID_UTIL_ARCHIVE_SESSION_H
7 #include "exportdecl.h"
21 bool addReference(
const Uuid& uuid,
Referenced*
object,
bool doUnreferenceImmediately =
false);
23 template<
class ObjectType>
26 std::function<
bool(ObjectType*
object,
bool isImmediate)> onResolved,
27 std::function<
bool()> onNotResolved =
nullptr)
31 [onResolved](
Referenced*
object,
bool isImmediate){
32 if(
auto derived =
dynamic_cast<ObjectType*
>(
object)){
33 return onResolved(derived, isImmediate);
41 template<
class ObjectType>
44 std::function<
bool(ObjectType*
object)> onResolved,
45 std::function<
bool()> onNotResolved =
nullptr)
49 [onResolved](
Referenced*
object,
bool isImmediate){
50 if(
auto derived =
dynamic_cast<ObjectType*
>(
object)){
51 return onResolved(derived);
59 virtual void putWarning(
const std::string& message);
60 virtual void putError(
const std::string& message);
62 void resolvePendingReferences();
67 void resolveReference_(
69 std::function<
bool(
Referenced*
object,
bool isImmediate)> onResolved,
70 std::function<
bool()> onNotResolved,