MADARA  3.4.1
JavaThread.h
Go to the documentation of this file.
1 
2 
3 #ifndef _MADARA_THREADS_JAVA_THREAD_H_
4 #define _MADARA_THREADS_JAVA_THREAD_H_
5 
6 #ifdef _MADARA_JAVA_
15 #include <jni.h>
16 #include "madara_jni.h"
17 
19 
20 namespace madara
21 {
22 namespace threads
23 {
27 class JavaThread : public BaseThread
28 {
29 public:
33  ~JavaThread();
34 
38  void operator=(const JavaThread& rhs);
39 
44  virtual void init(knowledge::KnowledgeBase& context);
45 
49  virtual void run(void);
50 
54  virtual void cleanup(void);
55 
61  static JavaThread* create(jobject obj);
62 
68  bool check_compliance(jobject obj);
69 
70 protected:
74  JavaThread();
75 
80  virtual void init_control_vars(knowledge::KnowledgeBase& control);
81 
83  jobject obj_;
84 
86  jclass class_;
87 
89  jmethodID run_method_;
90 
92  jmethodID init_method_;
93 
95  jmethodID cleanup_method_;
96 };
97 }
98 }
99 
100 #endif // _MADARA_JAVA_
101 #endif // _MADARA_THREADS_JAVA_THREAD_H_
This class provides a distributed knowledge base to users.
Definition: KnowledgeBase.h:45
Abstract base class for implementing threads.
Definition: BaseThread.h:39
A facade for a user-defined Java thread class.
Definition: JavaThread.h:28
virtual void init(knowledge::KnowledgeBase &context)
Initializes Java thread with MADARA context.
Definition: JavaThread.cpp:88
jmethodID cleanup_method_
handle to the cleanup method
Definition: JavaThread.h:95
jmethodID init_method_
handle to the init method
Definition: JavaThread.h:92
void operator=(const JavaThread &rhs)
Assignment operator.
Definition: JavaThread.cpp:33
jclass class_
the class of the Java object obj_
Definition: JavaThread.h:86
static JavaThread * create(jobject obj)
Creates a JavaThread.
Definition: JavaThread.cpp:120
virtual void run(void)
Executes the Java thread's logic.
Definition: JavaThread.cpp:62
virtual void init_control_vars(knowledge::KnowledgeBase &control)
Initializes the Java thread implementation's control plane variables.
Definition: JavaThread.cpp:237
bool check_compliance(jobject obj)
Checks a Java object for compliance with ai.madara.threads.BaseThread.
Definition: JavaThread.cpp:133
virtual void cleanup(void)
Calls the Java cleanup method.
Definition: JavaThread.cpp:75
jmethodID run_method_
handle to the run method
Definition: JavaThread.h:89
jobject obj_
the Java thread implementation of ai.madara.threads.BaseThread
Definition: JavaThread.h:83
Provides a quality-of-service-enabled threading library.
Definition: BaseThread.h:28
Copyright(c) 2020 Galois.