Exemple #1
0
      protected WorkFilter(WorkDispatcher dispatcher, string name, int order)
      {
        if (name.IsNullOrWhiteSpace()||dispatcher==null)
         throw new WaveException(StringConsts.ARGUMENT_ERROR + GetType().FullName+".ctor(dispatcher|name==null|empty)");

        m_Name = name;
        m_Dispatcher = dispatcher;
        m_Server = dispatcher.ComponentDirector;
        m_Order = order;
      }
Exemple #2
0
 public CompositeHandler(WorkDispatcher dispatcher, IConfigSectionNode confNode) : base(dispatcher, confNode)
 {
    foreach(var hNode in confNode.Children.Where(cn=>cn.IsSameName(WorkHandler.CONFIG_HANDLER_SECTION)))
    {
     var sub = FactoryUtils.Make<WorkHandler>(hNode, args: new object[] {dispatcher, hNode});
     sub.___setParentHandler( this );
     if(!m_Handlers.Register(sub))
      throw new WaveException(StringConsts.CONFIG_DUPLICATE_HANDLER_NAME_ERROR.Args(hNode.AttrByName(Configuration.CONFIG_NAME_ATTR).Value)); 
    }
  
 }
Exemple #3
0
      protected WorkFilter(WorkDispatcher dispatcher, IConfigSectionNode confNode)
      {
        if (confNode==null||dispatcher==null)
         throw new WaveException(StringConsts.ARGUMENT_ERROR + GetType().FullName+".ctor(dispatcher|confNode==null|empty)");

        m_Dispatcher = dispatcher;
        m_Server = dispatcher.ComponentDirector;
        m_Name = confNode.AttrByName(Configuration.CONFIG_NAME_ATTR).Value;
        m_Order = confNode.AttrByName(Configuration.CONFIG_ORDER_ATTR).ValueAsInt(0);

        if (m_Name.IsNullOrWhiteSpace())
         throw new WaveException(StringConsts.ARGUMENT_ERROR + GetType().FullName+".ctor(confNode$name==null|empty)");
      }
Exemple #4
0
      protected WorkHandler(WorkDispatcher dispatcher, string name, int order, WorkMatch match)
      {
        if (dispatcher==null)
         throw new WaveException(StringConsts.ARGUMENT_ERROR + GetType().FullName+".ctor(dispatcher==null|empty)");
        
        if (name.IsNullOrWhiteSpace())
          name = "{0}({1})".Args(GetType().FullName, Guid.NewGuid());

        m_Name = name;
        m_Dispatcher = dispatcher;
        m_Server = dispatcher.ComponentDirector;
        m_Order = order;
        if (match!=null)
         m_Matches.Register(match);
      }
Exemple #5
0
      protected WorkHandler(WorkDispatcher dispatcher, IConfigSectionNode confNode)
      {
        if (confNode==null||dispatcher==null)
         throw new WaveException(StringConsts.ARGUMENT_ERROR + GetType().FullName+".ctor(dispatcher|confNode==null|empty)");

        m_Dispatcher = dispatcher;
        m_Server = dispatcher.ComponentDirector;
        m_Name = confNode.AttrByName(Configuration.CONFIG_NAME_ATTR).Value;
        m_Order = confNode.AttrByName(Configuration.CONFIG_ORDER_ATTR).ValueAsInt(0);
        if (m_Name.IsNullOrWhiteSpace())
         m_Name = "{0}({1})".Args(GetType().FullName, Guid.NewGuid());


        foreach(var cn in confNode.Children.Where(cn=>cn.IsSameName(WorkFilter.CONFIG_FILTER_SECTION)))
          if(!m_Filters.Register( FactoryUtils.Make<WorkFilter>(cn, typeof(WorkFilter), args: new object[]{ this, cn })) )
            throw new WaveException(StringConsts.CONFIG_HANDLER_DUPLICATE_FILTER_NAME_ERROR.Args(cn.AttrByName(Configuration.CONFIG_NAME_ATTR).Value)); 

        foreach(var cn in confNode.Children.Where(cn=>cn.IsSameName(WorkMatch.CONFIG_MATCH_SECTION)))
          if(!m_Matches.Register( FactoryUtils.Make<WorkMatch>(cn, typeof(WorkMatch), args: new object[]{ cn })) )
            throw new WaveException(StringConsts.CONFIG_HANDLER_DUPLICATE_MATCH_NAME_ERROR.Args(cn.AttrByName(Configuration.CONFIG_NAME_ATTR).Value)); 
      }
