A filter is a special hook point inside the engine that enables
integration with external systems or implementation of user
defined logic. The filter has a simple life-cycle: it initializes
itself in the init() method, processes events in its process()
method and finally cleans resources on close(). The process()
method is called by the engine when an event that matches the
filter's Operation Code. The possible codes are specified by the
FilterOperation. Filters are grouped by priorities.
Filters with higher priorities
are activated closer to the hook point. This means:
* Before filters - filters with lower priorities will be activated first.
* After filters - filters with higher priorities will be activated first.
Since filters are activated in sensitive hook points in the engine,
they should be careful with performing long blocking calls,
such as connecting to databases.
Declaration Syntax
C# | Visual Basic | Visual C++ | J# |
public interface ISpaceFilter : IDisposable
Public Interface ISpaceFilter _ Inherits IDisposable
public interface class ISpaceFilter : IDisposable
public interface ISpaceFilter extends IDisposable
Members
All Members | Methods | ||||
Icon | Member | Description |
---|---|---|
Dispose()()()() |
Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
(Inherited from IDisposable.) | |
Init(ISpaceProxy, String, IDictionary<(Of <<'(String, String>)>>), FilterPriority) |
Initializes this filter.
| |
Process(SecurityContext, ISpaceFilterEntry, FilterOperation) |
This method is called by the engine when an event matching this filter's
operation code occurs in the space engine.
| |
Process(SecurityContext, ISpaceFilterEntry, ISpaceFilterEntry, FilterOperation) |
This method is called by the engine when an event matching this filter's operation code occurs in the engine.
Notice: This is a special case that is called only on update() only on AfterUpdate.
Also on BeforeNotifyTrigger and AfterNotifyTrigger.
On AfterUpdate: the first entity represents the old entry while the second is the new entry.
On BeforeNotifyTrigger and AfterNotifyTrigger: the first entity represents the entry while the second is the template.
|