serialize.hh (10930:ddc3d96d6313) serialize.hh (11067:5379f099e488)
1/*
2 * Copyright (c) 2015 ARM Limited
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software

--- 50 unchanged lines hidden (view full) ---

59
60#include "base/bitunion.hh"
61#include "base/types.hh"
62
63class IniFile;
64class Serializable;
65class CheckpointIn;
66class SimObject;
1/*
2 * Copyright (c) 2015 ARM Limited
3 * All rights reserved
4 *
5 * The license below extends only to copyright in the software and shall
6 * not be construed as granting a license to any other intellectual
7 * property including but not limited to intellectual property relating
8 * to a hardware implementation of the functionality of the software

--- 50 unchanged lines hidden (view full) ---

59
60#include "base/bitunion.hh"
61#include "base/types.hh"
62
63class IniFile;
64class Serializable;
65class CheckpointIn;
66class SimObject;
67class SimObjectResolver;
67class EventQueue;
68
69typedef std::ostream CheckpointOut;
70
71
72/** The current version of the checkpoint format.
73 * This should be incremented by 1 and only 1 for every new version, where a new
74 * version is defined as a checkpoint created before this version won't work on

--- 369 unchanged lines hidden (view full) ---

444// Macros to encapsulate the magic of declaring & defining
445// SerializableBuilder and SerializableClass objects
446//
447
448#define REGISTER_SERIALIZEABLE(CLASS_NAME, OBJ_CLASS) \
449SerializableClass the##OBJ_CLASS##Class(CLASS_NAME, \
450 OBJ_CLASS::createForUnserialize);
451
68class EventQueue;
69
70typedef std::ostream CheckpointOut;
71
72
73/** The current version of the checkpoint format.
74 * This should be incremented by 1 and only 1 for every new version, where a new
75 * version is defined as a checkpoint created before this version won't work on

--- 369 unchanged lines hidden (view full) ---

445// Macros to encapsulate the magic of declaring & defining
446// SerializableBuilder and SerializableClass objects
447//
448
449#define REGISTER_SERIALIZEABLE(CLASS_NAME, OBJ_CLASS) \
450SerializableClass the##OBJ_CLASS##Class(CLASS_NAME, \
451 OBJ_CLASS::createForUnserialize);
452
452// Base class to wrap object resolving functionality. This can be
453// provided to Checkpoint to allow it to map object names onto
454// object C++ objects in which to unserialize
455class SimObjectResolver
456{
457 public:
458 virtual ~SimObjectResolver() { }
459
453
460 // Find a SimObject given a full path name
461 virtual SimObject *resolveSimObject(const std::string &name) = 0;
462};
463
464class CheckpointIn
465{
466 private:
467
468 IniFile *db;
469
470 SimObjectResolver &objNameResolver;
471

--- 42 unchanged lines hidden ---
454class CheckpointIn
455{
456 private:
457
458 IniFile *db;
459
460 SimObjectResolver &objNameResolver;
461

--- 42 unchanged lines hidden ---