/** * @file llappviewermacosx-for-objc.h * @author Nat Goodspeed * @date 2018-06-15 * @brief llappviewermacosx.h publishes the C++ API for * llappviewermacosx.cpp, just as * llappviewermacosx-objc.h publishes the Objective-C++ API for * llappviewermacosx-objc.mm. * * This header is intended to publish for Objective-C++ consumers a * subset of the C++ API presented by llappviewermacosx.cpp. It's a * subset because, if an Objective-C++ consumer were to #include * the full llappviewermacosx.h, we would almost surely run into * trouble due to the discrepancy between Objective-C++'s BOOL versus * classic Microsoft/Linden BOOL. * * $LicenseInfo:firstyear=2018&license=viewerlgpl$ * Copyright (c) 2018, Linden Research, Inc. * $/LicenseInfo$ */ #if ! defined(LL_LLAPPVIEWERMACOSX_FOR_OBJC_H) #define LL_LLAPPVIEWERMACOSX_FOR_OBJC_H #include void constructViewer(); bool initViewer(); void handleUrl(const char* url_utf8); bool pumpMainLoop(); void handleQuit(); void cleanupViewer(); void infos(const std::string& message); void clearDumpLogsDir(); // This struct is malleable; it only serves as a way to convey a number of // fields from llappviewermacosx.cpp's CrashMetadata_instance() function to the // consuming functions in llappdelegate-objc.mm. As long as both those sources // are compiled with this same header, the content and order of CrashMetadata // can change as needed. struct CrashMetadata { std::string logFilePathname; std::string userSettingsPathname; std::string accountSettingsPathname; std::string staticDebugPathname; std::string OSInfo; std::string agentFullname; std::string regionName; std::string fatalMessage; std::string secondLogFilePathname; }; CrashMetadata& CrashMetadata_instance(); #endif /* ! defined(LL_LLAPPVIEWERMACOSX_FOR_OBJC_H) */