package shard // Mode represents enumeration of Shard work modes. type Mode uint32 // TODO: more detailed description of shard modes. const ( _ Mode = iota // ModeActive is a Mode value for active shard. ModeActive // ModeInactive is a Mode value for inactive shard. ModeInactive // ModeReadOnly is a Mode value for read-only shard. ModeReadOnly // ModeFault is a Mode value for faulty shard. ModeFault // ModeEvacuate is a Mode value for evacuating shard. ModeEvacuate ) func (m Mode) String() string { switch m { default: return "UNDEFINED" case ModeActive: return "ACTIVE" case ModeInactive: return "INACTIVE" case ModeReadOnly: return "READ_ONLY" case ModeFault: return "FAULT" case ModeEvacuate: return "EVACUATE" } } // SetMode sets mode of the shard. // // Returns any error encountered that did not allow // to set shard mode. func (s *Shard) SetMode(m Mode) error { s.mode.Store(uint32(m)) return nil } func (s *Shard) getMode() Mode { return Mode(s.mode.Load()) }