#ifndef CHROME_ENTERPRISE_COMPANION_ENTERPRISE_COMPANION_SERVICE_H_
#define CHROME_ENTERPRISE_COMPANION_ENTERPRISE_COMPANION_SERVICE_H_
#include <memory>
#include "base/functional/callback_forward.h"
#include "chrome/enterprise_companion/dm_client.h"
#include "chrome/enterprise_companion/enterprise_companion_status.h"
#include "chrome/enterprise_companion/event_logger.h"
namespace policy {
enum class PolicyFetchReason;
}
namespace enterprise_companion {
class EnterpriseCompanionService {
public:
virtual ~EnterpriseCompanionService() = default;
virtual void Shutdown(base::OnceClosure callback) = 0;
virtual void FetchPolicies(policy::PolicyFetchReason reason,
StatusCallback callback) = 0;
};
std::unique_ptr<EnterpriseCompanionService> CreateEnterpriseCompanionService(
std::unique_ptr<DMClient> dm_client,
base::RepeatingClosure before_each_request,
scoped_refptr<EnterpriseCompanionEventLogger> logger,
base::OnceClosure shutdown_callback);
}
#endif