forked from hughperkins/EasyCL
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCLIntWrapper.h
More file actions
49 lines (43 loc) · 1.39 KB
/
CLIntWrapper.h
File metadata and controls
49 lines (43 loc) · 1.39 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
// Copyright Hugh Perkins 2014 hughperkins at gmail
//
// This Source Code Form is subject to the terms of the Mozilla Public License,
// v. 2.0. If a copy of the MPL was not distributed with this file, You can
// obtain one at http://mozilla.org/MPL/2.0/.
#pragma once
#include <stdexcept>
#include "CLWrapper.h"
// this wraps an existing array, which we wont free, rather than creating a new array
// probably more efficient....
class CLIntWrapper : public CLWrapper {
protected:
int *hostarray; // NOT owned by this object, do NOT free :-)
public:
CLIntWrapper(int N, int *_hostarray, EasyCL *easycl) :
CLWrapper(N, easycl),
hostarray(_hostarray)
{
error = CL_SUCCESS;
onDevice = false;
}
CLIntWrapper(const CLIntWrapper &source) :
CLWrapper(0, 0), hostarray(0) { // copy constructor
throw std::runtime_error("can't assign these...");
}
CLIntWrapper &operator=(const CLIntWrapper &two) { // assignment operator
if(this == &two) { // self-assignment
return *this;
}
throw std::runtime_error("can't assign these...");
}
virtual ~CLIntWrapper() {
}
virtual int getElementSize() {
return sizeof(hostarray[0]);
}
virtual void *getHostArray() {
return hostarray;
}
virtual void const*getHostArrayConst() {
return hostarray;
}
};