add destroy function

This commit is contained in:
2025-09-21 19:24:01 +05:30
parent aa3bd82194
commit 0a27d5a520
2 changed files with 13 additions and 1 deletions

View File

@ -9,7 +9,7 @@ BpfProgram::BpfProgram(std::string object_path, std::string program_name)
} }
BpfProgram::~BpfProgram() { BpfProgram::~BpfProgram() {
//TODO: detach here as well destroy();
if (obj_) { if (obj_) {
bpf_object__close(obj_); bpf_object__close(obj_);
} }
@ -64,6 +64,17 @@ bool BpfProgram::attach() {
return true; return true;
} }
bool BpfProgram::destroy() {
bool success = true;
for (auto [prog, link] : programs) {
if (!prog) {
throw BpfException("Program not loaded");
}
success = success & bpf_link__destroy(link);
}
return success;
}
void BpfProgram::load_and_attach() { void BpfProgram::load_and_attach() {
load(); load();
attach(); attach();

View File

@ -21,6 +21,7 @@ public:
bool load(); bool load();
bool attach(); bool attach();
bool destroy();
void load_and_attach(); void load_and_attach();
[[nodiscard]] bool is_loaded() const { return obj_ != nullptr; } [[nodiscard]] bool is_loaded() const { return obj_ != nullptr; }