plebble
gc.h
Go to the documentation of this file.
1 /*
2 -------------------------------------------------------------------------------
3  PLEBBLE
4 -------------------------------------------------------------------------------
5  Copyright (C) 2019-2020 KATLAS Technology. (http://katlastechnology.com)
6  Copyright (C) 2017-2020 Marcos Mayorga. (mm@mm-studios.com)
7 
8  This file is part of our Plebble(R) Platform.
9 
10  The code below cannot be copied, used for any purpose other than the one
11  agreed and/or distributed without the express permission of
12  KATLAS Technology.
13 -------------------------------------------------------------------------------
14 
15 
16 */
17 #ifndef USGOV_4777e52adfd9a97bda0170c3b9ccc3587be4acafd552961e8a2de638c8e8b482
18 #define USGOV_4777e52adfd9a97bda0170c3b9ccc3587be4acafd552961e8a2de638c8e8b482
19 
20 #include <string>
21 #include <unordered_set>
22 #include <us/gov/bgtask.h>
23 #include <us/gov/config.h>
24 
25 namespace us { namespace gov {
26 namespace socket {
27 
28  struct client;
29 
30  struct gc_t final:unordered_set<client*>, wbgtask {
31  typedef wbgtask t;
32  gc_t();
33  ~gc_t();
34  void add_(client*);
35  void dump(ostream&) const;
36  void clear();
37  void task_init() override;
38  void task() override;
39  void task_cleanup() override;
40  void collect() override;
41  void onwakeup();
42  mutable mutex mx;
43  condition_variable cv;
44  #if CFG_LOGS==1
45  string logdir;
46  #endif
47  };
48 
49 }
50 }}
51 
52 #endif
53 
us::gov::socket::gc_t::onwakeup
void onwakeup()
us::gov::socket::gc_t::cv
condition_variable cv
Definition: gc.h:43
us::gov::socket::gc_t::dump
void dump(ostream &) const
bgtask.h
gc.h
us::gov::socket::client
Definition: client.h:44
us::gov::socket::gc_t::mx
mutex mx
Definition: gc.h:42
log_start
#define log_start
Definition: gov.h:85
us
Definition: daemon.h:22
us::gov::wbgtask
Definition: bgtask.h:67
us::gov::socket::gc_t::gc_t
gc_t()
us::gov::socket
Definition: busyled.h:23
us::gov::socket::gc_t::clear
void clear()
us::gov::socket::gc_t::task_cleanup
void task_cleanup() override
us::gov::socket::gc_t::task
void task() override
us::gov::socket::gc_t::collect
void collect() override
us::gov::socket::gc_t::~gc_t
~gc_t()
us::gov::socket::gc_t::t
wbgtask t
Definition: gc.h:31
c
Definition: client.cpp:417
std
Definition: app.h:380
c
us::gov::socket::gc_t c
Definition: gc.cpp:25
config.h
us::gov::socket::gc_t::task_init
void task_init() override
us::gov::socket::gc_t
Definition: gc.h:30
gov.h
client.h
log
#define log
Definition: gov.h:83
us::gov::socket::gc_t::add_
void add_(client *)