1// Copyright 2014 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef MOJO_PUBLIC_C_SYSTEM_MAIN_H_
6#define MOJO_PUBLIC_C_SYSTEM_MAIN_H_
7
8#include "mojo/public/c/system/types.h"
9
10// Implement MojoMain directly as the entry point for an application.
11//
12// MojoResult MojoMain(MojoHandle service_provider_handle) {
13//   ...
14// }
15//
16// TODO(davemoore): Establish this as part of our SDK for third party mojo
17// application writers.
18
19#if defined(__cplusplus)
20extern "C" {
21#endif
22
23#if defined(WIN32)
24__declspec(dllexport) MojoResult
25    __cdecl MojoMain(MojoHandle service_provider_handle);
26#else  // !defined(WIN32)
27__attribute__((visibility("default"))) MojoResult
28    MojoMain(MojoHandle service_provider_handle);
29#endif  // defined(WIN32)
30
31#ifdef __cplusplus
32}  // extern "C"
33#endif
34
35#endif  // MOJO_PUBLIC_C_SYSTEM_MAIN_H_
36