AlteriomPainlessMesh v2.1.1
Easy ESP32/ESP8266 mesh networking with Alteriom IoT extensions
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
painlessmesh::plugin::PackageHandler< T > Class Template Reference

#include <plugin.hpp>

Inheritance diagram for painlessmesh::plugin::PackageHandler< T >:
Inheritance graph
[legend]
Collaboration diagram for painlessmesh::plugin::PackageHandler< T >:
Collaboration graph
[legend]

Public Member Functions

void stop (Scheduler *scheduler=nullptr)
 
 ~PackageHandler ()
 
bool sendPackage (const protocol::PackageInterface *pkg)
 
void onPackage (int type, std::function< bool(protocol::Variant &)> function)
 
std::shared_ptr< Task > addTask (Scheduler &scheduler, unsigned long aInterval, long aIterations, std::function< void()> aCallback)
 
std::shared_ptr< Task > addTask (Scheduler &scheduler, std::function< void()> aCallback)
 
- Public Member Functions inherited from painlessmesh::layout::Layout< T >
uint32_t getNodeId () const
 
bool isRoot () const
 
protocol::NodeTree asNodeTree ()
 

Protected Member Functions

void reclaimQuarantinedTasks ()
 

Protected Attributes

callback::MeshPackageCallbackList< T > callbackList
 
std::list< std::shared_ptr< Task > > taskList = {}
 
std::list< std::pair< Scheduler *, std::shared_ptr< Task > > > quarantinedTasks
 
- Protected Attributes inherited from painlessmesh::layout::Layout< T >
uint32_t nodeId = 0
 
bool root = false
 
bool hasTimeAuthority = false
 

Additional Inherited Members

- Public Attributes inherited from painlessmesh::layout::Layout< T >
size_t stability = 0
 
std::list< std::shared_ptr< T > > subs
 

Detailed Description

template<typename T>
class painlessmesh::plugin::PackageHandler< T >

Handle different plugins

Responsible for

Constructor & Destructor Documentation

◆ ~PackageHandler()

template<typename T >
painlessmesh::plugin::PackageHandler< T >::~PackageHandler ( )
inline

Member Function Documentation

◆ addTask() [1/2]

template<typename T >
std::shared_ptr< Task > painlessmesh::plugin::PackageHandler< T >::addTask ( Scheduler &  scheduler,
std::function< void()>  aCallback 
)
inline

◆ addTask() [2/2]

template<typename T >
std::shared_ptr< Task > painlessmesh::plugin::PackageHandler< T >::addTask ( Scheduler &  scheduler,
unsigned long  aInterval,
long  aIterations,
std::function< void()>  aCallback 
)
inline

Add a task to the scheduler

The task will be stored in a list and a shared_ptr to the task will be returned. If the task is anonymous (i.e. no shared_ptr to it is held anywhere else) and disabled then it will be reused when a new task is added.

◆ onPackage()

template<typename T >
void painlessmesh::plugin::PackageHandler< T >::onPackage ( int  type,
std::function< bool(protocol::Variant &)>  function 
)
inline

◆ reclaimQuarantinedTasks()

template<typename T >
void painlessmesh::plugin::PackageHandler< T >::reclaimQuarantinedTasks ( )
inlineprotected

◆ sendPackage()

template<typename T >
bool painlessmesh::plugin::PackageHandler< T >::sendPackage ( const protocol::PackageInterface *  pkg)
inline

◆ stop()

template<typename T >
void painlessmesh::plugin::PackageHandler< T >::stop ( Scheduler *  scheduler = nullptr)
inline

Member Data Documentation

◆ callbackList

template<typename T >
callback::MeshPackageCallbackList<T> painlessmesh::plugin::PackageHandler< T >::callbackList
protected

◆ quarantinedTasks

template<typename T >
std::list<std::pair<Scheduler*, std::shared_ptr<Task> > > painlessmesh::plugin::PackageHandler< T >::quarantinedTasks
protected
Initial value:
=
{}

◆ taskList

template<typename T >
std::list<std::shared_ptr<Task> > painlessmesh::plugin::PackageHandler< T >::taskList = {}
protected

The documentation for this class was generated from the following file: