---
name: "ScXMLStateMachine"
section: "3"
platform: "linux"
package: "coin"
version: "1:4.0.10-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/ScXMLStateMachine"
---

# ScXMLStateMachine(3)

Manager for processing events and setting states in SCXML structures.

## NAME

ScXMLStateMachine - Manager for processing events and setting states in SCXML structures.

## SYNOPSIS

\#include \<Inventor/scxml/ScXMLStateMachine.h\>

Inherits **ScXMLEventTarget**.

Inherited by **SoScXMLStateMachine**.

### Public Member Functions

virtual **SoType** **getTypeId** (void) const\
 Returns the type identification of an object derived from a class inheriting **SoBase**. This is used for runtime type checking and *downward"*casting. virtual void **setName** (const **SbName** &name)\
 const **SbName** & **getName** (void) const\
 virtual void **setDescription** (**ScXMLDocument** \*document)\
 const **ScXMLDocument** \* **getDescription** (void) const\
 virtual void **setSessionId** (const **SbName** &sessionid)\
 const **SbName** & **getSessionId** (void) const\
 virtual void **initialize** (void)\
 virtual SbBool **isActive** (void) const\
 virtual SbBool **isFinished** (void) const\
 virtual int **getNumActiveStates** (void) const\
 virtual const **ScXMLElt** \* **getActiveState** (int idx) const\
 virtual void **addDeleteCallback** (ScXMLStateMachineDeleteCB \*callback, void \*userdata)\
 virtual void **removeDeleteCallback** (ScXMLStateMachineDeleteCB \*callback, void \*userdata)\
 virtual void **addStateChangeCallback** (ScXMLStateChangeCB \*callback, void \*userdata)\
 virtual void **removeStateChangeCallback** (ScXMLStateChangeCB \*callback, void \*userdata)\
 virtual void **setVariable** (const char \*name, const char \*value)\
 virtual const char \* **getVariable** (const char \*name) const\
 virtual void **setLogLevel** (int loglevel)\
 int **getLogLevel** (void) const\
 virtual void **setEvaluator** (**ScXMLEvaluator** \*evaluator)\
 **ScXMLEvaluator** \* **getEvaluator** (void) const\
 SbBool **isModuleEnabled** (const char \*modulename) const\
 int **getNumEnabledModules** (void) const\
 const char \* **getEnabledModuleName** (int idx) const\
 void **setEnabledModulesList** (const **SbList**\< const char \* \> &modulenames)\

Public Member Functions inherited from **ScXMLEventTarget** virtual void **setEventTargetType** (const char \*targettype)\
 const char \* **getEventTargetType** (void) const\
 virtual void **setEventTargetName** (const char \*targetname)\
 const char \* **getEventTargetName** (void) const\
 virtual const **ScXMLEvent** \* **getCurrentEvent** (void) const\
 virtual void **queueEvent** (const **ScXMLEvent** \*event)\
 virtual void **queueEvent** (const **SbName** &eventid)\
 virtual SbBool **processEventQueue** (void)\
 virtual SbBool **sendExternalEvent** (const **ScXMLSendElt** \*sendelt)\
 virtual SbBool **sendInternalEvent** (const **ScXMLEventElt** \*sendelt)\
 virtual void **queueInternalEvent** (const **ScXMLEvent** \*event)\
 virtual void **queueInternalEvent** (const **SbName** &eventid)\

Public Member Functions inherited from **ScXMLObject** SbBool **isOfType** (**SoType** type) const\
 Returns TRUE if the type of this object is either of the same type or inherited from *type*.

### Static Public Member Functions

static **SoType** **getClassTypeId** (void)\
 static void \* **createInstance** (void)\
 static void **initClass** (void)\
 static void **cleanClass** (void)\
 static **ScXMLStateMachine** \* **getStateMachineForSessionId** (const **SbName** &sessionid)\

Static Public Member Functions inherited from **ScXMLEventTarget** static **SoType** **getClassTypeId** (void)\
 static void **initClass** (void)\
 static void **cleanClass** (void)\

Static Public Member Functions inherited from **ScXMLObject** static **SoType** **getClassTypeId** (void)\
 This static method returns the **SoType** object associated with objects of this class.     static void **initClass** (void)\
 Sets up initialization for data common to all instances of this class, like submitting necessary information to the Coin type system.     static void **cleanClass** (void)\
 Does the opposite of initClass, deallocates any class specific resources and resets the class to an uninitialized state with respect to the Coin type system.

### Protected Member Functions

virtual SbBool **processOneEvent** (const **ScXMLEvent** \*event)\

Protected Member Functions inherited from **ScXMLEventTarget** virtual void **setCurrentEvent** (const **ScXMLEvent** \*event)\
 virtual const **ScXMLEvent** \* **getNextEvent** (void)\
 virtual const **ScXMLEvent** \* **getNextInternalEvent** (void)\
 virtual const **ScXMLEvent** \* **getNextExternalEvent** (void)\

### Additional Inherited Members

Static Protected Member Functions inherited from **ScXMLEventTarget** static void **registerEventTarget** (**ScXMLEventTarget** \*target, const char \*sessionid=NULL)\
 static void **unregisterEventTarget** (**ScXMLEventTarget** \*target, const char \*sessionid=NULL)\
 static **ScXMLEventTarget** \* **getEventTarget** (const char \*targettype, const char \*targetname, const char \*sessionid=NULL)\

Static Protected Member Functions inherited from **ScXMLObject** static void **registerClassType** (const char \*xmlns, const char \*classname, **SoType** type)\
 static void **registerInvokeClassType** (const char \*xmlns, const char \*targettype, const char \*source, **SoType** type)\

Protected Attributes inherited from **ScXMLEventTarget** char \* **targetname**\
 char \* **targettype**\
 const **ScXMLEvent** \* **currentevent**\
 SbBool **isprocessingqueue**\

## Detailed Description

Manager for processing events and setting states in SCXML structures.

**Since**

Coin 3.0

## Member Function Documentation

### SoType ScXMLStateMachine::getTypeId (void ) const \[virtual\]

Returns the type identification of an object derived from a class inheriting **SoBase**. This is used for runtime type checking and "downward" casting.

**See also**

**SoBase::getTypeId() const**

Implements **ScXMLEventTarget**.

Reimplemented in **SoScXMLStateMachine**.

### void ScXMLStateMachine::setSessionId (const SbName & sessionidarg) \[virtual\]

This sets the session identifier for the state machine. Using this is optional, since state machines are already assigned unique session ids at construction-time.

### const SbName & ScXMLStateMachine::getSessionId (void ) const

Returns the session identifier string for the state machine.

### void ScXMLStateMachine::initialize (void ) \[virtual\]

Fire up the engine.

### SbBool ScXMLStateMachine::isActive (void ) const \[virtual\]

Returns whether the state machine is active or not.

### SbBool ScXMLStateMachine::isFinished (void ) const \[virtual\]

Returns whether the state machine has run to completion or not.

### int ScXMLStateMachine::getNumActiveStates (void ) const \[virtual\]

This method returns the current event during event processing, and NULL when not processing events.

Event processing is in special cases done with NULL as the current event, as for instance during state machine initialization.

Returns the number of active states in the state machine. This number should currently be 1, but in the future, when \<parallel\> is implemented, it can be greater.

### const ScXMLElt \* ScXMLStateMachine::getActiveState (int idx) const \[virtual\]

Returns the Nth active state.

### void ScXMLStateMachine::addDeleteCallback (ScXMLStateMachineDeleteCB \* cb, void \* userdata) \[virtual\]

Registers a callback to be called when the state machine object is being deleted.

### void ScXMLStateMachine::removeDeleteCallback (ScXMLStateMachineDeleteCB \* cb, void \* userdata) \[virtual\]

Unregisters a callback to be called when the state machine object is being deleted.

### void ScXMLStateMachine::addStateChangeCallback (ScXMLStateChangeCB \* callback, void \* userdata) \[virtual\]

Registers a callback to be called when the state machine exits or enters a state.

### void ScXMLStateMachine::removeStateChangeCallback (ScXMLStateChangeCB \* callback, void \* userdata) \[virtual\]

Unregisters a callback to be called when the state machine exits or enters a state.

### const char \* ScXMLStateMachine::getVariable (const char \* name) const \[virtual\]

Reimplemented in **SoScXMLStateMachine**.

### SbBool ScXMLStateMachine::processOneEvent (const ScXMLEvent \* event) \[protected\], \[virtual\]

Processes one event. This is an internal inner event-loop utility function.

Reimplemented from **ScXMLEventTarget**.

## Author

Generated automatically by Doxygen for Coin from the source code.
