MayaFlux 0.1.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches
Lila Class Reference

Central orchestrator and entry point for live coding in MayaFlux. More...

#include <Lila.hpp>

+ Collaboration diagram for Lila:

Public Types

enum class  LogLevel : uint8_t {
  TRACE , DEBUG , INFO , WARN ,
  ERROR , FATAL
}
 Log severity levels for Commentator. More...
 
enum class  Emitter : uint8_t { SERVER , INTERPRETER , SYSTEM , GENERAL }
 Source category for log messages. More...
 
enum class  EventType : uint8_t {
  ClientConnected , ClientDisconnected , EvalStart , EvalSuccess ,
  EvalError , SymbolDefined , ServerStart , ServerStop
}
 Enumerates all event types supported by the Lila event system. More...
 
enum class  OperationMode : uint8_t { Direct , Server , Both }
 
using EventData = std::variant< ClientInfo, EvalEvent, std::monostate, ErrorEvent, SymbolEvent >
 Variant type for event data.
 

Detailed Description

Central orchestrator and entry point for live coding in MayaFlux.

The Lila class provides a unified interface for interactive live coding in MayaFlux. It manages the lifecycle and coordination of the embedded Clang interpreter and the TCP server, enabling both direct code evaluation and networked live coding sessions.

Core Responsibilities

  • Initialize and configure the live coding environment (interpreter and/or server)
  • Evaluate C++ code snippets and files at runtime
  • Manage TCP server for remote live coding sessions
  • Provide symbol lookup and introspection
  • Allow customization of include paths and compile flags
  • Expose event/callback hooks for success, error, and server events

Usage Flow

  1. Construct a Lila instance
  2. Call initialize() with desired mode (Direct, Server, Both)
  3. For direct evaluation, use eval() or eval_file()
  4. For server mode, use start_server(), stop_server(), and event hooks
  5. Use get_symbol_address() and get_defined_symbols() for runtime introspection
  6. Optionally configure include paths and compile flags before initialization
  7. Register callbacks for success, error, and server/client events as needed

Lila is intended as the main API for embedding live coding capabilities in MayaFlux. End users interact with Lila via higher-level interfaces or the live_server binary, not directly with its internal components.


The documentation for this class was generated from the following files: