#ifdef __cplusplus
#include <map>
#include <set>
+#include <vector>
#endif
#include "native/jni.hpp"
-#include "vm/class.h"
+#include "vm/class.hpp"
#include "vm/global.h"
#include "vm/loader.hpp"
-#include "vm/method.h"
+#include "vm/method.hpp"
#include "vm/os.hpp"
#include "vm/utf8.h"
bool is_loaded(NativeLibrary& library);
void* resolve_symbol(utf* symbolname, classloader_t* classloader);
};
-#endif
+#endif /* defined(ENABLE_DL) */
/**
void* find_registered_method(methodinfo* m);
};
+
+#if defined(ENABLE_JVMTI)
+/**
+ * Represents a registered native agent.
+ */
+class NativeAgent {
+private:
+ char* _library;
+ char* _options;
+
+public:
+ NativeAgent(char* library, char* options) : _library(library), _options(options) {}
+
+ char* get_library() const { return _library; }
+ char* get_options() const { return _options; }
+};
+
+
+/**
+ * Table containing all native agent libraries.
+ */
+class NativeAgents {
+private:
+ std::vector<NativeAgent> _agents;
+
+public:
+ void register_agent_library(char* library, char* options);
+ void register_agent_path(char* path, char* options);
+ bool load_agents();
+ bool unload_agents();
+};
+#endif /* defined(ENABLE_JVMTI) */
+
#endif
/* function prototypes ********************************************************/