64    SnapshotCallback getSnapshotCallback = 
nullptr;
 
   65    EventLimiter event_limiter;
 
   70        auto client = std::make_unique<WiFiClient>();
 
   72        auto client = std::make_unique<WiFiClientSecure>();
 
   75        if (
client) 
client->setTimeout(TCP_CONNECTION_TIMEOUT_VALUE);
 
   87    void setupHttpHeaders(HTTPClient& http, T* device) {
 
   88        const String& deviceId = device->getDeviceId();
 
   89        String createdAt = String(device->getTimestamp());
 
   90        String signature = device->sign(deviceId + createdAt);
 
   92        http.addHeader(FSTR_SINRICPRO_deviceId, deviceId);
 
   93        http.addHeader(FSTR_SINRICPRO_createdAt, createdAt);
 
   94        http.addHeader(FSTR_SINRICPRO_signature, signature);
 
   95        http.setTimeout(HTTP_TIMEOUT_VALUE);
 
  101CameraController<T>::CameraController()
 
  102: event_limiter (EVENT_LIMIT_STATE) {
 
  103    T *device = 
static_cast<T *
>(
this);
 
  104    device->registerRequestHandler(std::bind(&CameraController<T>::handleCameraController, 
this, std::placeholders::_1));
 
  109    getSnapshotCallback = 
cb;
 
 
  114    if (event_limiter) 
return false;
 
  115    T *
device = 
static_cast<T *
>(
this);
 
  120        if (getSnapshotCallback) {