Class AnonymousActionRenderer
An IActionRenderer that invokes its callbacks. In other words, this is an IActionRenderer version of AnonymousRenderer.
This class is useful when you want an one-use ad-hoc implementation (i.e., Java-style anonymous class) of IActionRenderer interface.
Inherited Members
Namespace: Libplanet.Blockchain.Renderers
Assembly: Libplanet.dll
Syntax
public sealed class AnonymousActionRenderer : AnonymousRenderer, IActionRenderer, IRenderer
Examples
With object initializers, you can easily make an one-use action renderer:
var actionRenderer = new AnonymousActionRenderer
{
ActionRenderer = (action, context, nextStates) =>
{
// Implement RenderAction() here.
};
};
Properties
| Improve this Doc View SourceActionErrorRenderer
A callback function to be invoked together with RenderActionError(IValue, IActionContext, Exception).
Declaration
public Action<IValue, IActionContext, Exception> ActionErrorRenderer { get; set; }
Property Value
Type | Description |
---|---|
Action<Bencodex.Types.IValue, IActionContext, Exception> |
ActionRenderer
A callback function to be invoked together with RenderAction(IValue, IActionContext, IAccountStateDelta).
Declaration
public Action<IValue, IActionContext, IAccountStateDelta> ActionRenderer { get; set; }
Property Value
Type | Description |
---|---|
Action<Bencodex.Types.IValue, IActionContext, IAccountStateDelta> |
BlockEndRenderer
A callback function to be invoked together with RenderBlockEnd(Block, Block).
Declaration
public Action<Block, Block> BlockEndRenderer { get; set; }
Property Value
Type | Description |
---|---|
Action<Block, Block> |
Methods
| Improve this Doc View SourceRenderAction(IValue, IActionContext, IAccountStateDelta)
Does things that should be done right after an action
is executed and applied to the blockchain.
Declaration
public void RenderAction(IValue action, IActionContext context, IAccountStateDelta nextStates)
Parameters
Type | Name | Description |
---|---|---|
Bencodex.Types.IValue | action | An executed action. |
IActionContext | context | The equivalent context object to an object passed to
the |
IAccountStateDelta | nextStates | The states right after this action executed,
which means it is equivalent to the states |
Remarks
It is guaranteed to be called only once for an action
,
and only after applied to the blockchain, unless an exception is thrown during executing
the action
(in that case RenderActionError(IValue, IActionContext, Exception) is called instead) or
once the action
has been unrendered.
Also note that this method is invoked after RenderBlock(Block, Block) method is called
(where its second parameter newTip
contains a transaction the action
belongs to).
RenderActionError(IValue, IActionContext, Exception)
Does the similar things to RenderAction(IValue, IActionContext, IAccountStateDelta), except that this method
is invoked when action
has terminated with an exception.
Declaration
public void RenderActionError(IValue action, IActionContext context, Exception exception)
Parameters
Type | Name | Description |
---|---|---|
Bencodex.Types.IValue | action | An action which threw an exception during execution. |
IActionContext | context | The equivalent context object to an object passed to
the |
Exception | exception | The exception thrown during executing the |
Remarks
Also note that this method is invoked after RenderBlock(Block, Block) method is called
(where its second parameter newTip
contains a transaction the action
belongs to).
RenderBlockEnd(Block, Block)
Does things that should be done right all actions in a new Block are rendered.
Declaration
public void RenderBlockEnd(Block oldTip, Block newTip)
Parameters
Type | Name | Description |
---|---|---|
Block | oldTip | The previous Tip. |
Block | newTip | The current Tip. |
Remarks
It is guaranteed to be called only once for a block.