MADARA  3.4.1
JavaBufferFilter.h
Go to the documentation of this file.
1 
2 
3 #ifndef _MADARA_FILTERS_JAVA_BUFFER_H_
4 #define _MADARA_FILTERS_JAVA_BUFFER_H_
5 
13 #ifdef _MADARA_JAVA_
14 #include <jni.h>
15 #include "madara_jni.h"
16 
17 #include <string>
18 
19 #include "madara/logger/Logger.h"
20 #include "madara/MadaraExport.h"
22 #include "../BufferFilter.h"
23 
24 namespace madara
25 {
26 namespace filters
27 {
32 class MADARA_EXPORT JavaBufferFilter : public BufferFilter
33 {
34 public:
38  JavaBufferFilter(logger::Logger& logger, jobject obj);
39 
43  virtual ~JavaBufferFilter();
44 
52  virtual int encode(char* source, int size, int max_size) const;
53 
61  virtual int decode(char* source, int size, int max_size) const;
62 
67  virtual std::string get_id(void);
68 
73  virtual uint32_t get_version(void);
74 
75 private:
76  // holds a reference to the Java object
77  jobject obj_;
78 
80  jclass class_;
81 
84 };
85 }
86 }
87 
88 #endif // _MADARA_JAVA_
89 
90 #endif // _MADARA_FILTERS_JAVA_BUFFER_H_
Abstract base class for implementing buffer filters via a functor interface.
Definition: BufferFilter.h:27
Filters a buffer in Java.
jclass class_
the class of the Java object obj_
logger::Logger * logger_
a logger
A multi-threaded logger for logging to one or more destinations.
Definition: Logger.h:165
constexpr string_t string
Provides knowledge logging services to files and terminals.
Definition: GlobalLogger.h:12
std::string get_version(void)
Gets the MADARA version number.
Definition: Utility.cpp:23
Copyright(c) 2020 Galois.