DDraceNetwork Documentation
Loading...
Searching...
No Matches
favorites.h
Go to the documentation of this file.
1#ifndef ENGINE_FAVORITES_H
2#define ENGINE_FAVORITES_H
3
4#include "kernel.h"
5
6#include <base/types.h>
7
9
10#include <memory>
11
12class IConfigManager;
13
14class IFavorites : public IInterface
15{
16 MACRO_INTERFACE("favorites")
17
18protected:
19 virtual void OnConfigSave(IConfigManager *pConfigManager) = 0;
20
21public:
29
30 virtual TRISTATE IsFavorite(const NETADDR *pAddrs, int NumAddrs) const = 0;
31 // Only considers the addresses that are actually favorites.
32 virtual TRISTATE IsPingAllowed(const NETADDR *pAddrs, int NumAddrs) const = 0;
33 virtual void Add(const NETADDR *pAddrs, int NumAddrs) = 0;
34 // Only considers the addresses that are actually favorites.
35 virtual void AllowPing(const NETADDR *pAddrs, int NumAddrs, bool AllowPing) = 0;
36 virtual void Remove(const NETADDR *pAddrs, int NumAddrs) = 0;
37 virtual void AllEntries(const CEntry **ppEntries, int *pNumEntries) = 0;
38
39 // Pass the `IFavorites` instance as callback.
40 static void ConfigSaveCallback(IConfigManager *pConfigManager, void *pUserData);
41};
42
43std::unique_ptr<IFavorites> CreateFavorites();
44#endif // ENGINE_FAVORITES_H
Definition config.h:9
Definition favorites.h:23
NETADDR m_aAddrs[MAX_SERVER_ADDRESSES]
Definition favorites.h:26
bool m_AllowPing
Definition favorites.h:27
int m_NumAddrs
Definition favorites.h:25
Definition favorites.h:15
virtual void Add(const NETADDR *pAddrs, int NumAddrs)=0
static void ConfigSaveCallback(IConfigManager *pConfigManager, void *pUserData)
Definition favorites.cpp:264
virtual void AllowPing(const NETADDR *pAddrs, int NumAddrs, bool AllowPing)=0
virtual TRISTATE IsPingAllowed(const NETADDR *pAddrs, int NumAddrs) const =0
virtual void AllEntries(const CEntry **ppEntries, int *pNumEntries)=0
virtual void OnConfigSave(IConfigManager *pConfigManager)=0
virtual void Remove(const NETADDR *pAddrs, int NumAddrs)=0
virtual TRISTATE IsFavorite(const NETADDR *pAddrs, int NumAddrs) const =0
IInterface()
Definition kernel.h:19
@ MAX_SERVER_ADDRESSES
Definition protocol.h:87
std::unique_ptr< IFavorites > CreateFavorites()
Definition favorites.cpp:269
#define MACRO_INTERFACE(Name)
Definition kernel.h:25
Definition types.h:72
TRISTATE
Definition types.h:15