[project @ 2005-06-28 03:16:45 by unknown_lamer]
[clinton/bobotpp.git] / source / Utils.H
1 // Utils.H -*- C++ -*-
2 // Copyright (c) 1997, 1998 Etienne BERNARD
3 // Copyright (c) 2002,2005 Clinton Ebadi
4
5 // This program is free software; you can redistribute it and/or modify
6 // it under the terms of the GNU General Public License as published by
7 // the Free Software Foundation; either version 2 of the License, or
8 // any later version.
9
10 // This program is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 // GNU General Public License for more details.
14
15 // You should have received a copy of the GNU General Public License
16 // along with this program; if not, write to the Free Software
17 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
18
19 #ifndef UTILS_H
20 #define UTILS_H
21
22 #ifndef HAVE_CONFIG_H
23 #include "config.h"
24 #endif
25
26 #include <ctime>
27 #include <string>
28
29 #include "Bot.H"
30
31 #ifdef USESCRIPTS
32 #include <libguile.h>
33 #endif
34
35 namespace Utils {
36 std::string get_nick (std::string);
37 std::string get_userhost (std::string);
38 std::string get_key();
39
40 int get_level (Bot *, std::string);
41 int get_level (Bot *, std::string, std::string);
42
43 std::string make_wildcard (std::string);
44
45 // predicates
46 bool channel_p (std::string);
47 bool wildcard_p (std::string);
48 bool valid_channel_name_p (std::string);
49 bool valid_nickname_p (const Bot *, std::string);
50 bool IP_p (std::string);
51
52 std::string level2str (int);
53 std::string prot2str (int);
54 std::string bool2str (bool);
55 std::string long2str (long);
56
57 std::time_t str2time(std::string);
58
59 // string case conversion
60 std::string to_lower (std::string);
61 std::string to_upper (std::string);
62
63 std::string trim_str (std::string);
64
65 #ifdef USESCRIPTS
66 std::string scm2str (SCM);
67 SCM str2scm (std::string);
68 #endif
69 }
70
71 #endif