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