Bredbandskollen CLI  1.2
Asynchronous network task engine
cookiefile.h
1 // Copyright (c) 2019 Internetstiftelsen
2 // Written by Göran Andersson <initgoran@gmail.com>
3 
4 #pragma once
5 
6 #include <map>
7 
8 #include "../http/cookiemanager.h"
9 
10 class CookieFile : public CookieManager {
11 public:
12  CookieFile(const std::string &cookie_filename = "") :
13  CookieManager("CookieFile"),
14  filename(cookie_filename) {
15  readCookiesFile();
16  }
17 
18  // By default, we try to save cookies in the destructor. However, if
19  // the save operation fails, all updates are lost. If you can't afford to
20  // lose cookies, call save() and check the return value.
21  ~CookieFile() override;
22 
23  // Write to disk, return false on failure.
24  bool save() override {
25  if (isDirty())
26  writeCookiesFile();
27  return isDirty();
28  }
29 
30  // Default move constructor is OK despite us having a destructor:
31  CookieFile(CookieFile &&) = default;
32 
33 private:
34  void readCookiesFile();
35  void writeCookiesFile();
36  std::string filename;
37 };
Definition: cookiefile.h:10
Definition: cookiemanager.h:14