LoadableModule.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 1996-2023 The Squid Software Foundation and contributors
3  *
4  * Squid software is distributed under GPLv2+ license and includes
5  * contributions from numerous individuals and organizations.
6  * Please see the COPYING and CONTRIBUTORS files for details.
7  */
8 
9 #ifndef SQUID_SRC_LOADABLEMODULE_H
10 #define SQUID_SRC_LOADABLEMODULE_H
11 
12 #include "sbuf/SBuf.h"
13 
14 // wrapper for dlopen(3), libltdl, and friends
16 {
17 public:
18  explicit LoadableModule(const SBuf &aName);
19  ~LoadableModule(); // unloads if loaded
20 
21  bool loaded() const;
22  const auto &name() const { return theName; }
23  const auto &error() const { return theError; }
24 
25  void load(); // throws Texc
26  void unload(); // throws Texc
27 
28 protected:
31  void *theHandle = nullptr;
32 
33 private:
34  void *openModule();
35  bool closeModule();
36  const char *errorMsg();
37 };
38 
39 #endif /* SQUID_SRC_LOADABLEMODULE_H */
40 
Definition: SBuf.h:93
const auto & name() const
bool loaded() const
LoadableModule(const SBuf &aName)
const char * errorMsg()
const auto & error() const
void * openModule()

 

Introduction

Documentation

Support

Miscellaneous