


# state property








[InterfaceState](../../package-fidl_fidl/InterfaceState.md) state
  
_inherited_



<p>Gets the current state.</p>



## Implementation

```dart
InterfaceState get state => _currentState;
```




state=
([InterfaceState](../../package-fidl_fidl/InterfaceState.md) newState)  
_inherited_



<p>Change the state.</p>



## Implementation

```dart
@protected
set state(InterfaceState newState) {
  if (_currentState == newState) {
    // No change.
    return;
  }
  if (newState.index < _currentState.index) {
    throw FidlStateException(
        "Can't change InterfaceState from $_currentState to $newState.");
  }
  _currentState = newState;
  _streamController.add(newState);
}
```







