blob: ff4de359e742e6729c1a2e4e33d350b70677de96 [file] [log] [blame]
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef _HDFS_LIBHDFS3_CLIENT_FILESTATUS_H_
#define _HDFS_LIBHDFS3_CLIENT_FILESTATUS_H_
#include "Permission.h"
#include <stdint.h>
#include <string>
namespace hdfs {
class FileStatus {
public:
FileStatus() :
isdir(false), atime(0), blocksize(0), length(0), mtime(
0), permission(0644), replications(0) {
}
int64_t getAccessTime() const {
return atime;
}
void setAccessTime(int64_t accessTime) {
atime = accessTime;
}
short getReplication() const {
return replications;
}
void setReplication(short blockReplication) {
replications = blockReplication;
}
int64_t getBlockSize() const {
return blocksize;
}
void setBlocksize(int64_t blocksize) {
this->blocksize = blocksize;
}
const char *getGroup() const {
return group.c_str();
}
void setGroup(const char * group) {
this->group = group;
}
/**
* Is this a directory?
* @return true if this is a directory
*/
bool isDirectory() const {
return isdir;
}
void setIsdir(bool isdir) {
this->isdir = isdir;
}
int64_t getLength() const {
return length;
}
void setLength(int64_t length) {
this->length = length;
}
int64_t getModificationTime() const {
return mtime;
}
void setModificationTime(int64_t modificationTime) {
mtime = modificationTime;
}
const char *getOwner() const {
return owner.c_str();
}
void setOwner(const char * owner) {
this->owner = owner;
}
const char *getPath() const {
return path.c_str();
}
void setPath(const char * path) {
this->path = path;
}
const Permission &getPermission() const {
return permission;
}
void setPermission(const Permission & permission) {
this->permission = permission;
}
const char *getSymlink() const {
return symlink.c_str();
}
void setSymlink(const char *symlink) {
this->symlink = symlink;
}
/**
* Is this a file?
* @return true if this is a file
*/
bool isFile() {
return !isdir && !isSymlink();
}
/**
* Is this a symbolic link?
* @return true if this is a symbolic link
*/
bool isSymlink() {
return !symlink.empty();
}
private:
bool isdir;
int64_t atime;
int64_t blocksize;
int64_t length;
int64_t mtime;
Permission permission;
short replications;
std::string group;
std::string owner;
std::string path;
std::string symlink;
};
}
#endif