0.9.8.10
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
Hypertable::FsBroker::QfsBroker Class Reference

#include <QfsBroker.h>

Inheritance diagram for Hypertable::FsBroker::QfsBroker:
Inheritance graph
[legend]
Collaboration diagram for Hypertable::FsBroker::QfsBroker:
Collaboration graph
[legend]

Public Member Functions

 QfsBroker (PropertiesPtr &cfg)
 
virtual ~QfsBroker ()
 
virtual void open (Response::Callback::Open *cb, const char *fname, uint32_t flags, uint32_t bufsz)
 Open a file and pass the fd to the callback on success. More...
 
virtual void close (ResponseCallback *cb, uint32_t fd)
 Close open file. More...
 
virtual void create (Response::Callback::Open *cb, const char *fname, uint32_t flags, int32_t bufsz, int16_t replication, int64_t blksz)
 Open a file, and create it if it doesn't exist, optionally overwriting the contents. More...
 
virtual void read (Response::Callback::Read *cb, uint32_t fd, uint32_t amount)
 Read data from an open file. More...
 
virtual void append (Response::Callback::Append *, uint32_t fd, uint32_t amount, const void *data, Filesystem::Flags flags)
 Append data to open file. More...
 
virtual void seek (ResponseCallback *cb, uint32_t fd, uint64_t offset)
 Seek open file. More...
 
virtual void remove (ResponseCallback *cb, const char *fname)
 Remove a file or directory. More...
 
virtual void length (Response::Callback::Length *cb, const char *fname, bool accurate=true)
 Get length of file. More...
 
virtual void pread (Response::Callback::Read *cb, uint32_t fd, uint64_t offset, uint32_t amount, bool verify_checksum)
 Read from file at position. More...
 
virtual void mkdirs (ResponseCallback *cb, const char *dname)
 Make a directory hierarcy, If the parent dirs are not, present, they are also created. More...
 
virtual void rmdir (ResponseCallback *cb, const char *dname)
 Remove a directory. More...
 
virtual void flush (ResponseCallback *cb, uint32_t fd)
 Flush data that has been written. More...
 
virtual void sync (ResponseCallback *cb, uint32_t fd)
 Sync out data that has been written. More...
 
virtual void status (Response::Callback::Status *cb)
 Check status of FSBroker. More...
 
virtual void shutdown (ResponseCallback *cb)
 Gracefully shutdown broker, closeing open files. More...
 
virtual void readdir (Response::Callback::Readdir *cb, const char *dname)
 Read a directory's contents. More...
 
virtual void exists (Response::Callback::Exists *cb, const char *fname)
 Check for the existence of a file. More...
 
virtual void rename (ResponseCallback *cb, const char *src, const char *dst)
 Rename a file from src to dst. More...
 
virtual void debug (ResponseCallback *cb, int32_t command, StaticBuffer &serialized_parameters)
 Debug command. More...
 
- Public Member Functions inherited from Hypertable::FsBroker::Lib::Broker
virtual ~Broker ()
 
OpenFileMapget_open_file_map ()
 

Private Member Functions

void report_error (ResponseCallback *cb, int error)
 

Private Attributes

MetricsHandlerPtr m_metrics_handler
 Metrics collection handler. More...
 
StatusManager m_status_manager
 Server status manager. More...
 
std::string m_host
 
int m_port
 
KFS::KfsClient *const m_client
 

Static Private Attributes

static std::atomic< int > ms_next_fd
 Atomic counter for file descriptor assignment. More...
 

Additional Inherited Members

- Protected Attributes inherited from Hypertable::FsBroker::Lib::Broker
OpenFileMap m_open_file_map
 A map of open files. More...
 

Detailed Description

Definition at line 69 of file QfsBroker.h.

Constructor & Destructor Documentation

QfsBroker::QfsBroker ( PropertiesPtr cfg)

Definition at line 54 of file QfsBroker.cc.

