Open Search
    Application Manual

    Table of Contents

    About

    The maxon::Application class collects several static functions that give access to information on the application's environment and properties.

    Application

    These functions allow to access various paths as a maxon::Url:

    // This example uses maxon::Application to create the URL for a new temporary file.
    // Then a string is written into that file.
    // create URL of temporary file
    // make file
    // output string
    const maxon::String text { "hello world" };
    const maxon::BaseArray<maxon::Char> textData = text.GetCString() iferr_return;
    // write to file using stream
    const maxon::OutputStreamRef stream = tempFile.OpenOutputStream(flags) iferr_return;
    stream.Write(textData) iferr_return;
    PyCompilerFlags * flags
    Definition: ast.h:14
    static MAXON_FUNCTION Result< Url > GetUrl(APPLICATION_URLTYPE urlType, const Char *maxonModuleID=MAXON_MODULE_ID)
    Definition: application.h:179
    static MAXON_METHOD Result< Url > GetTempUrl(const Url &directory)
    Definition: basearray.h:415
    Definition: string.h:1287
    Definition: url.h:936
    PyObject * stream
    Definition: codecs.h:186
    @ SEEK_TO_END
    Sets the file handle to the end of file after opening. To append to the end of a file use WRITE_DONT_...
    @ WRITE_DONT_TRUNCATE
    Allows to write to existing files without truncation, so the existing file is kept as is.
    PyObject * text
    Definition: pycore_traceback.h:70
    #define iferr_return
    Definition: resultbase.h:1531
    // This example gets the location of the plugin's resource folder and prints all files in that folder.
    // get the resource folder
    // read all files in the resource folder
    for (const auto& it : resourceFolder.GetBrowseIterator(maxon::GETBROWSEITERATORFLAGS::NONE))
    {
    const maxon::IoBrowseRef& browseDirectory = (it)iferr_return;
    const maxon::Url url = browseDirectory.GetCurrentPath();
    DiagnosticOutput("File: @", url);
    }
    @ NONE
    No flags specified.
    #define DiagnosticOutput(formatString,...)
    Definition: debugdiagnostics.h:170
    @ CURRENT_MODULE_RESOURCE_DIR
    Resource directory of the module that invoked this call.

    These functions allow to access the command line arguments applied to the application when it was started:

    // This example loops through the application's command line arguments.
    for (maxon::Int i = 0; i < cnt; ++i)
    {
    DiagnosticOutput("Argument #@: @", i, arg);
    }
    #define arg(a0, a1, a2, a3, a4, a5, a6, a7)
    Definition: Python-ast.h:673
    Py_ssize_t i
    Definition: abstract.h:645
    static MAXON_METHOD Int GetCommandLineArgCount()
    static MAXON_METHOD String GetCommandLineArg(Int idx)
    Int64 Int
    signed 32/64 bit int, size depends on the platform
    Definition: apibase.h:187

    maxon::Application::GetMachineInfo() returns a DataDictionary which stores information on the current machine. See maxon::MACHINEINFO for IDs; compare with Machines Manual.

    // This example prints the current machine's name and OS to the console.
    const maxon::DataDictionary machineInfo = maxon::Application::GetMachineInfo();
    const maxon::String computerName = machineInfo.Get(maxon::MACHINEINFO::COMPUTERNAME) iferr_return;
    const maxon::String osVersion = machineInfo.Get(maxon::MACHINEINFO::OSVERSION) iferr_return;
    DiagnosticOutput("Machine @ is running @", computerName, osVersion);
    static MAXON_METHOD DataDictionary GetMachineInfo()

    maxon::Application::GetVersion() allows to access the version number and build ID of the application.

    // This example prints the application version and build ID to the console.
    maxon::Int version;
    maxon::String buildID;
    DiagnosticOutput("Application version @ (@)", version, buildID);
    static MAXON_METHOD Result< void > GetVersion(Int &version, String &buildID)

    The application mode defines the behaviour after startup.

    Further application features (maxon::APPLICATIONFEATURE) are accessed with:

    Further Reading