51 lines
1.5 KiB
C++
51 lines
1.5 KiB
C++
#pragma once
|
|
|
|
#include "esphome/core/defines.h"
|
|
#ifdef USE_WEBSERVER
|
|
#include "esphome/core/component.h"
|
|
#include "esphome/core/component_iterator.h"
|
|
namespace esphome::web_server_idf {
|
|
#ifdef USE_ESP32
|
|
class AsyncEventSource;
|
|
#endif
|
|
} // namespace esphome::web_server_idf
|
|
|
|
namespace esphome::web_server {
|
|
|
|
#if !defined(USE_ESP32) && defined(USE_ARDUINO)
|
|
class DeferredUpdateEventSource;
|
|
#endif
|
|
class WebServer;
|
|
|
|
class ListEntitiesIterator final : public ComponentIterator {
|
|
public:
|
|
#ifdef USE_ESP32
|
|
ListEntitiesIterator(const WebServer *ws, esphome::web_server_idf::AsyncEventSource *es);
|
|
#elif defined(USE_ARDUINO)
|
|
ListEntitiesIterator(const WebServer *ws, DeferredUpdateEventSource *es);
|
|
#endif
|
|
|
|
// Entity overrides (generated from entity_types.h).
|
|
// Implementations live in list_entities.cpp.
|
|
// NOLINTBEGIN(bugprone-macro-parentheses)
|
|
#define ENTITY_TYPE_(type, singular, plural, count, upper) bool on_##singular(type *obj) override;
|
|
#define ENTITY_CONTROLLER_TYPE_(type, singular, plural, count, upper, callback) \
|
|
ENTITY_TYPE_(type, singular, plural, count, upper)
|
|
#include "esphome/core/entity_types.h"
|
|
#undef ENTITY_TYPE_
|
|
#undef ENTITY_CONTROLLER_TYPE_
|
|
// NOLINTEND(bugprone-macro-parentheses)
|
|
bool completed() { return this->state_ == IteratorState::NONE; }
|
|
|
|
protected:
|
|
const WebServer *web_server_;
|
|
#ifdef USE_ESP32
|
|
esphome::web_server_idf::AsyncEventSource *events_;
|
|
#elif USE_ARDUINO
|
|
DeferredUpdateEventSource *events_;
|
|
#endif
|
|
};
|
|
|
|
} // namespace esphome::web_server
|
|
#endif
|