PacketFactory
#include <icy/packetfactory.h>
class PacketFactoryDefined in src/base/include/icy/packetfactory.h:95
Public Methods
| Return | Name | Description |
|---|---|---|
PacketFactory | Defaulted constructor. | |
PacketFactory | Deleted constructor. | |
PacketFactory & | operator= | Deleted assignment operator. |
PacketFactory | Defaulted constructor. | |
PacketFactory & | operator= | Defaulted assignment operator. |
~PacketFactory virtual | Defaulted destructor. | |
void | registerPacketType inline | Registers a PacketCreationStrategy<PacketT> at the given priority. Any previously registered strategy for PacketT is replaced. |
void | unregisterPacketType inline | Removes the PacketCreationStrategy<PacketT> from the factory, if present. |
void | registerStrategy inline | Registers an arbitrary IPacketCreationStrategy subclass at the given priority. Any previously registered instance of the same type is replaced. |
void | unregisterStrategy inline | Removes the StrategyT instance from the factory, if present. |
PacketCreationStrategyList & | types inline | |
const PacketCreationStrategyList & | types const inline | |
bool | onPacketCreated virtual inline | Called after a packet is successfully created by a strategy. Override to apply filtering; return false to reject the packet (it will be deleted). |
IPacket * | createPacket virtual inline | Iterates registered strategies in priority order and returns the first successfully created packet. |
PacketFactory
PacketFactory() = defaultDefined in src/base/include/icy/packetfactory.h:98
Defaulted constructor.
PacketFactory
PacketFactory(const PacketFactory &) = deleteDefined in src/base/include/icy/packetfactory.h:99
Deleted constructor.
operator=
PacketFactory & operator=(const PacketFactory &) = deleteDefined in src/base/include/icy/packetfactory.h:100
Deleted assignment operator.
PacketFactory
PacketFactory(PacketFactory &&) = defaultDefined in src/base/include/icy/packetfactory.h:101
Defaulted constructor.
operator=
PacketFactory & operator=(PacketFactory &&) = defaultDefined in src/base/include/icy/packetfactory.h:102
Defaulted assignment operator.
~PacketFactory
virtual
virtual ~PacketFactory() = defaultDefined in src/base/include/icy/packetfactory.h:103
Defaulted destructor.
registerPacketType
inline
template<class PacketT> inline void registerPacketType(int priority)Defined in src/base/include/icy/packetfactory.h:110
Registers a PacketCreationStrategy<PacketT> at the given priority. Any previously registered strategy for PacketT is replaced.
Parameters
| Parameter | Type | Description |
|---|---|---|
priority | int | Dispatch priority (0–100; higher runs first). |
unregisterPacketType
inline
template<class PacketT> inline void unregisterPacketType()Defined in src/base/include/icy/packetfactory.h:120
Removes the PacketCreationStrategy<PacketT> from the factory, if present.
registerStrategy
inline
template<class StrategyT> inline void registerStrategy(int priority)Defined in src/base/include/icy/packetfactory.h:134
Registers an arbitrary IPacketCreationStrategy subclass at the given priority. Any previously registered instance of the same type is replaced.
Parameters
| Parameter | Type | Description |
|---|---|---|
priority | int | Dispatch priority (0–100; higher runs first). |
unregisterStrategy
inline
template<class StrategyT> inline void unregisterStrategy()Defined in src/base/include/icy/packetfactory.h:144
Removes the StrategyT instance from the factory, if present.
types
inline
inline PacketCreationStrategyList & types()Defined in src/base/include/icy/packetfactory.h:154
Returns
Mutable reference to the ordered list of registered strategies.
types
const inline
inline const PacketCreationStrategyList & types() constDefined in src/base/include/icy/packetfactory.h:160
Returns
Const reference to the ordered list of registered strategies.
onPacketCreated
virtual inline
virtual inline bool onPacketCreated(IPacket * packet)Defined in src/base/include/icy/packetfactory.h:169
Called after a packet is successfully created by a strategy. Override to apply filtering; return false to reject the packet (it will be deleted).
Returns
True to accept the packet, false to discard it and try the next strategy.
Parameters
| Parameter | Type | Description |
|---|---|---|
packet | IPacket * | Newly created packet. |
createPacket
virtual inline
virtual inline IPacket * createPacket(const ConstBuffer & buffer, size_t & nread)Defined in src/base/include/icy/packetfactory.h:181
Iterates registered strategies in priority order and returns the first successfully created packet.
Returns
Newly allocated packet, or nullptr if no strategy matched.
Parameters
| Parameter | Type | Description |
|---|---|---|
buffer | const ConstBuffer & | Raw input data. |
nread | size_t & | Set to the number of bytes consumed on success. |
Exceptions
| Exception | Description |
|---|---|
std::logic_error | if no packet types have been registered. |
Protected Attributes
| Return | Name | Description |
|---|---|---|
PacketCreationStrategyList | _types |
_types
PacketCreationStrategyList _typesType: PacketCreationStrategyList
Defined in src/base/include/icy/packetfactory.h:200
Private Methods
| Return | Name | Description |
|---|---|---|
void | sortTypes inline |
sortTypes
inline
inline void sortTypes()