1*aa3c92eaSWill Schurman // Copyright 2015-present 650 Industries. All rights reserved. 2*aa3c92eaSWill Schurman package host.exp.exponent.kernel 3*aa3c92eaSWill Schurman 4*aa3c92eaSWill Schurman object KernelProvider { 5*aa3c92eaSWill Schurman private var factory: KernelFactory = object : KernelFactory { createnull6*aa3c92eaSWill Schurman override fun create(): KernelInterface { 7*aa3c92eaSWill Schurman return ExpoViewKernel.instance 8*aa3c92eaSWill Schurman } 9*aa3c92eaSWill Schurman } 10*aa3c92eaSWill Schurman setFactorynull11*aa3c92eaSWill Schurman @JvmStatic fun setFactory(factory: KernelFactory) { 12*aa3c92eaSWill Schurman this.factory = factory 13*aa3c92eaSWill Schurman } 14*aa3c92eaSWill Schurman <lambda>null15*aa3c92eaSWill Schurman @JvmStatic val instance: KernelInterface by lazy { 16*aa3c92eaSWill Schurman factory.create() 17*aa3c92eaSWill Schurman } 18*aa3c92eaSWill Schurman 19*aa3c92eaSWill Schurman interface KernelFactory { createnull20*aa3c92eaSWill Schurman fun create(): KernelInterface 21*aa3c92eaSWill Schurman } 22*aa3c92eaSWill Schurman } 23