xtreemfs/cpp/include/ld_preload/environment.h

48 lines
1.1 KiB
C++

/*
* Copyright (c) 2014 by Matthias Noack, Zuse Institute Berlin
*
* Licensed under the BSD License, see LICENSE file for details.
*
*/
#ifndef PRELOAD_ENVIRONMENT_H_
#define PRELOAD_ENVIRONMENT_H_
#include <string>
#include <stdint.h>
#include <sys/types.h>
#include "libxtreemfs/system_user_mapping_unix.h"
#include "libxtreemfs/volume_implementation.h"
#include "ld_preload/open_file_table.h"
#include "ld_preload/path.h"
#include "ld_preload/preload_options.h"
namespace xtreemfs {
class Client;
class VolumeHandle;
}
class Environment {
public:
Environment();
~Environment();
//xtreemfs::Volume* GetVolume(const std::string& volume_name);
xtreemfs::Volume* GetVolume();
xtreemfs::SystemUserMappingUnix& GetSystemUserMapping();
xtreemfs::PreloadOptions options_;
xtreemfs::Client* client_;
xtreemfs::Volume* volume_;
std::string volume_name_;
/** Translates between local and remote usernames and groups. */
xtreemfs::SystemUserMappingUnix system_user_mapping_;
xtreemfs::pbrpc::UserCredentials user_creds_;
OpenFileTable open_file_table_;
};
#endif // PRELOAD_ENVIRONMENT_H_