CycloneTechnology/ChaMP

View on GitHub
champ-ipmi/src/main/scala/com/cyclone/ipmi/protocol/readingoffset/RedundancyEventOffset.scala

Summary

Maintainability
A
0 mins
Test Coverage
package com.cyclone.ipmi.protocol.readingoffset

sealed trait RedundancyEventOffset extends EventReadingOffset

object RedundancyEventOffset {

  case object FullyRedundant extends RedundancyEventOffset

  case object RedundancyLost extends RedundancyEventOffset

  case object RedundancyDegraded extends RedundancyEventOffset

  case object NonRedundantSufficientResourcesFromRedundant extends RedundancyEventOffset

  case object NonRedundantSufficientResourcesFromInsufficientResources extends RedundancyEventOffset

  case object NonRedundantInsufficientResources extends RedundancyEventOffset

  case object RedundancyDegradedFromFullyRedundant extends RedundancyEventOffset

  case object RedundancyDegradedFromNonRedundant extends RedundancyEventOffset

  def offsetFor(bit: Int): Option[RedundancyEventOffset] = bit match {
    case 0x00 => Some(RedundancyEventOffset.FullyRedundant)
    case 0x01 => Some(RedundancyEventOffset.RedundancyLost)
    case 0x02 => Some(RedundancyEventOffset.RedundancyDegraded)
    case 0x03 => Some(RedundancyEventOffset.NonRedundantSufficientResourcesFromRedundant)
    case 0x04 =>
      Some(RedundancyEventOffset.NonRedundantSufficientResourcesFromInsufficientResources)
    case 0x05 => Some(RedundancyEventOffset.NonRedundantInsufficientResources)
    case 0x06 => Some(RedundancyEventOffset.RedundancyDegradedFromFullyRedundant)
    case 0x07 => Some(RedundancyEventOffset.RedundancyDegradedFromNonRedundant)
    case _    => None
  }
}