QfsBroker::~QfsBroker ( )
virtual

Definition at line 62 of file QfsBroker.cc.

Member Function Documentation

void QfsBroker::append ( Response::Callback::Append cb,
uint32_t  fd,
uint32_t  amount,
const void *  data,
Filesystem::Flags  flags 
)
virtual

Append data to open file.

Parameters
cbResponse callback
fdAn open file descriptor.
amountNumber of bytes to write.
dataThe data to write.
flagsFlags (FLUSH or SYNC)

Implements Hypertable::FsBroker::Lib::Broker.

Definition at line 176 of file QfsBroker.cc.

void QfsBroker::close ( ResponseCallback cb,
uint32_t  fd 
)
virtual

Close open file.

Parameters
fdAn open file descriptor of the file to close.
cb

Implements Hypertable::FsBroker::Lib::Broker.

Definition at line 95 of file QfsBroker.cc.

void QfsBroker::create ( Response::Callback::Open cb,
const char *  fname,
uint32_t  flags,
int32_t  bufsz,
int16_t  replication,
int64_t  blksz 
)
virtual

Open a file, and create it if it doesn't exist, optionally overwriting the contents.

Fd is passed to the callback upon success.

Parameters
fnameThe file to be opened and/or created.
flagsAn enum Hypertable::Filesystem::OpenFlags. If OPEN_FLAG_OVERWRITE is set, then overwrite the file.
bufszBuffer size.
replicationAmount of replication of file.
blkszBlock size of file.
cb

Implements Hypertable::FsBroker::Lib::Broker.

Definition at line 103 of file QfsBroker.cc.

void QfsBroker::debug ( ResponseCallback cb,
int32_t  command,
StaticBuffer serialized_parameters 
)
virtual

Debug command.

Parameters
command
serialized_parameters
cb

Implements Hypertable::FsBroker::Lib::Broker.

Definition at line 359 of file QfsBroker.cc.

void QfsBroker::exists ( Response::Callback::Exists cb,
const char *  fname 
)
virtual

Check for the existence of a file.

Parameters
cbResponse callback
fnameThe file to be checked.

Implements Hypertable::FsBroker::Lib::Broker.

Definition at line 345 of file QfsBroker.cc.

void QfsBroker::flush ( ResponseCallback cb,
uint32_t  fd 
)
virtual

Flush data that has been written.

Parameters
fdAn open file.
cb

Implements Hypertable::FsBroker::Lib::Broker.

Definition at line 291 of file QfsBroker.cc.

void QfsBroker::length ( Response::Callback::Length cb,
const char *  fname,
bool  accurate = true 
)
virtual

Get length of file.

Parameters
fnameFile to get length of.
accurateShould the length be accurate or an estimation.
cb

Implements Hypertable::FsBroker::Lib::Broker.

Definition at line 224 of file QfsBroker.cc.

void QfsBroker::mkdirs ( ResponseCallback cb,
const char *  dname 
)
virtual

Make a directory hierarcy, If the parent dirs are not, present, they are also created.

Parameters
dnameThe pathname
cb

Implements Hypertable::FsBroker::Lib::Broker.

Definition at line 271 of file QfsBroker.cc.

void QfsBroker::open ( Response::Callback::Open cb,
const char *  fname,
uint32_t  flags,
uint32_t  bufsz 
)
virtual

Open a file and pass the fd to the callback on success.

Parameters
fnameThe filename to be opened.
flagsAn enum Hypertable::Filesystem::OpenFlags
bufszBuffer size
cb

Implements Hypertable::FsBroker::Lib::Broker.

Definition at line 67 of file QfsBroker.cc.

void QfsBroker::pread ( Response::Callback::Read cb,
uint32_t  fd,
uint64_t  offset,
uint32_t  amount,
bool  verify_checksum 
)
virtual

Read from file at position.

Parameters
fdOpen fd to read from.
offsetPostion to read from.
amountNubmer of bytes to read.
verify_checksumVerify checksum of data read
cb

