/// <param name='operations'> /// The operations group for this extension method. /// </param> /// <param name='requestId'> /// </param> /// <param name='cancellationToken'> /// The cancellation token. /// </param> public static async Task <SessionDTO> GetByRequestIdAsync(this ISessionRequest operations, int requestId, CancellationToken cancellationToken = default(CancellationToken)) { using (var _result = await operations.GetByRequestIdWithHttpMessagesAsync(requestId, null, cancellationToken).ConfigureAwait(false)) { return(_result.Body); } }
/// <param name='operations'> /// The operations group for this extension method. /// </param> /// <param name='sessionDTO'> /// </param> /// <param name='cancellationToken'> /// The cancellation token. /// </param> public static async Task <SessionDTO> PostBySessionDTOAsync(this ISessionRequest operations, SessionDTO sessionDTO, CancellationToken cancellationToken = default(CancellationToken)) { using (var _result = await operations.PostBySessionDTOWithHttpMessagesAsync(sessionDTO, null, cancellationToken).ConfigureAwait(false)) { return(_result.Body); } }
public ISessionRequest[] GetArray() { lock (sync) { ISessionRequest[] ret = new ISessionRequest[tableById.Count]; tableById.Values.CopyTo(ret, 0); return(ret); } }
/// <summary> /// resuelve un nombre, se le pasa un objeto NodeBind sin direccion /// física y devuelve la dirección física correspondiente con el nodeId /// del objeto NodeBind pasado /// </summary> /// <param name="nodeId"></param> /// <returns></returns> public NodeBind Resolve(NodeId nodeId) { NodeBind ret = null; try { if (tableInner.ContainsKey(nodeId)) { DirectoryEntry entry = new DirectoryEntry(); if (tableInner.TryGetValue(nodeId, out entry)) { if (entry.RoutedBySeed) { ret = entry.SeedBind; } else { ret = entry.NodeBind; } } } else if (localNode.Sessions.ExistsByNodeId(nodeId)) { // buscamos en las sesiones propias y sino en las resoluciones propias ISessionRequest session = localNode.Sessions.GetSession(nodeId); ret = session.NodeBindApplicant; } else { // ISessionRequest[] seeds = localNode.Seeds.CloneArray(); // foreach (ISessionRequest seed in seeds) // IEnumerator<KeyValuePair<string, ISessionRequest>> seed = localNode.Seeds.GetArray(); foreach (ISessionRequest seed in localNode.Seeds.GetArray()) { ResolveRequest rreq = new ResolveRequest(nodeId, localNode); ResolveReply reply = (ResolveReply)localNode.SendRequest(rreq, seed.NodeBindRemote); if (reply != null) { if (reply.resolvedOk) { DirectoryEntry entry = new DirectoryEntry(seed.NodeBindRemote, reply.resolvedNodeBind); localNode.Directory.AddEntryInner(entry); ret = reply.resolvedNodeBind; } } } } } catch (Exception e) { Node.LogAppendLine(e); } return(ret); }
public ISessionRequest GetSession(string auth) { ISessionRequest ret = null; try { if (tableById.ContainsKey(auth)) { ret = tableById[auth]; } } catch (Exception err) { Node.LogAppendLine(err); } return(ret); }
public ISessionRequest GetSession(NodeId nodeId) { ISessionRequest ret = null; try { if (tableByNodeId.ContainsKey(nodeId.Id)) { ret = tableByNodeId[nodeId.Id]; } } catch (Exception err) { Node.LogAppendLine(err); } return(ret); }
public void AddSession(ISessionRequest session) { try { lock (sync) { if (!tableById.ContainsKey(session.Auth)) { tableById.Add(session.Auth, session); tableByNodeId.Add(session.NodeBindApplicant.NodeId.Id, session); } } } catch (Exception err) { Node.LogAppendLine(err); } }
public void RemoveSession(NodeId nodeId) { try { lock (sync) { bool ret = false; if (tableByNodeId.ContainsKey(nodeId.Id)) { ISessionRequest session = tableByNodeId[nodeId.Id]; ret = tableById.Remove(session.Auth); ret |= tableByNodeId.Remove(nodeId.Id); } } } catch (Exception err) { Node.LogAppendLine(err); } }
public bool RemoveSession(ISessionRequest session) { lock (sync) { bool ret = false; try { if (tableById.ContainsKey(session.Auth)) { ret = tableById.Remove(session.Auth); ret |= tableByNodeId.Remove(session.NodeBindApplicant.NodeId.Id); } } catch (Exception err) { Node.LogAppendLine(err); } return(ret); } }
public void AddSession(NodeId nodeId, ISessionRequest session) { try { lock (sync) { if (!tableById.ContainsKey(session.Auth)) { tableById.Add(session.Auth, session); if (tableById[session.Auth].Auth != session.Auth) { Console.Write("Error"); } tableByNodeId.Add(nodeId.Id, session); } } } catch (Exception err) { Node.LogAppendLine(err); } }
/// <param name='operations'> /// The operations group for this extension method. /// </param> /// <param name='sessionDTO'> /// </param> public static SessionDTO PostBySessionDTO(this ISessionRequest operations, SessionDTO sessionDTO) { return(operations.PostBySessionDTOAsync(sessionDTO).GetAwaiter().GetResult()); }
/// <param name='operations'> /// The operations group for this extension method. /// </param> /// <param name='requestId'> /// </param> public static SessionDTO GetByRequestId(this ISessionRequest operations, int requestId) { return(operations.GetByRequestIdAsync(requestId).GetAwaiter().GetResult()); }