summaryrefslogtreecommitdiff
path: root/server-tools/instance-manager/manager.h
diff options
context:
space:
mode:
Diffstat (limited to 'server-tools/instance-manager/manager.h')
-rw-r--r--server-tools/instance-manager/manager.h45
1 files changed, 43 insertions, 2 deletions
diff --git a/server-tools/instance-manager/manager.h b/server-tools/instance-manager/manager.h
index 7aa4b3e1a96..a77809cca6d 100644
--- a/server-tools/instance-manager/manager.h
+++ b/server-tools/instance-manager/manager.h
@@ -16,8 +16,49 @@
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-void manager();
+#if defined(__GNUC__) && defined(USE_PRAGMA_INTERFACE)
+#pragma interface
+#endif
+#include <my_global.h>
-int create_pid_file(const char *pid_file_name, int pid);
+class Guardian;
+class Instance_map;
+class Thread_registry;
+class User_map;
+
+class Manager
+{
+public:
+ static int main();
+ /**
+ These methods return a non-zero value only for the duration
+ of main().
+ */
+ static Instance_map *get_instance_map() { return p_instance_map; }
+ static Guardian *get_guardian() { return p_guardian; }
+ static Thread_registry *get_thread_registry() { return p_thread_registry; }
+ static User_map *get_user_map() { return p_user_map; }
+
+#ifndef __WIN__
+ static bool is_linux_threads() { return linux_threads; }
+#endif // __WIN__
+
+private:
+ static void stop_all_threads();
+
+private:
+ static Guardian *p_guardian;
+ static Instance_map *p_instance_map;
+ static Thread_registry *p_thread_registry;
+ static User_map *p_user_map;
+
+#ifndef __WIN__
+ /*
+ This flag is set if Instance Manager is running on the system using
+ LinuxThreads.
+ */
+ static bool linux_threads;
+#endif // __WIN__
+};
#endif // INCLUDES_MYSQL_INSTANCE_MANAGER_MANAGER_H