-RegionSnapshot privatized_region(RegionType region_type, void* start_addr, void* permanent_addr, std::size_t size);
-RegionSnapshot dense_region(RegionType type, void* start_addr, void* data_addr, std::size_t size);
-simgrid::mc::RegionSnapshot sparse_region(RegionType type, void* start_addr, void* data_addr, std::size_t size);
-simgrid::mc::RegionSnapshot region(RegionType type, void* start_addr, void* data_addr, std::size_t size);
+class RegionDense : public RegionSnapshot {
+public:
+ RegionDense(RegionType type, void* start_addr, void* data_addr, std::size_t size);
+};
+class RegionSparse : public RegionSnapshot {
+public:
+ RegionSparse(RegionType type, void* start_addr, void* data_addr, std::size_t size);
+};
+class RegionPrivatized : public RegionSnapshot {
+public:
+ RegionPrivatized(RegionType type, void* start_addr, void* data_addr, std::size_t size);
+};
+
+RegionSnapshot* region(RegionType type, void* start_addr, void* data_addr, std::size_t size);