You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flume.apache.org by es...@apache.org on 2011/08/19 20:10:32 UTC
svn commit: r1159723 -
/incubator/flume/branches/flume-728/flume-ng-core/src/main/java/org/apache/flume/formatter/output/PathManager.java
Author: esammer
Date: Fri Aug 19 18:10:31 2011
New Revision: 1159723
URL: http://svn.apache.org/viewvc?rev=1159723&view=rev
Log:
- Added PathManager to control the naming of file sequences. Probably temporary - not much thought here but need something to prototype.
Added:
incubator/flume/branches/flume-728/flume-ng-core/src/main/java/org/apache/flume/formatter/output/PathManager.java
Added: incubator/flume/branches/flume-728/flume-ng-core/src/main/java/org/apache/flume/formatter/output/PathManager.java
URL: http://svn.apache.org/viewvc/incubator/flume/branches/flume-728/flume-ng-core/src/main/java/org/apache/flume/formatter/output/PathManager.java?rev=1159723&view=auto
==============================================================================
--- incubator/flume/branches/flume-728/flume-ng-core/src/main/java/org/apache/flume/formatter/output/PathManager.java (added)
+++ incubator/flume/branches/flume-728/flume-ng-core/src/main/java/org/apache/flume/formatter/output/PathManager.java Fri Aug 19 18:10:31 2011
@@ -0,0 +1,54 @@
+package org.apache.flume.formatter.output;
+
+import java.io.File;
+import java.util.concurrent.atomic.AtomicInteger;
+
+public class PathManager {
+
+ private long seriesTimestamp;
+ private File baseDirectory;
+ private AtomicInteger fileIndex;
+
+ private File currentFile;
+
+ public PathManager() {
+ seriesTimestamp = System.currentTimeMillis();
+ fileIndex = new AtomicInteger();
+ }
+
+ public File nextFile() {
+ currentFile = new File(baseDirectory, seriesTimestamp + "-"
+ + fileIndex.incrementAndGet());
+
+ return currentFile;
+ }
+
+ public File getCurrentFile() {
+ if (currentFile == null) {
+ return nextFile();
+ }
+
+ return currentFile;
+ }
+
+ public void rotate() {
+ currentFile = null;
+ }
+
+ public File getBaseDirectory() {
+ return baseDirectory;
+ }
+
+ public void setBaseDirectory(File baseDirectory) {
+ this.baseDirectory = baseDirectory;
+ }
+
+ public long getSeriesTimestamp() {
+ return seriesTimestamp;
+ }
+
+ public AtomicInteger getFileIndex() {
+ return fileIndex;
+ }
+
+}