Exemple #6
0
 public ErrorFilter(WorkDispatcher dispatcher, IConfigSectionNode confNode): base(dispatcher, confNode)
 {
   ConfigureMatches(confNode, m_ShowDumpMatches, m_LogMatches, GetType().FullName);  
   ConfigAttribute.Apply(this, confNode);
 }
 public BeforeAfterFilterBase(WorkDispatcher dispatcher, IConfigSectionNode confNode)
     : base(dispatcher, confNode)
 {
     configureMatches(confNode);
 }
Exemple #8
0
 public BeforeAfterFilterBase(WorkDispatcher dispatcher, string name, int order) : base(dispatcher, name, order)
 {
 }
Exemple #9
0
 public GeoLookupFilter(WorkDispatcher dispatcher, string name, int order)
     : base(dispatcher, name, order)
 {
 }
Exemple #10
0
 public void BeginInvoke(Action callback)
 {
     WorkDispatcher.BeginInvoke(callback);
 }
Exemple #11
0
 protected SimpleHandler(WorkDispatcher dispatcher, string name, int order, WorkMatch match) : base(dispatcher, name, order, match)
 {
 }
 public StockContentSiteHandler(WorkDispatcher dispatcher, string name, int order, WorkMatch match)
     : base(dispatcher, name, order, match)
 {
 }
Exemple #13
0
 public RedirectFilter(WorkDispatcher dispatcher, string name, int order) : base(dispatcher, name, order) {}
Exemple #14
0
 public EmbeddedTestSiteHandler(WorkDispatcher dispatcher, string name, int order, WorkMatch match)
     : base(dispatcher, name, order, match)
 {
 }
Exemple #15
0
 public EmbeddedTestSiteHandler(WorkDispatcher dispatcher, IConfigSectionNode confNode)
     : base(dispatcher, confNode)
 {
 }
Exemple #16
0
 public ErrorFilter(WorkDispatcher dispatcher, IConfigSectionNode confNode) : base(dispatcher, confNode)
 {
     ConfigureMatches(confNode, m_ShowDumpMatches, m_LogMatches, m_SecurityRedirectMatches, GetType().FullName);
     ConfigAttribute.Apply(this, confNode);
 }
Exemple #17
0
 public CompositeHandler(WorkDispatcher dispatcher, string name, int order, WorkMatch match) : base(dispatcher, name, order, match)
 {
 }
Exemple #18
0
 public void BeginInvokeLowPrio(Action callback)
 {
     WorkDispatcher.BeginInvoke(callback, DispatcherPriority.ContextIdle);
 }
Exemple #19
0
 public PortalFilter(WorkDispatcher dispatcher, string name, int order)
     : base(dispatcher, name, order)
 {
 }
 public StockContentSiteHandler(WorkDispatcher dispatcher, IConfigSectionNode confNode)
     : base(dispatcher, confNode)
 {
 }
Exemple #21
0
 protected EmbeddedSiteHandler(WorkDispatcher dispatcher, string name, int order, WorkMatch match)
                     : base(dispatcher, name, order, match)
 {
    foreach(var action in GetActions()) m_Actions.Register(action); 
 }
Exemple #22
0
 public LoggingFilter(WorkDispatcher dispatcher, string name, int order) : base(dispatcher, name, order)
 {
 }
 protected FileDownloadHandler(WorkDispatcher dispatcher, string name, int order, WorkMatch match) : base(dispatcher, name, order, match)
 {
 }
Exemple #24
0
 public LoggingFilter(WorkDispatcher dispatcher, IConfigSectionNode confNode) : base(dispatcher, confNode)
 {
 }
Exemple #25
0
 public NOPHandler(WorkDispatcher dispatcher, string name, int order, WorkMatch match)
     : base(dispatcher, name, order, match)
 {
 }
 protected ContextDumpHandler(WorkDispatcher dispatcher, IConfigSectionNode confNode) : base(dispatcher, confNode)
 {
 }
Exemple #27
0
 public LoggingFilter(WorkDispatcher dispatcher, string name, int order)
     : base(dispatcher, name, order)
 {
 }
Exemple #28
0
 public RedirectFilter(WorkDispatcher dispatcher, string name, int order) : base(dispatcher, name, order)
 {
 }
Exemple #29
0
 protected SimpleHandler(WorkDispatcher dispatcher, IConfigSectionNode confNode) : base(dispatcher, confNode)
 {
 }
Exemple #30
0
 public RedirectFilter(WorkDispatcher dispatcher, IConfigSectionNode confNode) : base(dispatcher, confNode)
 {
     configureMatches(confNode);
 }
Exemple #31
0
 public GeoLookupFilter(WorkDispatcher dispatcher, IConfigSectionNode confNode)
     : base(dispatcher, confNode)
 {
     configureMatches(confNode);
 }
Exemple #32
0
                                                      1000; //msec

        #endregion

        #region .ctor
        public SessionFilter(WorkDispatcher dispatcher, string name, int order) : base(dispatcher, name, order)
        {
        }
 public BeforeAfterFilterBase(WorkDispatcher dispatcher, string name, int order)
     : base(dispatcher, name, order)
 {
 }
Exemple #34
0
 public SessionFilter(WorkDispatcher dispatcher, IConfigSectionNode confNode) : base(dispatcher, confNode)
 {
     ctor(confNode);
 }
Exemple #35
0
 public CustomFilter(WorkDispatcher dispatcher, string name, int order)
     : base(dispatcher, name, order)
 {
 }
Exemple #36
0
 protected ContextDumpHandler(WorkDispatcher dispatcher, string name, int order, WorkMatch match) : base(dispatcher, name, order, match)
 {
 }
Exemple #37
0
 public StopFilter(WorkDispatcher dispatcher, IConfigSectionNode confNode): base(dispatcher, confNode) { }
Exemple #38
0
      protected override void DoConfigure(IConfigSectionNode node)
      {
        if (node==null)
        {
          //0 get very root
          node = App.ConfigRoot[SysConsts.CONFIG_WAVE_SECTION];
          if (!node.Exists) return;

          //1 try to find the server with the same name as this instance
          var snode = node.Children.FirstOrDefault(cn=>cn.IsSameName(CONFIG_SERVER_SECTION) && cn.IsSameNameAttr(Name));

          //2 try to find a server without a name
          if (snode==null)
            snode = node.Children.FirstOrDefault(cn=>cn.IsSameName(CONFIG_SERVER_SECTION) && cn.AttrByName(Configuration.CONFIG_NAME_ATTR).Value.IsNullOrWhiteSpace());

          if (snode==null) return;
          node = snode;
        }


        ConfigAttribute.Apply(this, node);
     
        m_Prefixes.Clear();
        foreach(var name in node.Children
                             .Where(c=>c.IsSameName(CONFIG_PREFIX_SECTION))
                             .Select(c=>c.AttrByName(Configuration.CONFIG_NAME_ATTR).Value)
                             .Where(n=>n.IsNotNullOrWhiteSpace()))
           m_Prefixes.Add(name);

        var nGate = node[CONFIG_GATE_SECTION];

        if (nGate.Exists)
          m_Gate = FactoryUtils.MakeAndConfigure<INetGateImplementation>(nGate, typeof(NetGate), args: new object[]{this});

        var nDispatcher = node[CONFIG_DISPATCHER_SECTION];

        if (nDispatcher.Exists)
          m_Dispatcher = FactoryUtils.MakeAndConfigure<WorkDispatcher>(nDispatcher, typeof(WorkDispatcher), args: new object[]{this});

        ErrorFilter.ConfigureMatches(node[CONFIG_DEFAULT_ERROR_HANDLER_SECTION], m_ErrorShowDumpMatches, m_ErrorLogMatches, GetType().FullName);
      }
Exemple #39
0
 protected EmbeddedSiteHandler(WorkDispatcher dispatcher, IConfigSectionNode confNode) : base(dispatcher, confNode)
 {
    ConfigAttribute.Apply(this, confNode);
    foreach(var action in GetActions()) m_Actions.Register(action); 
 }
Exemple #40
0
 public BeforeAfterFilterBase(WorkDispatcher dispatcher, IConfigSectionNode confNode) : base(dispatcher, confNode)
 {
     configureMatches(confNode);
 }
Exemple #41
0
 public RedirectFilter(WorkDispatcher dispatcher, IConfigSectionNode confNode): base(dispatcher, confNode) { configureMatches(confNode); }
