Context.cs 1.0 KB

1234567891011121314151617181920212223242526272829303132
  1. using System;
  2. using System.IO;
  3. using FrameworkBench;
  4. using Revenj.DatabasePersistence;
  5. using Revenj.DatabasePersistence.Postgres;
  6. using Revenj.DomainPatterns;
  7. using Revenj.Extensibility;
  8. using Revenj.Utility;
  9. namespace Revenj.Bench
  10. {
  11. internal class Context
  12. {
  13. public readonly ChunkedMemoryStream Stream;
  14. public readonly TextWriter Writer;
  15. public readonly IPersistableRepository<World> Repository;
  16. public readonly IRepositoryBulkReader BulkReader;
  17. public readonly Lazy<World>[] LazyWorlds = new Lazy<World>[512];
  18. public readonly World[] Worlds = new World[512];
  19. public Context(IServiceProvider service)
  20. {
  21. Stream = ChunkedMemoryStream.Static();
  22. Writer = Stream.GetWriter();
  23. var dqm = service.Resolve<IDatabaseQueryManager>();
  24. var factory = service.Resolve<IObjectFactory>().CreateInnerFactory();
  25. factory.RegisterInterfaces(dqm.StartQuery(false));
  26. Repository = factory.Resolve<IPersistableRepository<World>>();
  27. BulkReader = factory.BulkRead(ChunkedMemoryStream.Static());
  28. }
  29. }
  30. }