//--STRIP
#ifndef LOGGER_H
#define LOGGER_H
//--STRIP

class String;

class RLogger {
public:
	static void print_trace(const String &str);
	static void print_trace(const char *str);
	static void print_trace(const char *p_function, const char *p_file, int p_line, const String &str);
	static void print_trace(const char *p_function, const char *p_file, int p_line, const char *str);

	static void print_message(const String &str);
	static void print_message(const char *str);
	static void print_message(const char *p_function, const char *p_file, int p_line, const String &str);
	static void print_message(const char *p_function, const char *p_file, int p_line, const char *str);

	static void print_warning(const String &str);
	static void print_warning(const char *str);
	static void print_warning(const char *p_function, const char *p_file, int p_line, const String &str);
	static void print_warning(const char *p_function, const char *p_file, int p_line, const char *str);

	static void print_error(const String &str);
	static void print_error(const char *str);
	static void print_error(const char *p_function, const char *p_file, int p_line, const char *str);
	static void print_error(const char *p_function, const char *p_file, int p_line, const String &str);
	static void print_msg_error(const char *p_function, const char *p_file, int p_line, const char *p_msg, const char *str);
	static void print_index_error(const char *p_function, const char *p_file, int p_line, const int index, const int size, const char *str);

	static void log_trace(const String &str);
	static void log_trace(const char *str);
	static void log_trace(const char *p_function, const char *p_file, int p_line, const String &str);
	static void log_trace(const char *p_function, const char *p_file, int p_line, const char *str);

	static void log_message(const String &str);
	static void log_message(const char *str);
	static void log_message(const char *p_function, const char *p_file, int p_line, const String &str);
	static void log_message(const char *p_function, const char *p_file, int p_line, const char *str);

	static void log_warning(const String &str);
	static void log_warning(const char *str);
	static void log_warning(const char *p_function, const char *p_file, int p_line, const String &str);
	static void log_warning(const char *p_function, const char *p_file, int p_line, const char *str);

	static void log_error(const String &str);
	static void log_error(const char *str);
	static void log_error(const char *p_function, const char *p_file, int p_line, const char *str);
	static void log_error(const char *p_function, const char *p_file, int p_line, const String &str);
	static void log_msg_error(const char *p_function, const char *p_file, int p_line, const char *p_msg, const char *str);
	static void log_index_error(const char *p_function, const char *p_file, int p_line, const int index, const int size, const char *str);
	static void log_index_error(const char *p_function, const char *p_file, int p_line, const int index, const int size, const String &str);

	static String *get_string_ptr(const int p_default_size = 100);
	static String *get_string_ptr(const char *p_function, const char *p_file, int p_line, const int p_default_size = 300);
	static String *get_string_ptr(const char *p_prefix, const char *p_function, const char *p_file, int p_line, const int p_default_size = 300);
	static void return_string_ptr(String *str);

	static String *get_trace_string_ptr(const int p_default_size = 100);
	static String *get_message_string_ptr(const int p_default_size = 100);
	static String *get_warning_string_ptr(const int p_default_size = 100);
	static String *get_error_string_ptr(const int p_default_size = 100);

	static String *get_trace_string_ptr(const char *p_function, const char *p_file, int p_line, const int p_default_size = 300);
	static String *get_message_string_ptr(const char *p_function, const char *p_file, int p_line, const int p_default_size = 300);
	static String *get_warning_string_ptr(const char *p_function, const char *p_file, int p_line, const int p_default_size = 300);
	static String *get_error_string_ptr(const char *p_function, const char *p_file, int p_line, const int p_default_size = 300);

	static void log_ptr(String *str);
	static void log_ret_ptr(String *str);
};

//--STRIP
#endif
//--STRIP
