ObjFW
Loading...
Searching...
No Matches
OFPlugin.h
1/*
2 * Copyright (c) 2008-2024 Jonathan Schleifer <js@nil.im>
3 *
4 * All rights reserved.
5 *
6 * This program is free software: you can redistribute it and/or modify it
7 * under the terms of the GNU Lesser General Public License version 3.0 only,
8 * as published by the Free Software Foundation.
9 *
10 * This program is distributed in the hope that it will be useful, but WITHOUT
11 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
13 * version 3.0 for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public License
16 * version 3.0 along with this program. If not, see
17 * <https://www.gnu.org/licenses/>.
18 */
19
20#import "OFObject.h"
21
22@class OFString;
23
24#ifndef OF_WINDOWS
25# include <dlfcn.h>
26typedef void *OFPluginHandle;
27#else
28# include <windows.h>
29typedef HMODULE OFPluginHandle;
30#endif
31
32OF_ASSUME_NONNULL_BEGIN
33
40OF_SUBCLASSING_RESTRICTED
41@interface OFPlugin: OFObject
42{
43 OFPluginHandle _handle;
44}
45
58+ (OFString *)pathForName: (OFString *)name;
59
68+ (instancetype)pluginWithPath: (nullable OFString *)path;
69
79- (instancetype)initWithPath: (nullable OFString *)path;
80
87- (nullable void *)addressForSymbol: (OFString *)symbol;
88@end
89
90OF_ASSUME_NONNULL_END
The root class for all other classes inside ObjFW.
Definition OFObject.h:692
A class representing a loaded plugin (shared library).
Definition OFPlugin.h:42
A class for handling strings.
Definition OFString.h:143