pub trait TransactionHandler {
// Required methods
fn family_name(&self) -> String;
fn family_versions(&self) -> Vec<String>;
fn namespaces(&self) -> Vec<String>;
fn apply(
&self,
request: &TpProcessRequest,
context: &mut dyn TransactionContext,
) -> Result<(), ApplyError>;
}Required Methods§
Sourcefn family_name(&self) -> String
fn family_name(&self) -> String
TransactionHandler that defines the business logic for a new transaction family. The family_name, family_versions, and namespaces functions are used by the processor to route processing requests to the handler. family_name should return the name of the transaction family that this handler can process, e.g. “intkey”
Sourcefn family_versions(&self) -> Vec<String>
fn family_versions(&self) -> Vec<String>
family_versions should return a list of versions this transaction family handler can process, e.g. [“1.0”]
Sourcefn namespaces(&self) -> Vec<String>
fn namespaces(&self) -> Vec<String>
namespaces should return a list containing all the handler’s namespaces, e.g. [“abcdef”]
Sourcefn apply(
&self,
request: &TpProcessRequest,
context: &mut dyn TransactionContext,
) -> Result<(), ApplyError>
fn apply( &self, request: &TpProcessRequest, context: &mut dyn TransactionContext, ) -> Result<(), ApplyError>
Apply is the single method where all the business logic for a transaction family is defined. The method will be called by the transaction processor upon receiving a TpProcessRequest that the handler understands and will pass in the TpProcessRequest and an initialized instance of the Context type.