summaryrefslogtreecommitdiff
path: root/chromium/services/service_manager/embedder/main.h
blob: 57e88aa85dfeef72efb0168143cf3a7e5e21e0f2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
// Copyright 2017 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 SERVICES_SERVICE_MANAGER_EMBEDDER_MAIN_H_
#define SERVICES_SERVICE_MANAGER_EMBEDDER_MAIN_H_

#include "base/component_export.h"
#include "build/build_config.h"

namespace service_manager {

class MainDelegate;

struct COMPONENT_EXPORT(SERVICE_MANAGER_EMBEDDER) MainParams {
  explicit MainParams(MainDelegate* delegate);
  ~MainParams();

  MainDelegate* const delegate;

#if !defined(OS_WIN) && !defined(OS_ANDROID)
  int argc = 0;
  const char** argv = nullptr;
#endif
};

// Main function which should be called as early as possible by any executable
// embedding the service manager.
int COMPONENT_EXPORT(SERVICE_MANAGER_EMBEDDER) Main(const MainParams& params);

}  // namespace service_manager

#endif  // SERVICES_SERVICE_MANAGER_EMBEDDER_MAIN_H_