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