Exemplo n.º 1
0
        public static App Initialize(AppConfig config)
        {
            config.ThrowIfInvalid();
            var poller       = new LeaderInfoPoller(config.StorageAccount);
            var startOptions = new StartOptions();

            startOptions.Urls.Add(config.InternalUri);
            startOptions.Urls.Add(config.PublicUri);

            var auth = LoadAuth.LoadFromStorageAccount(config.StorageAccount);

            AddSystemAccess(auth, config.StorageAccount.GetSysPassword());
            var api          = ApiImplementation.Create(config.StorageAccount, poller, auth);
            var nancyOptions = new NancyOptions
            {
                Bootstrapper = new NancyBootstrapper(api, new UserValidator(auth))
            };
            var nodeInfo = new LeaderInfo(config.InternalUri);

            var selector = new LeaderLock(config.StorageAccount, nodeInfo, api);

            var cts = new CancellationTokenSource();
            // fire up leader and scheduler first
            var tasks = new List <Task> {
                selector.KeepTryingToAcquireLock(cts.Token),
                poller.KeepPollingForLeaderInfo(cts.Token),
            };


            // bind the API
            var webApp = WebApp.Start(startOptions, x => x.UseNancy(nancyOptions));

            return(new App(webApp, cts, tasks));
        }
 public CameraApi(ApiImplementation apiImplementation)
 {
     m_apiImplementation = apiImplementation;
     OnTransitionStart  += TransitionStarted;
     OnTransitionEnd    += TransitionEnded;
     m_inputHandler      = new CameraInputHandler();
 }
Exemplo n.º 3
0
 internal CameraApi(ApiImplementation apiImplementation, CameraApiInternal cameraApiInternal)
 {
     m_apiImplementation = apiImplementation;
     m_inputHandler      = new CameraInputHandler();
     OnTransitionStart  += TransitionStarted;
     OnTransitionEnd    += TransitionEnded;
     m_cameraApiInternal = cameraApiInternal;
     m_cameraApiInternal.OnTransitionStartInternal += () => OnTransitionStart(this, m_controlledCamera);
     m_cameraApiInternal.OnTransitionEndInternal   += () => OnTransitionEnd(this, m_controlledCamera);
 }
Exemplo n.º 4
0
 internal CameraApi(ApiImplementation apiImplementation, CameraApiInternal cameraApiInternal)
 {
     m_apiImplementation = apiImplementation;
     m_inputHandler      = new CameraInputHandler();
     OnTransitionStart  += TransitionStarted;
     OnTransitionEnd    += TransitionEnded;
     m_cameraApiInternal = cameraApiInternal;
     m_cameraApiInternal.OnTransitionStartInternal += () => OnTransitionStart(this, GetControlledCamera());
     m_cameraApiInternal.OnTransitionEndInternal   += () => OnTransitionEnd(this, GetControlledCamera());
     IsCameraDrivenFromInput = true;
 }
Exemplo n.º 5
0
 public ApiModule(ApiImplementation scheduler)
 {
     _scheduler = scheduler;
     BuildRoutes();
 }
Exemplo n.º 6
0
 public NancyBootstrapper(ApiImplementation scheduler, IUserValidator validator)
 {
     _scheduler = scheduler;
     _validator = validator;
 }
Exemplo n.º 7
0
 internal SpacesApi(ApiImplementation apiImplementation)
 {
     m_apiImplementation = apiImplementation;
 }