documentation and prototyping
This commit is contained in:
parent
c07d6ab172
commit
2779cfa63d
3 changed files with 46 additions and 3 deletions
|
@ -27,6 +27,12 @@ import org.bouncycastle.asn1.*;
|
||||||
import org.bouncycastle.x509.extension.X509ExtensionUtil;
|
import org.bouncycastle.x509.extension.X509ExtensionUtil;
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* App
|
||||||
|
*
|
||||||
|
* This is just a simple class to handle command line interactions
|
||||||
|
*
|
||||||
|
*/
|
||||||
public class App {
|
public class App {
|
||||||
|
|
||||||
public static byte[] getBytesFromFile(File file) throws IOException {
|
public static byte[] getBytesFromFile(File file) throws IOException {
|
||||||
|
@ -65,11 +71,11 @@ public class App {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static List<String> hydrateFromBytes(byte[] derblob) {
|
public static List<String> hydrateFromBytes(byte[] compressedBlob) {
|
||||||
Util util = new Util();
|
Util util = new Util();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
return util.hydrateContentPackage(derblob);
|
return util.hydrateContentPackage(compressedBlob);
|
||||||
} catch (IOException ex) {
|
} catch (IOException ex) {
|
||||||
System.out.println(ex);
|
System.out.println(ex);
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,11 +15,31 @@
|
||||||
|
|
||||||
package com.redhat.trie;
|
package com.redhat.trie;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* PathTree
|
||||||
|
*
|
||||||
|
* The efficient means by which to check the content sets
|
||||||
|
*
|
||||||
|
* TODO - this is a prototype stub
|
||||||
|
*/
|
||||||
public class PathTree {
|
public class PathTree {
|
||||||
private HuffNode dict;
|
private HuffNode dict;
|
||||||
private PathNode tree;
|
private PathNode tree;
|
||||||
|
|
||||||
public PathTree() {
|
public PathTree() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public PathTree(byte[] payload) {
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean validate(String contentPath) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<String> toList() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -43,6 +43,8 @@ import org.bouncycastle.x509.extension.X509ExtensionUtil;
|
||||||
/*
|
/*
|
||||||
* Util
|
* Util
|
||||||
*
|
*
|
||||||
|
* All the misc dirty work
|
||||||
|
*
|
||||||
*/
|
*/
|
||||||
public class Util {
|
public class Util {
|
||||||
private NodeContext pathNodeContext;
|
private NodeContext pathNodeContext;
|
||||||
|
@ -506,8 +508,23 @@ public class Util {
|
||||||
/*
|
/*
|
||||||
* FIXME - break this apart, so that the hydrated payload
|
* FIXME - break this apart, so that the hydrated payload
|
||||||
* can be structure to more quickly search, and use less memory
|
* can be structure to more quickly search, and use less memory
|
||||||
|
*
|
||||||
|
* Rename it for tracking, and to be clear about what is happening
|
||||||
*/
|
*/
|
||||||
public List<String> hydrateContentPackage(byte[] payload)
|
public List<String> hydrateContentPackage(byte[] compressedBlob)
|
||||||
|
throws IOException, UnsupportedEncodingException {
|
||||||
|
try {
|
||||||
|
return listFromCompressedBlob(compressedBlob);
|
||||||
|
} catch (Throwable t) {
|
||||||
|
throw t;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* From the deflated payload, produce the content set lists
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public List<String> listFromCompressedBlob(byte[] payload)
|
||||||
throws IOException, UnsupportedEncodingException {
|
throws IOException, UnsupportedEncodingException {
|
||||||
List<HuffNode> pathDictionary = new ArrayList<HuffNode>();
|
List<HuffNode> pathDictionary = new ArrayList<HuffNode>();
|
||||||
List<HuffNode> nodeDictionary = new ArrayList<HuffNode>();
|
List<HuffNode> nodeDictionary = new ArrayList<HuffNode>();
|
||||||
|
|
Loading…
Reference in a new issue