# Interface MNativeWorkspaceType

All Superinterfaces:
  `AutoCloseable`

All Known Implementing Classes:
  `MNWorkspace`

public interface MNativeWorkspaceType extends AutoCloseable
A workspace for producing a native package.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `MArchitectureName`
  `architecture()`
  `void`
  `close()`
  `Path`
  `createWorkDirectory()`
  `CompletableFuture<Path>`
  `javaRuntime()`
  `Flow.Publisher<com.io7m.streamtime.core.STTransferStatistics>`
  `javaRuntimeDownload()`
  `default boolean`
  `matchesModule(MPlatformDependentModule module)`
  Check if the operating system and architecture of the given module matches this workspace.
  `MOperatingSystemName`
  `operatingSystem()`

- ## Method Details

  - ### close

    void close() throws MException
    Specified by:
      `close` in interface `AutoCloseable`
    Throws:
      `MException`

  - ### operatingSystem

    MOperatingSystemName operatingSystem()
    Returns:
      The operating system name

  - ### architecture

    MArchitectureName architecture()
    Returns:
      The architecture name

  - ### javaRuntimeDownload

    Flow.Publisher<com.io7m.streamtime.core.STTransferStatistics> javaRuntimeDownload()
    Returns:
      The transfer statistic for java runtime downloads

  - ### javaRuntime

    CompletableFuture<Path> javaRuntime()
    Returns:
      The java runtime

  - ### createWorkDirectory

    Path createWorkDirectory() throws MException
    Returns:
      A fresh working directory
    Throws:
      `MException` - On errors

  - ### matchesModule

    default boolean matchesModule(MPlatformDependentModule module)
    Check if the operating system and architecture of the given module matches this workspace.
    Parameters:
      `module` - The module
    Returns:
      `true` if the module matches