Lua: Fix type confusion between signed and unsigned
[lsnes.git] / include / library / urirewrite.hpp
blobbfc009fa8c19185b1eea80124621cd32d553667c
1 #ifndef _library__urirewrite__hpp__included__
2 #define _library__urirewrite__hpp__included__
4 #include <set>
5 #include <string>
6 #include <map>
7 #include "threads.hpp"
9 namespace urirewrite
11 class rewriter
13 public:
14 /**
15 * Get set of known schemes.
17 * Returns: The known schemes.
19 std::set<std::string> get_schemes();
20 /**
21 * Delete rewrite pattern.
23 * Parameter scheme: The scheme to delete.
25 void delete_rewrite(const std::string& scheme);
26 /**
27 * Set rewrite pattern
29 * Parameter scheme: The scheme to rewrite.
30 * Parameter pattern: The target pattern to rewrite to.
32 void set_rewrite(const std::string& scheme, const std::string& pattern);
33 /**
34 * Get rewrite pattern
36 * Parameter scheme: The scheme to rewrite.
37 * Returns: The current rewrite pattern.
38 * Throws std::runtime_error: No pattern for scheme.
40 std::string get_rewrite(const std::string& scheme);
41 /**
42 * Rewrite URI.
44 * Parameter uri: The URI to rewrite.
45 * Returns: The rewritten URI.
47 std::string operator()(const std::string& uri);
48 /**
49 * Save URI rewrite patterns to file.
51 * Parameter filename: The name of the file.
53 void save(const std::string& filename);
54 /**
55 * Load URI rewrite pattern from file.
57 * Parameter filename: The name of the file.
59 void load(const std::string& filename);
60 private:
61 threads::lock mlock;
62 std::map<std::string, std::string> rewrites;
66 #endif