33
44// ---------------------------------------------------------------------
55
6- JobAsync::JobAsync (const std::string &sName ) {
6+ WSJCppAsyncJob::WSJCppAsyncJob (const std::string &sName ) {
77 m_sName = sName ;
88}
99
1010// ---------------------------------------------------------------------
1111
12- const std::string &JobAsync ::name () {
12+ const std::string &WSJCppAsyncJob ::name () {
1313 return m_sName;
1414}
1515
1616// ---------------------------------------------------------------------
1717
18- JobAsync * JobAsyncDeque ::pop () {
18+ WSJCppAsyncJob * WSJCppAsyncJobDeque ::pop () {
1919 std::lock_guard<std::mutex> guard (this ->m_mtxJobsAsyncDeque );
20- JobAsync *pJobAsync = nullptr ;
20+ WSJCppAsyncJob *pJobAsync = nullptr ;
2121 int nSize = m_dequeJobsAsync.size ();
2222 if (nSize > 0 ) {
2323 pJobAsync = m_dequeJobsAsync.back ();
@@ -28,7 +28,7 @@ JobAsync *JobAsyncDeque::pop() {
2828
2929// ----------------------------------------------------------------------
3030
31- void JobAsyncDeque ::push (JobAsync *pJobAsync) {
31+ void WSJCppAsyncJobDeque ::push (WSJCppAsyncJob *pJobAsync) {
3232 std::lock_guard<std::mutex> guard (this ->m_mtxJobsAsyncDeque );
3333 if (m_dequeJobsAsync.size () > 20 ) {
3434 WSJCppLog::warn (TAG , " deque more than " + std::to_string (m_dequeJobsAsync.size ()));
@@ -38,7 +38,7 @@ void JobAsyncDeque::push(JobAsync *pJobAsync) {
3838
3939// ----------------------------------------------------------------------
4040
41- void JobAsyncDeque ::cleanup () {
41+ void WSJCppAsyncJobDeque ::cleanup () {
4242 std::lock_guard<std::mutex> guard (this ->m_mtxJobsAsyncDeque );
4343 while (m_dequeJobsAsync.size () > 0 ) {
4444 delete m_dequeJobsAsync.back ();
@@ -48,7 +48,7 @@ void JobAsyncDeque::cleanup() {
4848
4949// ----------------------------------------------------------------------
5050
51- bool JobAsyncDeque ::isEmpty () {
51+ bool WSJCppAsyncJobDeque ::isEmpty () {
5252 std::lock_guard<std::mutex> guard (this ->m_mtxJobsAsyncDeque );
5353 bool bRet = m_dequeJobsAsync.size () == 0 ;
5454 return bRet;
@@ -57,16 +57,16 @@ bool JobAsyncDeque::isEmpty() {
5757// ----------------------------------------------------------------------
5858
5959void * processJobsThreadWorker (void *arg) {
60- JobsThreadWorker *pWorker = (JobsThreadWorker *)arg;
60+ WSJCppAsyncJobsThreadWorker *pWorker = (WSJCppAsyncJobsThreadWorker *)arg;
6161 pthread_detach (pthread_self ());
6262 pWorker->run ();
6363 return 0 ;
6464}
6565
6666// ----------------------------------------------------------------------
6767
68- JobsThreadWorker::JobsThreadWorker (const std::string &sName , JobAsyncDeque *pDeque) {
69- TAG = " JobsThreadWorker -" + sName ;
68+ WSJCppAsyncJobsThreadWorker::WSJCppAsyncJobsThreadWorker (const std::string &sName , WSJCppAsyncJobDeque *pDeque) {
69+ TAG = " WSJCppAsyncJobsThreadWorker -" + sName ;
7070 m_pDeque = pDeque;
7171 m_bStop = false ;
7272 m_bBuzy = false ;
@@ -75,32 +75,32 @@ JobsThreadWorker::JobsThreadWorker(const std::string &sName, JobAsyncDeque *pDeq
7575
7676// ----------------------------------------------------------------------
7777
78- void JobsThreadWorker ::start () {
78+ void WSJCppAsyncJobsThreadWorker ::start () {
7979 m_bStop = false ;
8080 pthread_create (&m_threadWorker, NULL , &processJobsThreadWorker, (void *)this );
8181}
8282
8383// ----------------------------------------------------------------------
8484
85- void JobsThreadWorker ::stop () {
85+ void WSJCppAsyncJobsThreadWorker ::stop () {
8686 m_bStop = true ;
8787}
8888
8989// ----------------------------------------------------------------------
9090
91- bool JobsThreadWorker ::isBuzy () {
91+ bool WSJCppAsyncJobsThreadWorker ::isBuzy () {
9292 return m_bBuzy;
9393}
9494
9595// ----------------------------------------------------------------------
9696
97- void JobsThreadWorker ::run () {
97+ void WSJCppAsyncJobsThreadWorker ::run () {
9898 while (1 ) {
9999 if (m_bStop) {
100100 m_bBuzy = false ;
101101 return ;
102102 }
103- JobAsync *pJobAsync = m_pDeque->pop ();
103+ WSJCppAsyncJob *pJobAsync = m_pDeque->pop ();
104104 while (pJobAsync != nullptr ) {
105105 m_bBuzy = true ;
106106 pJobAsync->run (TAG );
@@ -122,93 +122,93 @@ void JobsThreadWorker::run() {
122122
123123// ----------------------------------------------------------------------
124124
125- JobAsyncDeque *g_pJobsFastPool = nullptr ;
126- std::vector<JobsThreadWorker *> *g_vJobsFastWorkers = nullptr ;
127- int g_nMaxJobFastWorker = 2 ;
125+ WSJCppAsyncJobDeque *g_pWSJCppAsyncJobsFastPool = nullptr ;
126+ std::vector<WSJCppAsyncJobsThreadWorker *> *g_vWSJCppAsyncJobsFastWorkers = nullptr ;
127+ int g_nMaxWSJCppAsyncJobFastWorker = 2 ;
128128
129- void JobsPool ::initGlobalVariables () {
130- if (g_pJobsFastPool == nullptr ) {
131- g_pJobsFastPool = new JobAsyncDeque ();
129+ void WSJCppAsyncJobsPool ::initGlobalVariables () {
130+ if (g_pWSJCppAsyncJobsFastPool == nullptr ) {
131+ g_pWSJCppAsyncJobsFastPool = new WSJCppAsyncJobDeque ();
132132 }
133- if (g_vJobsFastWorkers == nullptr ) {
134- g_vJobsFastWorkers = new std::vector<JobsThreadWorker *>();
133+ if (g_vWSJCppAsyncJobsFastWorkers == nullptr ) {
134+ g_vWSJCppAsyncJobsFastWorkers = new std::vector<WSJCppAsyncJobsThreadWorker *>();
135135 // 2 threads default
136- for (int i = 0 ; i < g_nMaxJobFastWorker ; i++) {
137- g_vJobsFastWorkers ->push_back (new JobsThreadWorker (" fast-worker" + std::to_string (i), g_pJobsFastPool ));
136+ for (int i = 0 ; i < g_nMaxWSJCppAsyncJobFastWorker ; i++) {
137+ g_vWSJCppAsyncJobsFastWorkers ->push_back (new WSJCppAsyncJobsThreadWorker (" fast-worker" + std::to_string (i), g_pWSJCppAsyncJobsFastPool ));
138138 }
139139 }
140140}
141141
142142// ----------------------------------------------------------------------
143143
144144 // Two queue for fast jobs
145- void JobsPool ::addJobFast (JobAsync *pJobAsync) {
146- JobsPool ::initGlobalVariables ();
147- g_pJobsFastPool ->push (pJobAsync);
145+ void WSJCppAsyncJobsPool ::addJobFast (WSJCppAsyncJob *pJobAsync) {
146+ WSJCppAsyncJobsPool ::initGlobalVariables ();
147+ g_pWSJCppAsyncJobsFastPool ->push (pJobAsync);
148148}
149149
150150// ----------------------------------------------------------------------
151151
152152// Long time jobs like a send a lot of emails and etc...
153153// better keep this list of jobs to storage
154- void JobsPool ::addJobSlow (JobAsync *pJobAsync) {
155- JobsPool ::initGlobalVariables ();
156- WSJCppLog::warn (" JobsPool " , " addJobSlow not implemented yet" );
154+ void WSJCppAsyncJobsPool ::addJobSlow (WSJCppAsyncJob *pJobAsync) {
155+ WSJCppAsyncJobsPool ::initGlobalVariables ();
156+ WSJCppLog::warn (" WSJCppAsyncJobsPool " , " addJobSlow not implemented yet" );
157157 // g_pJobsLong->push(pJobAsync);
158158}
159159
160160// ----------------------------------------------------------------------
161161
162162// jobs with delay
163- void JobsPool ::addJobDelay (int nMilliseconds, JobAsync *pJobAsync) {
164- JobsPool ::initGlobalVariables ();
165- WSJCppLog::warn (" JobsPool " , " addJobDelay not implemented yet" );
163+ void WSJCppAsyncJobsPool ::addJobDelay (int nMilliseconds, WSJCppAsyncJob *pJobAsync) {
164+ WSJCppAsyncJobsPool ::initGlobalVariables ();
165+ WSJCppLog::warn (" WSJCppAsyncJobsPool " , " addJobDelay not implemented yet" );
166166 // g_pJobsShort->push(pJobAsync);
167167}
168168
169169// ----------------------------------------------------------------------
170170
171171// jobs by cron, for example every 5 minutes execute some job
172- void JobsPool::addJobCron (JobSchedule *pJobSchedule, JobAsync *pJobAsync) {
173- JobsPool ::initGlobalVariables ();
174- WSJCppLog::warn (" JobsPool " , " addJobCron not implemented yet" );
172+ void WSJCppAsyncJobsPool::addJobShedule (WSJCppAsyncJobSchedule *pJobSchedule, WSJCppAsyncJob *pJobAsync) {
173+ WSJCppAsyncJobsPool ::initGlobalVariables ();
174+ WSJCppLog::warn (" WSJCppAsyncJobsPool " , " addJobShedule not implemented yet" );
175175 // g_pJobsShort->push(pJobAsync);
176176}
177177
178178// ----------------------------------------------------------------------
179179
180- void JobsPool ::stop () {
181- JobsPool ::initGlobalVariables ();
182- for (int i = 0 ; i < g_vJobsFastWorkers ->size (); i++) {
183- g_vJobsFastWorkers ->at (i)->stop ();
180+ void WSJCppAsyncJobsPool ::stop () {
181+ WSJCppAsyncJobsPool ::initGlobalVariables ();
182+ for (int i = 0 ; i < g_vWSJCppAsyncJobsFastWorkers ->size (); i++) {
183+ g_vWSJCppAsyncJobsFastWorkers ->at (i)->stop ();
184184 }
185185}
186186
187187// ----------------------------------------------------------------------
188188
189- void JobsPool ::start () {
190- JobsPool ::initGlobalVariables ();
191- for (int i = 0 ; i < g_vJobsFastWorkers ->size (); i++) {
192- g_vJobsFastWorkers ->at (i)->start ();
189+ void WSJCppAsyncJobsPool ::start () {
190+ WSJCppAsyncJobsPool ::initGlobalVariables ();
191+ for (int i = 0 ; i < g_vWSJCppAsyncJobsFastWorkers ->size (); i++) {
192+ g_vWSJCppAsyncJobsFastWorkers ->at (i)->start ();
193193 }
194194 // TODO slow
195195 // TODO thread for cron and delay
196196}
197197
198198// ----------------------------------------------------------------------
199199
200- void JobsPool ::waitForDone () {
200+ void WSJCppAsyncJobsPool ::waitForDone () {
201201 // TODO when job in progress need wait deque for progress jobs ?
202- JobsPool ::initGlobalVariables ();
202+ WSJCppAsyncJobsPool ::initGlobalVariables ();
203203 bool bBuzy = true ;
204204 while (bBuzy) {
205205 bBuzy = false ;
206206 std::this_thread::sleep_for (std::chrono::milliseconds (100 ));
207- if (!g_pJobsFastPool ->isEmpty ()) {
207+ if (!g_pWSJCppAsyncJobsFastPool ->isEmpty ()) {
208208 bBuzy = true ;
209209 }
210- for (int i = 0 ; i < g_vJobsFastWorkers ->size (); i++) {
211- if (g_vJobsFastWorkers ->at (i)->isBuzy ()) {
210+ for (int i = 0 ; i < g_vWSJCppAsyncJobsFastWorkers ->size (); i++) {
211+ if (g_vWSJCppAsyncJobsFastWorkers ->at (i)->isBuzy ()) {
212212 bBuzy = true ;
213213 }
214214 }
@@ -217,8 +217,8 @@ void JobsPool::waitForDone() {
217217
218218// ----------------------------------------------------------------------
219219
220- void JobsPool ::cleanup () {
221- g_pJobsFastPool ->cleanup ();
220+ void WSJCppAsyncJobsPool ::cleanup () {
221+ g_pWSJCppAsyncJobsFastPool ->cleanup ();
222222 // TODO slow
223223 // TODO thread for cron and delay
224224}
0 commit comments