minor changes for allowing coffee manager access from cooja

This commit is contained in:
fros4943 2009-08-11 17:03:59 +00:00
parent 8d9f8e3a17
commit b4f3cce790
5 changed files with 38 additions and 27 deletions

View File

@ -28,7 +28,7 @@
* *
* This file is part of the Contiki operating system. * This file is part of the Contiki operating system.
* *
* $Id: CoffeeConfiguration.java,v 1.3 2009/08/11 14:42:58 nvt-se Exp $ * $Id: CoffeeConfiguration.java,v 1.4 2009/08/11 17:03:59 fros4943 Exp $
* *
* @author Nicolas Tsiftes * @author Nicolas Tsiftes
* *
@ -39,6 +39,8 @@ package se.sics.coffee;
import java.io.*; import java.io.*;
import java.util.Properties; import java.util.Properties;
import se.sics.coffee.CoffeeFS.CoffeeException;
public class CoffeeConfiguration { public class CoffeeConfiguration {
public static final int FD_SET_SIZE = 256; public static final int FD_SET_SIZE = 256;
public static final int MAX_OPEN_FILES = 256; public static final int MAX_OPEN_FILES = 256;

View File

@ -28,7 +28,7 @@
* *
* This file is part of the Contiki operating system. * This file is part of the Contiki operating system.
* *
* $Id: CoffeeFS.java,v 1.4 2009/08/10 12:51:52 nvt-se Exp $ * $Id: CoffeeFS.java,v 1.5 2009/08/11 17:03:59 fros4943 Exp $
* *
* @author Nicolas Tsiftes * @author Nicolas Tsiftes
* *
@ -40,18 +40,6 @@ import java.io.*;
import java.util.Map; import java.util.Map;
import java.util.TreeMap; import java.util.TreeMap;
class CoffeeException extends RuntimeException {
public CoffeeException(String message) {
super("Coffee error: " + message);
}
}
class CoffeeFileException extends RuntimeException {
public CoffeeFileException(String message) {
super("Coffee file error: " + message);
}
}
public class CoffeeFS { public class CoffeeFS {
private CoffeeImage image; private CoffeeImage image;
private CoffeeConfiguration conf; private CoffeeConfiguration conf;
@ -142,9 +130,12 @@ public class CoffeeFS {
} }
public CoffeeFile insertFile(String filename) throws IOException { public CoffeeFile insertFile(String filename) throws IOException {
return insertFile(new File(filename));
}
public CoffeeFile insertFile(File file) throws IOException {
CoffeeFile coffeeFile; CoffeeFile coffeeFile;
try { try {
File file = new File(filename);
FileInputStream input = new FileInputStream(file); FileInputStream input = new FileInputStream(file);
int allocatePages = pageCount(file.length()); int allocatePages = pageCount(file.length());
int start = findFreeExtent(allocatePages); int start = findFreeExtent(allocatePages);
@ -153,7 +144,7 @@ public class CoffeeFS {
return null; return null;
} }
CoffeeHeader header = new CoffeeHeader(this, start); CoffeeHeader header = new CoffeeHeader(this, start);
header.setName(filename); header.setName(file.getName());
header.setReservedSize(allocatePages); header.setReservedSize(allocatePages);
header.allocate(); header.allocate();
coffeeFile = new CoffeeFile(this, header); coffeeFile = new CoffeeFile(this, header);
@ -179,13 +170,31 @@ public class CoffeeFS {
} }
public boolean extractFile(String filename) throws IOException { public boolean extractFile(String filename) throws IOException {
CoffeeFile file = files.get(filename); return extractFile(filename, new File(filename));
}
public boolean extractFile(String fileInCoffee, File fileOnDisk) throws IOException {
CoffeeFile file = files.get(fileInCoffee);
if (file == null) { if (file == null) {
return false; return false;
} }
file.saveContents(filename); file.saveContents(fileOnDisk);
return true; return true;
} }
static class CoffeeException extends RuntimeException {
public CoffeeException(String message) {
super("Coffee error: " + message);
}
}
static class CoffeeFileException extends RuntimeException {
public CoffeeFileException(String message) {
super("Coffee file error: " + message);
}
}
} }

View File

@ -28,7 +28,7 @@
* *
* This file is part of the Contiki operating system. * This file is part of the Contiki operating system.
* *
* $Id: CoffeeFile.java,v 1.5 2009/08/11 14:42:58 nvt-se Exp $ * $Id: CoffeeFile.java,v 1.6 2009/08/11 17:03:59 fros4943 Exp $
* *
* @author Nicolas Tsiftes * @author Nicolas Tsiftes
* *
@ -94,14 +94,14 @@ public class CoffeeFile {
} }
} }
public void saveContents(String filename) throws IOException { public void saveContents(File file) throws IOException {
int startOffset = header.getPage() * int startOffset = header.getPage() *
coffeeFS.getConfiguration().pageSize + coffeeFS.getConfiguration().pageSize +
header.rawLength(); header.rawLength();
int i; int i;
byte[] bytes; byte[] bytes;
FileOutputStream fOut = new FileOutputStream(filename); FileOutputStream fOut = new FileOutputStream(file);
if (microLog != null) { if (microLog != null) {
for (i = 0; i < microLog.getLogRecords(); i++) { for (i = 0; i < microLog.getLogRecords(); i++) {

View File

@ -28,7 +28,7 @@
* *
* This file is part of the Contiki operating system. * This file is part of the Contiki operating system.
* *
* $Id: CoffeeImage.java,v 1.1 2009/08/04 10:36:53 nvt-se Exp $ * $Id: CoffeeImage.java,v 1.2 2009/08/11 17:03:59 fros4943 Exp $
* *
* @author Nicolas Tsiftes * @author Nicolas Tsiftes
* *
@ -38,7 +38,7 @@ package se.sics.coffee;
import java.io.IOException; import java.io.IOException;
interface CoffeeImage { public interface CoffeeImage {
CoffeeConfiguration getConfiguration(); CoffeeConfiguration getConfiguration();
void read(byte[] bytes, int size, int offset) throws IOException; void read(byte[] bytes, int size, int offset) throws IOException;
void write(byte[] bytes, int size, int offset) throws IOException; void write(byte[] bytes, int size, int offset) throws IOException;

View File

@ -28,7 +28,7 @@
* *
* This file is part of the Contiki operating system. * This file is part of the Contiki operating system.
* *
* $Id: CoffeeManager.java,v 1.3 2009/08/10 12:51:52 nvt-se Exp $ * $Id: CoffeeManager.java,v 1.4 2009/08/11 17:03:59 fros4943 Exp $
* *
* @author Nicolas Tsiftes * @author Nicolas Tsiftes
* *
@ -144,7 +144,7 @@ public class CoffeeManager {
} }
} }
private static void printStatistics(CoffeeFS coffeeFS) { public static void printStatistics(CoffeeFS coffeeFS) {
int bytesWritten = 0; int bytesWritten = 0;
int bytesReserved = 0; int bytesReserved = 0;
int fileCount = 0; int fileCount = 0;
@ -177,7 +177,7 @@ public class CoffeeManager {
} }
} }
private static void printFiles(Map<String, CoffeeFile> files) { public static void printFiles(Map<String, CoffeeFile> files) {
try { try {
Iterator<Map.Entry<String, CoffeeFile>> iterator = files.entrySet().iterator(); Iterator<Map.Entry<String, CoffeeFile>> iterator = files.entrySet().iterator();
while (iterator.hasNext()) { while (iterator.hasNext()) {