ApraLinuxUtils 1.0.0
C++ utility library for embedded Linux systems
 
Loading...
Searching...
No Matches
ProcessThread.h
Go to the documentation of this file.
1/*
2 * ProcessThread.h
3 *
4 * Copyright (c) 2024 Apra Labs
5 *
6 * This file is part of ApraUtils.
7 *
8 * Licensed under the MIT License.
9 * See LICENSE file in the project root for full license information.
10 */
11
12#ifndef INCLUDES_APRA_PROCESSTHREAD_H_
13#define INCLUDES_APRA_PROCESSTHREAD_H_
14
15#include <sys/types.h>
16#include <pthread.h>
17#include <stdint.h>
18#include <sys/time.h>
19#include <unistd.h>
20#include <sys/syscall.h>
21#include <string>
22#include <queue>
23
24#include "models/Message.h"
25#include "utils/Mutex.h"
27
28using namespace std;
29
30namespace apra
31{
32
34{
35public:
36 ProcessThread(string name, int64_t freq = 0);
37 virtual ~ProcessThread();
38 void setType(THREAD_TYPE t);
39 int32_t begin();
40 virtual int32_t end();
41 virtual void process(Message *obj)=0;
42 bool shouldIquit();
43 string getName();
44 void enque(Message *p);
46 void setFPS(int64_t fps);
48
49protected:
50 int32_t mainLoop();
51 static void* beginProxy(void *arg);
52 void someFunction(bool &executedOnce);
53 void enqueResponse(Message *message);
54 void trimQueue(std::queue<Message*> &queue);
56 pthread_t m_threadID;
57 int64_t m_frequSec;
58 std::queue<Message*> m_requestQueue;
59 std::queue<Message*> m_responseQueue;
65};
66}
67
68#endif /* INCLUDES_APRA_PROCESSTHREAD_H_ */
void setType(THREAD_TYPE t)
void enqueResponse(Message *message)
std::queue< Message * > m_responseQueue
static void * beginProxy(void *arg)
void enque(Message *p)
THREAD_TYPE m_typeofThread
void someFunction(bool &executedOnce)
THREAD_TYPE getType()
virtual int32_t end()
std::queue< Message * > m_requestQueue
void setFPS(int64_t fps)
void trimQueue(std::queue< Message * > &queue)
virtual void process(Message *obj)=0
THREAD_TYPE
Definition ThreadType.h:18