package io.teknek.nibiru.coordinator; import java.io.IOException; import java.util.UUID; import java.util.concurrent.atomic.AtomicLong; import org.codehaus.jackson.map.ObjectMapper; import io.teknek.nibiru.Destination; import io.teknek.nibiru.personality.ColumnFamilyPersonality; import io.teknek.nibiru.transport.BaseMessage; public class Hinter { private final AtomicLong hintsAdded = new AtomicLong(); private final ColumnFamilyPersonality hintsColumnFamily; private ObjectMapper OM = new ObjectMapper(); public Hinter(ColumnFamilyPersonality person){ this.hintsColumnFamily = person; } public void hint(BaseMessage m, Destination destination) { try { hintsColumnFamily.put(destination.getDestinationId(), UUID.randomUUID().toString(), OM.writeValueAsString(m), System.currentTimeMillis() * 1000L); hintsAdded.getAndIncrement(); } catch (IOException e) { e.printStackTrace(); } } public long getHintsAdded() { return hintsAdded.get(); } }