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:173
static MAXON_METHOD Result< Url > GetTempUrl(const Url &directory)
Definition: basearray.h:415
Definition: string.h:1237
Definition: url.h:942
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:1524
// 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:202

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