Exemple #42
0
                                                    1000;//msec  

    #endregion

    #region .ctor
      public SessionFilter(WorkDispatcher dispatcher, string name, int order) : base(dispatcher, name, order) {}
 protected FileDownloadHandler(WorkDispatcher dispatcher, IConfigSectionNode confNode) : base(dispatcher, confNode)
 {
    ConfigAttribute.Apply(this, confNode);
 }
Exemple #44
0
         protected TypeLookupHandler(WorkDispatcher dispatcher, string name, int order, WorkMatch match)
                              : base(dispatcher, name, order, match)
         {

         }
Exemple #45
0
      protected override void DoStart()
      {                 
        if (m_Prefixes.Count==0)
          throw new WaveException(StringConsts.SERVER_NO_PREFIXES_ERROR.Args(Name));
        
        if (!s_Servers.Register(this))
          throw new WaveException(StringConsts.SERVER_COULD_NOT_GET_REGISTERED_ERROR.Args(Name));

        try
        {
           if (m_Gate!=null)
             if (m_Gate is Service)
               ((Service)m_Gate).Start();


           if (m_Dispatcher==null)
              m_Dispatcher = new WorkDispatcher(this);
        
           m_Dispatcher.Start();

           m_AcceptSemaphore = new Semaphore(m_ParallelAccepts, m_ParallelAccepts);
           m_WorkSemaphore = new Semaphore(m_ParallelWorks, m_ParallelWorks);

           m_AcceptThread = new Thread(acceptThreadSpin);
           m_AcceptThread.Name = "{0}-AcceptThread".Args(Name);

           m_InstrumentationThread = new Thread(instrumentationThreadSpin);
           m_InstrumentationThread.Name = "{0}-InstrumentationThread".Args(Name);
           m_InstrumentationThreadWaiter = new AutoResetEvent(false);
  
           m_Listener = new HttpListener();
           
           foreach(var prefix in m_Prefixes)
             m_Listener.Prefixes.Add(prefix);

           BeforeListenerStart(m_Listener);

           m_Listener.Start();

           AfterListenerStart(m_Listener);


           m_Listener.IgnoreWriteExceptions = m_IgnoreClientWriteErrors;

           if (m_KernelHttpQueueLimit!=DEFAULT_KERNEL_HTTP_QUEUE_LIMIT)
              PlatformUtils.SetRequestQueueLimit(m_Listener, m_KernelHttpQueueLimit);
        }
        catch
        {
          closeListener();
          
          if (m_AcceptSemaphore!=null) { m_AcceptSemaphore.Dispose(); m_AcceptSemaphore = null;}
          if (m_WorkSemaphore!=null) { m_WorkSemaphore.Dispose(); m_WorkSemaphore = null;}
          if (m_AcceptThread!=null) { m_AcceptThread = null;}
          if (m_Dispatcher!=null) m_Dispatcher.WaitForCompleteStop();
          
          if (m_Gate!=null && m_Gate is Service)
            ((Service)m_Gate).WaitForCompleteStop();

          s_Servers.Unregister(this);

          throw;
        }
        
        m_InstrumentationThread.Start();
        m_AcceptThread.Start();
      }
 public StockContentSiteHandler(WorkDispatcher dispatcher, string name, int order, WorkMatch match)
                       : base(dispatcher, name, order, match){}
 public StockContentSiteHandler(WorkDispatcher dispatcher, IConfigSectionNode confNode)
                       : base(dispatcher, confNode) {}
 public EmbeddedTestSiteHandler(WorkDispatcher dispatcher, string name, int order, WorkMatch match)
     : base(dispatcher, name, order, match)
 {
 }
Exemple #49
0
 public SessionFilter(WorkDispatcher dispatcher, IConfigSectionNode confNode): base(dispatcher, confNode) {ctor(confNode);}
 public EmbeddedTestSiteHandler(WorkDispatcher dispatcher, IConfigSectionNode confNode)
     : base(dispatcher, confNode)
 {
 }
Exemple #51
0
 public NOPHandler(WorkDispatcher dispatcher, IConfigSectionNode confNode)
     : base(dispatcher, confNode)
 {
 }
Exemple #52
0
 public AuthorizeSessionFilter(WorkDispatcher dispatcher, IConfigSectionNode confNode) : base(dispatcher, confNode)
 {
     ConfigAttribute.Apply(this, confNode);
 }