A
lgorithmique
N
umérique
D
istribuée
Public GIT Repository
projects
/
simgrid.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[mc] Move things in simgrid::mc
[simgrid.git]
/
src
/
mc
/
ChunkedData.hpp
diff --git
a/src/mc/ChunkedData.hpp
b/src/mc/ChunkedData.hpp
index
02e6bcc
..
3c414be
100644
(file)
--- a/
src/mc/ChunkedData.hpp
+++ b/
src/mc/ChunkedData.hpp
@@
-1,9
+1,16
@@
+/* Copyright (c) 2014-2015. The SimGrid Team.
+ * All rights reserved. */
+
+/* This program is free software; you can redistribute it and/or modify it
+ * under the terms of the license (GNU LGPL) which comes with this package. */
+
#ifndef SIMGRID_MC_CHUNKED_DATA_HPP
#define SIMGRID_MC_CHUNKED_DATA_HPP
#include <cstddef>
#include <cstdint>
#ifndef SIMGRID_MC_CHUNKED_DATA_HPP
#define SIMGRID_MC_CHUNKED_DATA_HPP
#include <cstddef>
#include <cstdint>
+#include <utility>
#include <vector>
#include "src/mc/mc_forward.hpp"
#include <vector>
#include "src/mc/mc_forward.hpp"
@@
-13,18
+20,14
@@
namespace simgrid {
namespace mc {
namespace simgrid {
namespace mc {
+/** A byte-string represented as a sequence of chunks from a PageStor */
class ChunkedData {
class ChunkedData {
- PageStore* store_;
+ PageStore* store_ = nullptr;
+ /** Indices of the chunks */
std::vector<std::size_t> pagenos_;
public:
std::vector<std::size_t> pagenos_;
public:
- ChunkedData() : store_(nullptr) {}
- ChunkedData(ChunkedData const& that)
- {
- store_ = that.store_;
- pagenos_ = that.pagenos_;
- for (std::size_t pageno : pagenos_)
- store_->ref_page(pageno);
- }
+
+ ChunkedData() {}
void clear()
{
for (std::size_t pageno : pagenos_)
void clear()
{
for (std::size_t pageno : pagenos_)
@@
-36,6
+39,14
@@
public:
clear();
}
clear();
}
+ // Copy and move
+ ChunkedData(ChunkedData const& that)
+ {
+ store_ = that.store_;
+ pagenos_ = that.pagenos_;
+ for (std::size_t pageno : pagenos_)
+ store_->ref_page(pageno);
+ }
ChunkedData(ChunkedData&& that)
{
store_ = that.store_;
ChunkedData(ChunkedData&& that)
{
store_ = that.store_;
@@
-65,7
+76,6
@@
public:
std::size_t page_count() const { return pagenos_.size(); }
std::size_t pageno(std::size_t i) const { return pagenos_[i]; }
const std::size_t* pagenos() const { return pagenos_.data(); }
std::size_t page_count() const { return pagenos_.size(); }
std::size_t pageno(std::size_t i) const { return pagenos_[i]; }
const std::size_t* pagenos() const { return pagenos_.data(); }
- std::size_t* pagenos() { return pagenos_.data(); }
const void* page(std::size_t i) const
{
const void* page(std::size_t i) const
{
@@
-73,7
+83,7
@@
public:
}
ChunkedData(PageStore& store, AddressSpace& as,
}
ChunkedData(PageStore& store, AddressSpace& as,
-
remote_p
tr<void> addr, std::size_t page_count,
+
RemoteP
tr<void> addr, std::size_t page_count,
const std::size_t* ref_page_numbers, const std::uint64_t* pagemap);
};
const std::size_t* ref_page_numbers, const std::uint64_t* pagemap);
};