Context.cs 1.2 KB

12345678910111213141516171819202122232425262728293031323334
  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> WorldRepository;
  16. public readonly IQueryableRepository<Fortune> FortuneRepository;
  17. public readonly IRepositoryBulkReader BulkReader;
  18. public readonly Lazy<World>[] LazyWorlds = new Lazy<World>[512];
  19. public readonly World[] Worlds = new World[512];
  20. public Context(IServiceProvider service)
  21. {
  22. Stream = ChunkedMemoryStream.Static();
  23. Writer = Stream.GetWriter();
  24. var dqm = service.Resolve<IDatabaseQueryManager>();
  25. var factory = service.Resolve<IObjectFactory>().CreateInnerFactory();
  26. factory.RegisterInterfaces(dqm.StartQuery(false));
  27. WorldRepository = factory.Resolve<IPersistableRepository<World>>();
  28. FortuneRepository = factory.Resolve<IQueryableRepository<Fortune>>();
  29. BulkReader = factory.BulkRead(ChunkedMemoryStream.Static());
  30. }
  31. }
  32. }