Class WebserverModuleEntrypoint

java.lang.Object
io.codetoil.curved_spacetime.webserver.WebserverModuleEntrypoint
All Implemented Interfaces:
ModuleInitializer

public class WebserverModuleEntrypoint extends Object implements ModuleInitializer
The webserver module's main entrypoint.

Starts an HTTP server so the simulator can be driven or observed over the network, and hands itself to modules that extend it — the OpenAPI module — through the webserver_module_dependent entrypoint.

The server is currently a placeholder: it binds a fixed port, serves one test route, and is not stopped when the engine shuts down.

  • Constructor Details

    • WebserverModuleEntrypoint

      public WebserverModuleEntrypoint()
      Creates the webserver module's entrypoint.

      Called by the loader; no socket is opened until onInitialize() runs.

  • Method Details

    • onInitialize

      public void onInitialize()
      Description copied from interface: ModuleInitializer
      Brings this module up.

      An implementation sets its logger's level from the engine's configuration, loads its own configuration and saves it if loading substituted defaults, receives any dependencies it declares through ModuleInitializer.getDependencyModuleTransferQueue(), performs any operations it must perform during initialization, and finally invokes its own dependent entrypoints, passing itself.

      Specified by:
      onInitialize in interface ModuleInitializer
    • getConfig

      public ModuleConfig getConfig()
      Description copied from interface: ModuleInitializer
      Returns this module's configuration.
      Specified by:
      getConfig in interface ModuleInitializer
      Returns:
      the configuration, or null before ModuleInitializer.onInitialize() has loaded it
    • getLogger

      public Logger getLogger()
      Description copied from interface: ModuleInitializer
      Returns the logger this module writes its diagnostics to.

      The same instance is returned for the lifetime of this entrypoint.

      Specified by:
      getLogger in interface ModuleInitializer
      Returns:
      this module's logger
    • getDependencyModuleTransferQueue

      public TransferQueue<ModuleInitializer> getDependencyModuleTransferQueue()
      Description copied from interface: ModuleInitializer
      Returns the queue by which this module receives the entrypoints it depends on.

      A module does not look its dependencies up. Each module it depends on invokes a dependent entrypoint, which transfers that module's own entrypoint into this queue. The same instance is returned for the lifetime of this entrypoint; a fresh or defensively copied queue breaks the handshake, because the producer transfers into whichever queue this method returned.

      Specified by:
      getDependencyModuleTransferQueue in interface ModuleInitializer
      Returns:
      this module's dependency transfer queue