You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

HostsConfig.h 1.1KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. //
  2. // Created by robin on 8/8/15.
  3. //
  4. #ifndef PDNS_SLAVE_HOSTSCONFIG_H
  5. #define PDNS_SLAVE_HOSTSCONFIG_H
  6. # include <string>
  7. # include "DBO/Result.h"
  8. # include "DBO/Actions/Action.h"
  9. class HostsConfig
  10. {
  11. public:
  12. HostsConfig(const std::string& filePath);
  13. Result<Actions> readConfig();
  14. private:
  15. Json::Value readValue(const Json::Value &value, const Json::Value &defaults, const std::string& name) const;
  16. std::shared_ptr<Action> readAddHost(const Json::Value &act, const Json::Value &defaults,
  17. int i, Result<Actions>& res) const;
  18. std::shared_ptr<Action> readDelHost(const Json::Value &act, const Json::Value &defaults,
  19. int i, Result<Actions>& res) const;
  20. std::shared_ptr<Action> readAddDomain(const Json::Value &act, const Json::Value &defaults,
  21. int i, Result<Actions>& res) const;
  22. std::shared_ptr<Action> readDelDomain(const Json::Value &act, const Json::Value &defaults,
  23. int i, Result<Actions>& res) const;
  24. std::string _filePath;
  25. };
  26. #endif //PDNS_SLAVE_HOSTSCONFIG_H