blob: dcf295d8a50fe96fdefe90fd01d31963d838301e [file] [log] [blame]
// Copyright 2016 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 CHROMECAST_BASE_INIT_COMMAND_LINE_SHLIB_H_
#define CHROMECAST_BASE_INIT_COMMAND_LINE_SHLIB_H_
#include <string>
#include <vector>
namespace chromecast {
// A utility function which initializes command line flags and logging. It is
// intended to be called at the entry point of a shared library.
//
// When doing a component build, calls to this function will be a no-op.
// cast_shell will initialize the single global instance of base::CommandLine,
// which lives in libbase.so. For a non-component build, each shared lib will
// statically link its own instance of base::CommandLine, and will initialize
// it here on the initial call. Every subsequent call from within the same
// library will be a no-op.
//
// THREAD SAFTEY: Accessing the CommandLine instance for this process is
// technically not threadsafe when using the component build. However, the
// instance is initialized on the main thread before any other threads are
// started (see content/app/content_main_runner_impl.cc), so accessing this
// instance on those threads for read-operations is safe in practice.
void InitCommandLineShlib(const std::vector<std::string>& argv);
} // namespace chromecast
#endif // CHROMECAST_BASE_INIT_COMMAND_LINE_SHLIB_H_