update readme
[c11concurrency-benchmarks.git] / mabain / src / error.cpp
1 /**
2  * Copyright (C) 2017 Cisco Inc.
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, version 2,
6  * as published by the Free Software Foundation.
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, see <http://www.gnu.org/licenses/>.
15  */
16
17 // @author Changxue Deng <chadeng@cisco.com>
18
19 #include "error.h"
20
21 namespace mabain {
22
23 const int MBError::MAX_ERROR_CODE = NO_DB;
24 const char* MBError::error_str[] = {
25     "success",
26     "no memory",
27     "out of bound",
28     "invalid argument",
29     "not initialized",
30     "no existence",
31     "found in DB",
32     "mmap failed",
33     "no permission",
34     "file open failure",
35     "file write error",
36     "file read error",
37     "size not right",
38     "try again",
39     "resource allocation error",
40     "mutex error",
41     "unknown error",
42     "writer already running",
43     "no resource available",
44     "database closed",
45     "buffer discarded", // buffer will be reclaimed by shrink
46     "failed to create thread",
47     "rc skipped",
48     "version mismatch",
49
50     ///////////////////////////////////
51     "DB not exist",
52 };
53
54 const char* MBError::get_error_str(int err)
55 {
56     if(err < 0)
57         return "db error";
58     else if(err > MAX_ERROR_CODE)
59         return "invalid error code";
60
61     return error_str[err];
62 }
63
64 }