public MyOwnDiscoveryProtocolHandlers(AbstractSession mySession) : base(mySession) { }
public MyOwnClientCoreHandlers(AbstractSession mySession) : base(mySession) { }
public MyOwnStoreProtocolHandlers(AbstractSession mySession) : base(mySession) { }
private bool Authorize( Service authService, Identity identity, AbstractSession session, CorrelationID cid) { lock (d_authorizationStatus) { d_authorizationStatus[cid] = AuthorizationStatus.WAITING; } EventQueue tokenEventQueue = new EventQueue(); try { session.GenerateToken(new CorrelationID(tokenEventQueue), tokenEventQueue); } catch (Exception e) { System.Console.WriteLine(e.Message); return(false); } String token = null; const int timeoutMilliSeconds = 10000; Event eventObj = tokenEventQueue.NextEvent(timeoutMilliSeconds); if (eventObj.Type == Event.EventType.TOKEN_STATUS || eventObj.Type == Event.EventType.REQUEST_STATUS) { foreach (Message msg in eventObj) { System.Console.WriteLine(msg.ToString()); if (msg.MessageType == TOKEN_SUCCESS) { token = msg.GetElementAsString("token"); } } } if (token == null) { System.Console.WriteLine("Failed to get token"); return(false); } Request authRequest = authService.CreateAuthorizationRequest(); authRequest.Set("token", token); lock (d_authorizationStatus) { session.SendAuthorizationRequest(authRequest, identity, cid); long startTime = System.DateTime.Now.Ticks; const int WAIT_TIME = 10 * 1000; // 10 seconds while (true) { Monitor.Wait(d_authorizationStatus, WAIT_TIME); if (d_authorizationStatus[cid] != AuthorizationStatus.WAITING) { return(d_authorizationStatus[cid] == AuthorizationStatus.AUTHORIZED); } if (System.DateTime.Now.Ticks - startTime > WAIT_TIME * 10000) { return(false); } } } }