Implements Hypertable::FsBroker::Lib::Broker.

Definition at line 236 of file QfsBroker.cc.

void QfsBroker::read ( Response::Callback::Read cb,
uint32_t  fd,
uint32_t  amount 
)
virtual

Read data from an open file.

Parameters
fdAn open file descriptor.
amountNumber of bytes to read.
cb

Implements Hypertable::FsBroker::Lib::Broker.

Definition at line 148 of file QfsBroker.cc.

void QfsBroker::readdir ( Response::Callback::Readdir cb,
const char *  dname 
)
virtual

Read a directory's contents.

Parameters
dnameThe directory to list.
cb

Implements Hypertable::FsBroker::Lib::Broker.

Definition at line 319 of file QfsBroker.cc.

void QfsBroker::remove ( ResponseCallback cb,
const char *  fname 
)
virtual

Remove a file or directory.

Parameters
fnameFile to remove.
cb

Implements Hypertable::FsBroker::Lib::Broker.

Definition at line 214 of file QfsBroker.cc.

void QfsBroker::rename ( ResponseCallback cb,
const char *  src,
const char *  dst 
)
virtual

Rename a file from src to dst.

Parameters
srcThe file to be renamed.
dstThe path the file should be renamed to.
cb

Implements Hypertable::FsBroker::Lib::Broker.

Definition at line 349 of file QfsBroker.cc.

void QfsBroker::report_error ( ResponseCallback cb,
int  error 
)
private

Definition at line 373 of file QfsBroker.cc.

void QfsBroker::rmdir ( ResponseCallback cb,
const char *  dname 
)
virtual

Remove a directory.

Parameters
dnameThe directory to be removed.
cb

Implements Hypertable::FsBroker::Lib::Broker.

Definition at line 281 of file QfsBroker.cc.

void QfsBroker::seek ( ResponseCallback cb,
uint32_t  fd,
uint64_t  offset 
)
virtual

Seek open file.

Parameters
fdAn open file descriptor.
offsetPosition to seek to.
cb

Implements Hypertable::FsBroker::Lib::Broker.

Definition at line 128 of file QfsBroker.cc.

void QfsBroker::shutdown ( ResponseCallback cb)
virtual

Gracefully shutdown broker, closeing open files.

Parameters
cbCallbock to be called upon finishing task.

Implements Hypertable::FsBroker::Lib::Broker.

Definition at line 368 of file QfsBroker.cc.

void QfsBroker::status ( Response::Callback::Status cb)
virtual

Check status of FSBroker.

Parameters
cbcall cb->response_ok()

Implements Hypertable::FsBroker::Lib::Broker.

Definition at line 364 of file QfsBroker.cc.

void QfsBroker::sync ( ResponseCallback cb,
uint32_t  fd 
)
virtual

Sync out data that has been written.

Parameters
fdAn open file.
cb

Implements Hypertable::FsBroker::Lib::Broker.

Definition at line 295 of file QfsBroker.cc.

Member Data Documentation

KFS::KfsClient* const Hypertable::FsBroker::QfsBroker::m_client
private

Definition at line 111 of file QfsBroker.h.

std::string Hypertable::FsBroker::QfsBroker::m_host
private

Definition at line 108 of file QfsBroker.h.

MetricsHandlerPtr Hypertable::FsBroker::QfsBroker::m_metrics_handler
private

Metrics collection handler.

Definition at line 103 of file QfsBroker.h.

int Hypertable::FsBroker::QfsBroker::m_port
private

Definition at line 109 of file QfsBroker.h.

StatusManager Hypertable::FsBroker::QfsBroker::m_status_manager
private

Server status manager.

Definition at line 106 of file QfsBroker.h.

std::atomic< int > QfsBroker::ms_next_fd
staticprivate

Atomic counter for file descriptor assignment.

Definition at line 100 of file QfsBroker.h.


The documentation for this class was generated from the following files: