public function getEntityIds($machine, $state = null)
{
$connection = $this->getConnection();
$prefix = $this->getPrefix();
$query = 'SELECT se.entity_id FROM ' . $prefix . 'statemachine_entities AS se
JOIN ' . $prefix . 'statemachine_states AS ss ON (se.state = ss.state AND
se.machine = ss.machine) WHERE se.machine = :machine';
$output = array();
try {
if ($state != null) {
$query .= ' AND se.state = :state';
}
$statement = $connection->prepare($query);
$statement->bindParam(":machine", $machine);
if ($state != null) {
$statement->bindParam(":state", $state);
}
$result = $statement->execute();
if ($result === false) {
throw new Exception($this->getErrorInfo($statement));
}
$rows = $statement->fetchAll();
if ($rows === false) {
throw new Exception("failed getting rows: " . $this->getErrorInfo($statement));
}
foreach ($rows as $row) {
$output[] = $row['entity_id'];
}
} catch (\Exception $e) {
throw new Exception($e->getMessage(), Exception::PERSISTENCE_LAYER_EXCEPTION, $e);
}
return $output;
}