~drizzle-trunk/drizzle/development

1152.1.5 by Brian Aker
Remove Factory/make scheduler work like everything else.
1
/* Copyright (C) 2009 Sun Microsystems
2
3
  This program is free software; you can redistribute it and/or modify
4
  it under the terms of the GNU General Public License as published by
5
  the Free Software Foundation; version 2 of the License.
6
7
  This program is distributed in the hope that it will be useful,
8
  but WITHOUT ANY WARRANTY; without even the implied warranty of
9
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
10
  GNU General Public License for more details.
11
12
  You should have received a copy of the GNU General Public License
13
  along with this program; if not, write to the Free Software
1802.10.2 by Monty Taylor
Update all of the copyright headers to include the correct address.
14
  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA */
1152.1.5 by Brian Aker
Remove Factory/make scheduler work like everything else.
15
1130.3.21 by Monty Taylor
Added missing include guards. Removed server_includes.h from header.
16
#ifndef PLUGIN_MULTI_THREAD_MULTI_THREAD_H
17
#define PLUGIN_MULTI_THREAD_MULTI_THREAD_H
18
1152.1.5 by Brian Aker
Remove Factory/make scheduler work like everything else.
19
#include <drizzled/atomics.h>
20
#include <drizzled/gettext.h>
21
#include <drizzled/error.h>
22
#include <drizzled/plugin/scheduler.h>
1241.9.64 by Monty Taylor
Moved remaining non-public portions of mysys and mystrings to drizzled/internal.
23
#include "drizzled/internal/my_sys.h"
1152.1.5 by Brian Aker
Remove Factory/make scheduler work like everything else.
24
#include <drizzled/sql_parse.h>
25
#include <drizzled/session.h>
26
#include <string>
27
28
class MultiThreadScheduler: public drizzled::plugin::Scheduler
29
{
30
private:
31
  drizzled::atomic<uint32_t> thread_count;
32
33
public:
34
  MultiThreadScheduler(const char *name_arg): 
35
    Scheduler(name_arg)
36
  {
1782 by Brian Aker
This modifies our thread system to be based on boost, and it fixes a
37
    setStackSize();
1152.1.5 by Brian Aker
Remove Factory/make scheduler work like everything else.
38
    thread_count= 0;
39
  }
40
41
  ~MultiThreadScheduler();
1280.1.10 by Monty Taylor
Put everything in drizzled into drizzled namespace.
42
  bool addSession(drizzled::Session *session);
43
  void killSessionNow(drizzled::Session *session);
1152.1.5 by Brian Aker
Remove Factory/make scheduler work like everything else.
44
  
1782 by Brian Aker
This modifies our thread system to be based on boost, and it fixes a
45
  void runSession(drizzled::Session *session);
46
private:
47
  void setStackSize();
1152.1.5 by Brian Aker
Remove Factory/make scheduler work like everything else.
48
};
1130.3.21 by Monty Taylor
Added missing include guards. Removed server_includes.h from header.
49
50
#endif /* PLUGIN_MULTI_THREAD_MULTI_THREAD_H */