| IOLink 1.11.0

Loading...
Searching...
No Matches
RegionCopier.h
1#pragma once
2
3#include <iolink/IOLinkAPI.h>
4#include <iolink/Indexer.h>
5#include <iolink/Region.h>
6#include <iolink/Vector.h>
7#include <iolink/storage/RandomAccess.h>
8#include <memory>
9
10 namespace iolink
11{
12
13 class InternalRegionCopier;
14
36 class IOLINK_API RegionCopier final
37{
38 public:
55 RegionCopier(const Indexer& srcIndexer,
56 const Indexer& dstIndexer,
57 const VectorXu64& srcOrigin,
58 const VectorXu64& dstOrigin,
59 const VectorXu64& regionSize,
60 DataType dataType);
61
77 RegionCopier(const Indexer& srcindexer, const RegionXu64& srcRegion, DataType dataType);
78
94 RegionCopier(const RegionXu64& dstRegion, const Indexer& dstIndexer, DataType dataType);
95
100 RegionCopier(const RegionCopier& other);
101
106 RegionCopier& operator=(const RegionCopier& other);
107
111 ~RegionCopier();
112
119 void copy(const uint8_t* src, uint8_t* dst);
120
127 void copy(std::shared_ptr<RandomAccess> src, uint8_t* dst);
128
135 void copy(const uint8_t* src, std::shared_ptr<RandomAccess> dst);
136
137 private:
138 InternalRegionCopier* m_impl;
139};
140
141} // end namespace iolink
iolink::DataType
Stores information about a data type.
Definition DataType.h:162
iolink::Indexer
This class is used to index a classic array into a multi dimensional array.
Definition Indexer.h:36
iolink::RegionCopier
This class contains the algorithms used to copy data beetween two regions of N dimensionnal data.
Definition RegionCopier.h:37
iolink::RegionCopier::RegionCopier
RegionCopier(const Indexer &srcindexer, const RegionXu64 &srcRegion, DataType dataType)
Shortened constructor in the case if the destination has the same dimensions as the region itself.
iolink::RegionCopier::copy
void copy(const uint8_t *src, uint8_t *dst)
Copy data from memory, to memory.
iolink::RegionCopier::RegionCopier
RegionCopier(const RegionXu64 &dstRegion, const Indexer &dstIndexer, DataType dataType)
Shortened constructor in the case if the source has the same dimensions as the region itself.
iolink::RegionCopier::copy
void copy(std::shared_ptr< RandomAccess > src, uint8_t *dst)
Copy data from a storage to memory.
iolink::RegionCopier::RegionCopier
RegionCopier(const RegionCopier &other)
Copy constructor.
iolink::RegionCopier::~RegionCopier
~RegionCopier()
Destructor.
iolink::RegionCopier::RegionCopier
RegionCopier(const Indexer &srcIndexer, const Indexer &dstIndexer, const VectorXu64 &srcOrigin, const VectorXu64 &dstOrigin, const VectorXu64 &regionSize, DataType dataType)
Build a copier with all the parameters.
iolink::RegionCopier::copy
void copy(const uint8_t *src, std::shared_ptr< RandomAccess > dst)
Copy data from memory to a storage.
iolink::RegionCopier::operator=
RegionCopier & operator=(const RegionCopier &other)
Assignation operator.
iolink::RegionX
A Region using dynamic vectors.
Definition RegionX.h:14
iolink::VectorX
A dynamically sized arithmetic vector.
Definition VectorX.h:18
iolink
All IOLink symbols are enclosed in this namespace.
Definition ArrayX.h:8