anchor.diff:  
     {$IFDEF QDAC_QWorker}, qworker{$ENDIF}
     {$IFDEF DIOCP_Task}, diocp.task{$ENDIF}
  -  , diocp.tcp.server, utils.queues;
  +  , diocp.tcp.server, utils.queues, utils.hashs;
   
   
   
   const
     HTTPLineBreak = #13#10;
  +  SESSIONID = 'diocp_sid';
   
   type
     TDiocpHttpState = (hsCompleted, hsRequest {  } , hsRecvingPost {  } );
  
positive.code: 
    TDiocpHttpRequest = class(TObject)
    private
  
      /// <summary>
      ///   Ͷ֮ǰ¼DNA첽ʱǷȡǰ
  
negative.code:   Result.FDiocpHttpServer := Self;
  end;
  
  function TDiocpHttpServer.GetSession(pvSessionID:string): TDiocpHttpSession;
  begin
    FSessionList.Lock;
    try
      Result := TDiocpHttpSession(FSessionList.ValueMap[pvSessionID]);
      if Result = nil then
      begin
        Result := FSessionClass.Create();
        FSessionList.ValueMap[pvSessionID] := Result;      
      end;
    finally
      FSessionList.unLock;
    end;
  end;
  
  procedure TDiocpHttpServer.GiveBackRequest(pvRequest: TDiocpHttpRequest);
  begin
    FRequestPool.EnQueue(pvRequest);
  end;
  
  procedure TDiocpHttpServer.RegisterSessionClass(pvClass:TDiocpHttpSessionClass);
  begin
    FSessionClass := pvClass;
  end;
  
  function TDiocpHttpCookie.ToString: String;
  begin
    Result := Format('%s=%s; Path=%s;', [self.FName, self.FValue, Self.FPath]);
  end;
  
  constructor TDiocpHttpSession.Create;
  begin
  
  end;
  
  
  
  end.
  