Published Objects Usage

Table of Contents

About

A published object is declared in a header file using the MAXON_DECLARATION attribute. It can be accessed and used in any source code file that includes this header file.

Usage

The following functions are automatically generated for the published object class:

  • GetId(): Returns the maxon::Id of the published object class.
  • GetInstance(): Returns a reference to the published object class instance. The returned type is maxon::Declaration.
  • IsInitialized(): Returns true if the published object is initialized.
  • GetReference(): Returns a reference to the published object.

A reference can also be obtained by using the function call operator "()".

// This example checks if the given published object is initialized.
// If so a reference to that published object is accessed.
// check if the published object "Carbon" is initialized
if (MAXON_UNLIKELY(Carbon.IsInitialized() == false))
return maxon::UnexpectedError(MAXON_SOURCE_LOCATION, "\"Carbon\" not initialized"_s);
// get reference to published object "Carbon"
const SimpleAtom& carbon = Carbon();
DiagnosticOutput("Atom: @, @, @", carbon._protonCnt, carbon._neutronCnt, carbon._electronCnt);

Further Reading