@Direct public SegmentStream getNodeStream() { return _nodeStream; }
@Direct public SegmentStream getBlobStream() { // return _blobStream; return _nodeStream; }
@Direct public Iterable<TableKelp> getTablesDirect() { ArrayList<TableKelp> tables = new ArrayList<>(_tableMap.values()); return tables; }
@Direct public Page getPage(int pid) { return _pages.get(pid); }
@Direct public PageBlob getBlobPage(int pid) { return (PageBlob) _pages.get(pid); }
@Direct public void getTableByName(String name, Result<TableKraken> result) { // System.out.println("TNN: " + name + " " + _tableNameMap); result.ok(_tableNameMap.get(name)); }
@Direct public ServerPod findActiveServer(String name) { FailoverNode failover = _failoverMap.get(name); if (failover != null) { return failover.getServer(); } else { return null; } }
@Direct public PageLeaf getLeaf(int pid) { PageLeaf leaf = (PageLeaf) _pages.get(pid); return leaf; }
@Direct public long getSequence() { return _seqGen.current(); }
@Direct public TableKelp getTableByKeyDirect(byte[] tableKey) { return _tableKeyMap.get(HashKey.create(tableKey)); }
@Direct public String generateAddress(String path) { StringBuilder sb = new StringBuilder(); sb.append("//"); sb.append(path); sb.append("/"); Base64Web.encode(sb, RandomUtil.getRandomLong()); Base64Web.encode(sb, _sequence.incrementAndGet()); String address = sb.toString(); return "session:" + address; }
@Direct public Iterable<PodBartender> getPods() { ArrayList<PodBartender> pods = new ArrayList<>(); for (String podName : _podMap.keySet()) { pods.add(getPodProxy(podName)); } if (_localPod != null) { pods.add(getPodProxy(_localPod.getId())); } return pods; }
/** * Renames to a destination file */ @Override @Direct public void renameTo(String relPath, Result<Boolean> result, WriteOption ...options) { _root.renameTo(_path, toAbsolute(relPath), result, options); }
@Direct public ServerHeartbeat getServerHandle(String address, int port, boolean isSSL) { return getHeartbeatService().createServer(address, port, isSSL); }
@Direct @Override public void getDirect(RowCursor cursor, Result<Boolean> result) { boolean isValid = getImpl(cursor); result.ok(isValid); }
@Direct public long getNodeSequence() { SegmentStream nodeStream = _nodeStream; if (nodeStream != null) { return nodeStream.getSequence(); } else { return _seqGen.current(); } }
@Direct public void getTableByKey(byte[] tableKey, Result<TableKraken> result) { result.ok(getTableByKeyImpl(tableKey)); }
@Direct public ClusterBartender findCluster(String clusterId) { return getHeartbeatService().findCluster(clusterId); }
@Direct public void compareAndSetBlobPage(PageBlob oldPage, PageBlob page) { int pid = page.getId(); updateTailPid(pid); _pages.compareAndSet(pid, oldPage, page); }
@Direct public OutputStream openWriteFile(String path, WriteOption ...options) { CursorPrepareSync cursor = _fileInsert.prepare(); cursor.setInt(1, getParentHash(path)); cursor.setBytes(2, getPathKey(path)); cursor.setInt(3, hash(path)); cursor.setString(4, getParent(path)); cursor.setString(5, getName(path)); return new OutputStreamFile(path, cursor, options); }