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; }
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)); } }
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)"); }
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); }
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)); }
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); }
public BeforeAfterFilterBase(WorkDispatcher dispatcher, string name, int order) : base(dispatcher, name, order) { }
public GeoLookupFilter(WorkDispatcher dispatcher, string name, int order) : base(dispatcher, name, order) { }
public void BeginInvoke(Action callback) { WorkDispatcher.BeginInvoke(callback); }
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) { }
public RedirectFilter(WorkDispatcher dispatcher, string name, int order) : base(dispatcher, name, order) {}
public EmbeddedTestSiteHandler(WorkDispatcher dispatcher, string name, int order, WorkMatch match) : base(dispatcher, name, order, match) { }
public EmbeddedTestSiteHandler(WorkDispatcher dispatcher, IConfigSectionNode confNode) : base(dispatcher, confNode) { }
public ErrorFilter(WorkDispatcher dispatcher, IConfigSectionNode confNode) : base(dispatcher, confNode) { ConfigureMatches(confNode, m_ShowDumpMatches, m_LogMatches, m_SecurityRedirectMatches, GetType().FullName); ConfigAttribute.Apply(this, confNode); }
public CompositeHandler(WorkDispatcher dispatcher, string name, int order, WorkMatch match) : base(dispatcher, name, order, match) { }
public void BeginInvokeLowPrio(Action callback) { WorkDispatcher.BeginInvoke(callback, DispatcherPriority.ContextIdle); }
public PortalFilter(WorkDispatcher dispatcher, string name, int order) : base(dispatcher, name, order) { }
public StockContentSiteHandler(WorkDispatcher dispatcher, IConfigSectionNode confNode) : base(dispatcher, confNode) { }
protected EmbeddedSiteHandler(WorkDispatcher dispatcher, string name, int order, WorkMatch match) : base(dispatcher, name, order, match) { foreach(var action in GetActions()) m_Actions.Register(action); }
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) { }
public LoggingFilter(WorkDispatcher dispatcher, IConfigSectionNode confNode) : base(dispatcher, confNode) { }
public NOPHandler(WorkDispatcher dispatcher, string name, int order, WorkMatch match) : base(dispatcher, name, order, match) { }
protected ContextDumpHandler(WorkDispatcher dispatcher, IConfigSectionNode confNode) : base(dispatcher, confNode) { }
public LoggingFilter(WorkDispatcher dispatcher, string name, int order) : base(dispatcher, name, order) { }
public RedirectFilter(WorkDispatcher dispatcher, string name, int order) : base(dispatcher, name, order) { }
protected SimpleHandler(WorkDispatcher dispatcher, IConfigSectionNode confNode) : base(dispatcher, confNode) { }
public RedirectFilter(WorkDispatcher dispatcher, IConfigSectionNode confNode) : base(dispatcher, confNode) { configureMatches(confNode); }
public GeoLookupFilter(WorkDispatcher dispatcher, IConfigSectionNode confNode) : base(dispatcher, confNode) { configureMatches(confNode); }
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) { }
public SessionFilter(WorkDispatcher dispatcher, IConfigSectionNode confNode) : base(dispatcher, confNode) { ctor(confNode); }
public CustomFilter(WorkDispatcher dispatcher, string name, int order) : base(dispatcher, name, order) { }
protected ContextDumpHandler(WorkDispatcher dispatcher, string name, int order, WorkMatch match) : base(dispatcher, name, order, match) { }
public StopFilter(WorkDispatcher dispatcher, IConfigSectionNode confNode): base(dispatcher, confNode) { }
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); }
protected EmbeddedSiteHandler(WorkDispatcher dispatcher, IConfigSectionNode confNode) : base(dispatcher, confNode) { ConfigAttribute.Apply(this, confNode); foreach(var action in GetActions()) m_Actions.Register(action); }
public BeforeAfterFilterBase(WorkDispatcher dispatcher, IConfigSectionNode confNode) : base(dispatcher, confNode) { configureMatches(confNode); }
public RedirectFilter(WorkDispatcher dispatcher, IConfigSectionNode confNode): base(dispatcher, confNode) { configureMatches(confNode); }
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); }
protected TypeLookupHandler(WorkDispatcher dispatcher, string name, int order, WorkMatch match) : base(dispatcher, name, order, match) { }
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) { }
public SessionFilter(WorkDispatcher dispatcher, IConfigSectionNode confNode): base(dispatcher, confNode) {ctor(confNode);}
public EmbeddedTestSiteHandler(WorkDispatcher dispatcher, IConfigSectionNode confNode) : base(dispatcher, confNode) { }
public NOPHandler(WorkDispatcher dispatcher, IConfigSectionNode confNode) : base(dispatcher, confNode) { }
public AuthorizeSessionFilter(WorkDispatcher dispatcher, IConfigSectionNode confNode) : base(dispatcher, confNode) { ConfigAttribute.Apply(this, confNode); }