org.forstdb.FileOperationInfo Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of forstjni Show documentation
Show all versions of forstjni Show documentation
ForSt fat jar with modifications specific for Apache Flink that contains .so files for linux32 and linux64 (glibc and musl-libc), jnilib files
for Mac OSX, and a .dll for Windows x64.
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
// This source code is licensed under both the GPLv2 (found in the
// COPYING file in the root directory) and Apache 2.0 License
// (found in the LICENSE.Apache file in the root directory).
package org.forstdb;
import java.util.Objects;
/**
* Java representation of FileOperationInfo struct from include/rocksdb/listener.h
*/
public class FileOperationInfo {
private final String path;
private final long offset;
private final long length;
private final long startTimestamp;
private final long duration;
private final Status status;
/**
* Access is private as this will only be constructed from
* C++ via JNI.
*/
FileOperationInfo(final String path, final long offset, final long length,
final long startTimestamp, final long duration, final Status status) {
this.path = path;
this.offset = offset;
this.length = length;
this.startTimestamp = startTimestamp;
this.duration = duration;
this.status = status;
}
/**
* Get the file path.
*
* @return the file path.
*/
public String getPath() {
return path;
}
/**
* Get the offset.
*
* @return the offset.
*/
public long getOffset() {
return offset;
}
/**
* Get the length.
*
* @return the length.
*/
public long getLength() {
return length;
}
/**
* Get the start timestamp (in nanoseconds).
*
* @return the start timestamp.
*/
public long getStartTimestamp() {
return startTimestamp;
}
/**
* Get the operation duration (in nanoseconds).
*
* @return the operation duration.
*/
public long getDuration() {
return duration;
}
/**
* Get the status.
*
* @return the status.
*/
public Status getStatus() {
return status;
}
@Override
public boolean equals(final Object o) {
if (this == o)
return true;
if (o == null || getClass() != o.getClass())
return false;
FileOperationInfo that = (FileOperationInfo) o;
return offset == that.offset && length == that.length && startTimestamp == that.startTimestamp
&& duration == that.duration && Objects.equals(path, that.path)
&& Objects.equals(status, that.status);
}
@Override
public int hashCode() {
return Objects.hash(path, offset, length, startTimestamp, duration, status);
}
@Override
public String toString() {
return "FileOperationInfo{"
+ "path='" + path + '\'' + ", offset=" + offset + ", length=" + length + ", startTimestamp="
+ startTimestamp + ", duration=" + duration + ", status=" + status + '}';
}
}