CatapultServer  v0.5.0.1 (Elephant)
TypedAccountRestriction.h
Go to the documentation of this file.
1 
21 #pragma once
22 #include "AccountRestriction.h"
24 
25 namespace catapult { namespace state {
26 
28  template<typename TRestrictionValue>
30  public:
32  explicit TypedAccountRestriction(const AccountRestriction& restriction) : m_restriction(restriction)
33  {}
34 
35  public:
38  return m_restriction.descriptor();
39  }
40 
42  size_t size() const {
43  return m_restriction.values().size();
44  }
45 
47  bool contains(const TRestrictionValue& value) const {
48  return m_restriction.contains(ToVector(value));
49  }
50 
51  public:
54  return m_restriction.canAllow({ modification.ModificationType, ToVector(modification.Value) });
55  }
56 
59  return m_restriction.canBlock({ modification.ModificationType, ToVector(modification.Value) });
60  }
61 
62  private:
64  };
65 }}
catapult::state::TypedAccountRestriction::canBlock
bool canBlock(const model::AccountRestrictionModification< TRestrictionValue > &modification) const
Returns true if modification can be applied to the underlying restriction.
Definition: TypedAccountRestriction.h:58
catapult::state::AccountRestriction::canBlock
bool canBlock(const model::RawAccountRestrictionModification &modification) const
Returns true if modification can be applied to the blocked values.
Definition: AccountRestriction.cpp:50
catapult::state::AccountRestriction::descriptor
const AccountRestrictionDescriptor & descriptor() const
Gets the restriction descriptor.
Definition: AccountRestriction.cpp:30
catapult::state::AccountRestriction
Account restriction.
Definition: AccountRestriction.h:29
catapult::state::TypedAccountRestriction
Typed account restriction.
Definition: TypedAccountRestriction.h:29
catapult::state::AccountRestrictionDescriptor
Account restriction descriptor.
Definition: AccountRestrictionDescriptor.h:37
catapult::state::AccountRestriction::canAllow
bool canAllow(const model::RawAccountRestrictionModification &modification) const
Returns true if modification can be applied to the allowed values.
Definition: AccountRestriction.cpp:46
catapult::model::AccountRestrictionModification::Value
TRestrictionValue Value
Restriction value.
Definition: AccountRestrictionTypes.h:67
catapult::model::AccountRestrictionModification::ModificationType
AccountRestrictionModificationType ModificationType
Modification type.
Definition: AccountRestrictionTypes.h:64
catapult::state::ToVector
auto ToVector(T value)
Converts value to a vector.
Definition: AccountRestrictionUtils.h:30
catapult::state::TypedAccountRestriction::m_restriction
const AccountRestriction & m_restriction
Definition: TypedAccountRestriction.h:63
catapult::state::TypedAccountRestriction::descriptor
const AccountRestrictionDescriptor & descriptor() const
Gets the descriptor of the underlying account restriction.
Definition: TypedAccountRestriction.h:37
catapult::state::TypedAccountRestriction::canAllow
bool canAllow(const model::AccountRestrictionModification< TRestrictionValue > &modification) const
Returns true if modification can be applied to the underlying restriction.
Definition: TypedAccountRestriction.h:53
AccountRestrictionUtils.h
catapult::state::AccountRestriction::contains
bool contains(const std::vector< uint8_t > &value) const
Returns true if value is known.
Definition: AccountRestriction.cpp:42
AccountRestriction.h
catapult
Definition: AddressExtractionExtension.cpp:28
catapult::model::AccountRestrictionModification
Binary layout for an account restriction modification.
Definition: AccountRestrictionTypes.h:61
catapult::state::TypedAccountRestriction::contains
bool contains(const TRestrictionValue &value) const
Returns true if the underlying account restriction contains value.
Definition: TypedAccountRestriction.h:47
catapult::state::AccountRestriction::values
const std::set< std::vector< uint8_t > > & values() const
Gets the values.
Definition: AccountRestriction.cpp:38
catapult::state::TypedAccountRestriction::size
size_t size() const
Gets the number of values of the underlying account restriction.
Definition: TypedAccountRestriction.h:42
catapult::state::TypedAccountRestriction::TypedAccountRestriction
TypedAccountRestriction(const AccountRestriction &restriction)
Creates a typed account restriction around restriction.
Definition: TypedAccountRestriction.h:32