Swarm-NG
1.1
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
runtime_error.hpp
Go to the documentation of this file.
1
/*************************************************************************
2
* Copyright (C) 2010 by Mario Juric and the Swarm-NG Development Team *
3
* *
4
* This program is free software; you can redistribute it and/or modify *
5
* it under the terms of the GNU General Public License as published by *
6
* the Free Software Foundation; either version 3 of the License. *
7
* *
8
* This program is distributed in the hope that it will be useful, *
9
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
10
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
11
* GNU General Public License for more details. *
12
* *
13
* You should have received a copy of the GNU General Public License *
14
* along with this program; if not, write to the *
15
* Free Software Foundation, Inc., *
16
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
17
************************************************************************/
18
26
#pragma once
27
#include <stdexcept>
28
#include <string>
29
#include <cuda_runtime_api.h>
30
31
namespace
swarm {
32
39
class
runtime_error
:
public
std::runtime_error
40
{
41
43
public
:
44
runtime_error
(
const
std::string &msg) :
std
::
runtime_error
(msg) {}
45
virtual
~
runtime_error
() throw() {};
46
};
47
48
#ifndef THROW_IS_ABORT
49
#define ERROR(msg) throw swarm::runtime_error(msg);
50
#else
51
#define ERROR(msg) { fprintf(stderr, "%s\n", std::string(msg).c_str()); abort(); }
52
#endif
53
}
54
58
struct
cudaException
:
public
swarm::runtime_error
59
{
61
cudaException
(cudaError err) : swarm::
runtime_error
( cudaGetErrorString(err) ) {}
62
64
static
void
check
(cudaError err,
const
char
*fun,
const
char
*file,
const
int
line) {
65
if
(err != cudaSuccess)
66
throw
cudaException
(err);
67
}
68
};
72
#define cudaErrCheck(expr) \
73
cudaException::check(expr, __PRETTY_FUNCTION__, __FILE__, __LINE__)
74
swarm
src
swarm
runtime_error.hpp
Generated on Sun Jul 21 2013 11:11:54 for Swarm-NG by
1.8.4