package io.teknek.nibiru.client; import io.teknek.nibiru.ServerId; import io.teknek.nibiru.Token; import io.teknek.nibiru.engine.atom.AtomKey; import io.teknek.nibiru.engine.atom.AtomPair; import io.teknek.nibiru.engine.atom.AtomValue; import io.teknek.nibiru.transport.Response; import io.teknek.nibiru.transport.directsstable.Close; import io.teknek.nibiru.transport.directsstable.Open; import io.teknek.nibiru.transport.directsstable.Write; import io.teknek.nibiru.transport.sponsor.SponsorMessage; import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.Map.Entry; import java.util.SortedMap; public class InternodeClient { private Client client; public InternodeClient(String host, int port, int connectionTimeout, int socketTimeout ){ client = new Client(host, port,connectionTimeout, socketTimeout); } /** * * @param id a uuid becomes an sstablename on server */ public void createSsTable(String keyspace, String store, String id){ Open m = new Open(); m.setKeyspace(keyspace); m.setStore(store); m.setId(id); try { Response response = client.post(m); } catch (IOException | RuntimeException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public void transmit(String keyspace, String store, Token token, SortedMap<AtomKey,AtomValue> columns, String id){ Write w = new Write(); w.setKeyspace(keyspace); w.setStore(store); w.setToken(token); List<AtomPair> p = new ArrayList<>(); for (Entry<AtomKey, AtomValue> i : columns.entrySet()){ p.add(new AtomPair(i.getKey(), i.getValue())); } w.setColumns(p); w.setId(id); /* Message m = new Message(); m.setKeyspace("stream"); List<AtomPair> p = new ArrayList<>(); for (Entry<AtomKey, AtomValue> i : columns.entrySet()){ p.add(new AtomPair(i.getKey(), i.getValue())); } m.setPersonality(DirectSsTableWriter.PERSONALITY); Map<String, Object> payload = new HashMap<>(); payload.put("keyspace", keyspace); payload.put("type", DirectSsTableWriter.WRITE); payload.put("store", store); payload.put("token", token); payload.put("columns", p); payload.put("id", id); m.setPayload(payload); */ try { Response response = client.post(w); } catch (IOException | RuntimeException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public void closeSsTable(String keyspace, String store, String id){ Close m = new Close(); m.setKeyspace(keyspace); m.setStore(store); m.setId(id); try { Response response = client.post(m); } catch (IOException | RuntimeException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public void join(String keyspace, String sponsorId, ServerId me, String wantedToken, String transportHost) { SponsorMessage s = new SponsorMessage(); s.setKeyspace(keyspace); s.setRequestId(me.getU().toString()); s.setWantedToken(wantedToken); s.setTransportHost(transportHost); try { Response response = client.post(s); } catch (IOException | RuntimeException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }