summaryrefslogtreecommitdiffstats
path: root/chromium/components/policy/core/common/remote_commands/remote_commands_factory.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/components/policy/core/common/remote_commands/remote_commands_factory.h')
-rw-r--r--chromium/components/policy/core/common/remote_commands/remote_commands_factory.h32
1 files changed, 32 insertions, 0 deletions
diff --git a/chromium/components/policy/core/common/remote_commands/remote_commands_factory.h b/chromium/components/policy/core/common/remote_commands/remote_commands_factory.h
new file mode 100644
index 00000000000..02242797dc2
--- /dev/null
+++ b/chromium/components/policy/core/common/remote_commands/remote_commands_factory.h
@@ -0,0 +1,32 @@
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef COMPONENTS_POLICY_CORE_COMMON_REMOTE_COMMANDS_REMOTE_COMMANDS_FACTORY_H_
+#define COMPONENTS_POLICY_CORE_COMMON_REMOTE_COMMANDS_REMOTE_COMMANDS_FACTORY_H_
+
+#include <memory>
+
+#include "components/policy/policy_export.h"
+#include "components/policy/proto/device_management_backend.pb.h"
+
+namespace policy {
+
+class RemoteCommandJob;
+class RemoteCommandsService;
+
+// An interface class for creating remote commands based on command type.
+class POLICY_EXPORT RemoteCommandsFactory {
+ public:
+ RemoteCommandsFactory& operator=(const RemoteCommandsFactory&) = delete;
+
+ virtual ~RemoteCommandsFactory();
+
+ virtual std::unique_ptr<RemoteCommandJob> BuildJobForType(
+ enterprise_management::RemoteCommand_Type type,
+ RemoteCommandsService* service) = 0;
+};
+
+} // namespace policy
+
+#endif // COMPONENTS_POLICY_CORE_COMMON_REMOTE_COMMANDS_REMOTE_COMMANDS_FACTORY_H_