42 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
		
		
			
		
	
	
			42 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
|  | #include "baza.h"
 | ||
|  | 
 | ||
|  | #include <errno.h>
 | ||
|  | #include <string.h>
 | ||
|  | 
 | ||
|  | namespace een9 { | ||
|  |     ServerError::ServerError(const std::string &err, const std::string &file, const std::string &func, int line): err(err), | ||
|  |        FILE(file), | ||
|  |        func(func), | ||
|  |        LINE(line) { | ||
|  |         char buf[4096]; | ||
|  |         snprintf(buf, 4096, "Error occured in function %s (line %d of %s)\n" | ||
|  |                  "Error: %s", | ||
|  |                  func.c_str(), LINE, FILE.c_str(), err.c_str()); | ||
|  |         WHAT = buf; | ||
|  |     } | ||
|  | 
 | ||
|  |     const char * ServerError::what() const noexcept { | ||
|  |         return WHAT.c_str(); | ||
|  |     } | ||
|  | 
 | ||
|  |     std::string prettyprint_errno(const std::string &pref) { | ||
|  |         const char* d = strerrorname_np(errno); | ||
|  |         return pref.empty() ? std::string(d) : std::string(pref) + ": " + d; | ||
|  |     } | ||
|  | 
 | ||
|  |     /* This function is VITAL */ | ||
|  |     bool strIn(const std::string &str, const char *arr[]) { | ||
|  |         for (const char** elPtr = arr; *elPtr != NULL; elPtr += 1) { | ||
|  |             if (str == (*elPtr)) | ||
|  |                 return true; | ||
|  |         } | ||
|  |         return false; | ||
|  |     } | ||
|  | 
 | ||
|  |     bool endsIn(const std::string &a, const std::string &b) { | ||
|  |         if (b.size() > a.size()) | ||
|  |             return false; | ||
|  |         return std::equal(a.end() - (ssize_t)b.size(), a.end(), b.begin()); | ||
|  |     } | ||
|  | } |