Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Some new classes of CPP version of Msg
[simgrid.git] / src / cxx / InvalidArgumentException.cxx
1 #include <InvalidArgumentException.hpp>\r
2 \r
3 #include <string.h>\r
4 #include <stdlib.h>\r
5 #include <stdio.h>\r
6 \r
7 namespace SimGrid\r
8 {\r
9         namespace Msg\r
10         {\r
11                 \r
12                         InvalidArgumentException::InvalidArgumentException()\r
13                         {\r
14                                 this->reason = (char*) calloc(strlen("Invalid argument : unknown") + 1, sizeof(char));\r
15                                 strcpy(this->reason, "Invalid argument : unknown");\r
16                         }\r
17                 \r
18                 \r
19                         InvalidArgumentException::InvalidArgumentException(const InvalidArgumentException& rInvalidArgumentException)\r
20                         {\r
21                                 const char* reason = rInvalidArgumentException.toString();\r
22                                 this->reason = (char*) calloc(strlen(reason) + 1, sizeof(char));\r
23                                 strcpy(this->reason, reason);\r
24                                 \r
25                         }\r
26                 \r
27                 \r
28                         InvalidArgumentException::InvalidArgumentException(const char* name)\r
29                         {\r
30                                 this->reason = (char*) calloc(strlen("Invalid argument : ") + strlen(name) + 1, sizeof(char));\r
31                                 sprintf(this->reason, "Invalid argument : %s", name);\r
32                         }\r
33                 \r
34                 \r
35                         InvalidArgumentException::~InvalidArgumentException()\r
36                         {\r
37                                 if(this->reason)\r
38                                         free(this->reason);\r
39                         }\r
40                                 \r
41                         const char* InvalidArgumentException::toString(void) const\r
42                         {\r
43                                 return (const char*)(this->reason);     \r
44                         }\r
45                 \r
46                 \r
47                         const InvalidArgumentException& InvalidArgumentException::operator = (const InvalidArgumentException& rInvalidArgumentException)\r
48                         {\r
49                                 const char* reason = rInvalidArgumentException.toString();\r
50                                 this->reason = (char*) calloc(strlen(reason) + 1, sizeof(char));\r
51                                 \r
52                                 return *this;\r
53                         }\r
54                 \r
55         } // namespace Msg      \r
56 \r
57 }// namespace SimGrid\r
58 \r
59 \r
60 \r