.. _modifiers: Member Modifiers ================ Member modifiers change the way a member behaves. Modifiers are specified between square brackets following the member definition. The members ``distance_traveled``, ``angle_traveled``, ``bumbers``, and ``create_state`` in "experimental.create." all use the ``readonly`` modifier. This means that the client can get these values but cannot set them. The available member modifiers are as follows: readonly | | **Valid Members:** ``property``, ``pipe``, ``wire``, ``memory`` Specifies a member as readonly. For a ``wire``, the default implementation is ``WireBroadcaster``. For a ``pipe``, the default implementation is ``PipeBroadcaster``. For ``property`` and ``memory`` the setters are either disabled or not declared. writeonly | | **Valid Members:** ``property``, ``pipe``, ``wire``, ``memory`` Specifies a member as write. For a ``wire``, the default implementation is ``WireUnicastReceiver``. There is no default implementation for ``pipe``. For ``property`` and ``memory`` the getters are either disabled or not declared. unreliable | | **Valid Members:** ``pipe`` Specifies that a pipe is unreliable, meaning that packets may be lost and and/or returned out of order. Note that the ``unreliable`` keyword cannot be used with a ``PipeBroadcaster`` with a ``backlog`` value set. The backlog flow control requires that all sent packets arrive at their destination. perclient | | **Valid Members:** ``property`` Specifies that the value of a property is unique to the client. Most properties belong to the service and are the same for all connected clients. This modifier should be used for settings that are unique to each client such as session keys. urgent | | **Valid Members:** ``property``, ``function``, ``event`` Specifies that a member requires high priority delivery. This should be used for operations like aborting a motion. **Note that this does not qualify as a method to implement an e-stop.**