blob: 5fbed92402b5aa61b82916cf937452083b7ee220 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
// vim:sw=2:ai
/*
* Copyright (C) 2010 DeNA Co.,Ltd.. All rights reserved.
* See COPYRIGHT.txt for details.
*/
#ifndef DENA_HSTCPSVR_HPP
#define DENA_HSTCPSVR_HPP
#include <memory>
#include <string>
#include <map>
#include "mutex.hpp"
#include "auto_file.hpp"
#include "database.hpp"
#include "config.hpp"
#include "socket.hpp"
namespace dena {
struct hstcpsvr_shared_c {
config conf;
long num_threads;
long nb_conn_per_thread;
bool for_write_flag;
bool require_auth;
std::string plain_secret;
int readsize;
socket_args sockargs;
auto_file listen_fd;
database_ptr dbptr;
volatile unsigned int *thread_num_conns; /* 0 .. num_threads-1 */
hstcpsvr_shared_c() : num_threads(0), nb_conn_per_thread(100),
for_write_flag(false), require_auth(false), readsize(0),
thread_num_conns(0) { }
};
struct hstcpsvr_shared_v : public mutex {
int shutdown;
hstcpsvr_shared_v() : shutdown(0) { }
};
struct hstcpsvr_i;
typedef std::auto_ptr<hstcpsvr_i> hstcpsvr_ptr;
struct hstcpsvr_i {
virtual ~hstcpsvr_i() = default;
virtual std::string start_listen() = 0;
static hstcpsvr_ptr create(const config& conf);
};
};
#endif
|