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::CephBroker Class Reference

#include <CephBroker.h>

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

Public Member Functions

 CephBroker (PropertiesPtr &cfg)
 
virtual ~CephBroker ()
 
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 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 close (ResponseCallback *cb, uint32_t fd)
 Close open file. 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 *cb, 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 *, 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

virtual void report_error (ResponseCallback *cb, int error)
 
void make_abs_path (const char *fname, String &abs)
 
int rmdir_recursive (const char *directory)
 

Private Attributes

Hypertable::Status m_status
 Server status information. More...
 
bool m_verbose
 
String m_root_dir
 

Static Private Attributes

static atomic< int > ms_next_fd
 

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 58 of file CephBroker.h.

Constructor & Destructor Documentation

CephBroker::CephBroker ( PropertiesPtr cfg)

Definition at line 46 of file CephBroker.cc.

CephBroker::~CephBroker ( )
virtual

Definition at line 71 of file CephBroker.cc.

Member Function Documentation

void CephBroker::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 193 of file CephBroker.cc.

void CephBroker::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 151 of file CephBroker.cc.

void CephBroker::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 CephBroker.cc.

void CephBroker::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 476 of file CephBroker.cc.

void CephBroker::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 453 of file CephBroker.cc.

void CephBroker::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 373 of file CephBroker.cc.

void CephBroker::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 274 of file CephBroker.cc.

void Hypertable::FsBroker::CephBroker::make_abs_path ( const char *  fname,
String abs 
)
inlineprivate

Definition at line 95 of file CephBroker.h.

void CephBroker::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 320 of file CephBroker.cc.

void CephBroker::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 75 of file CephBroker.cc.

void CephBroker::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 293 of file CephBroker.cc.

void CephBroker::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 161 of file CephBroker.cc.

void CephBroker::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 409 of file CephBroker.cc.

void CephBroker::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 258 of file CephBroker.cc.

void CephBroker::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 462 of file CephBroker.cc.

void CephBroker::report_error ( ResponseCallback cb,
int  error 
)
privatevirtual

Definition at line 482 of file CephBroker.cc.

void CephBroker::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 335 of file CephBroker.cc.

int CephBroker::rmdir_recursive ( const char *  directory)
private

Definition at line 348 of file CephBroker.cc.

void CephBroker::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 236 of file CephBroker.cc.

void CephBroker::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 403 of file CephBroker.cc.

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

Check status of FSBroker.

Parameters
cbcall cb->response_ok()

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

Definition at line 399 of file CephBroker.cc.

void CephBroker::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 377 of file CephBroker.cc.

Member Data Documentation

String Hypertable::FsBroker::CephBroker::m_root_dir
private

Definition at line 108 of file CephBroker.h.

Hypertable::Status Hypertable::FsBroker::CephBroker::m_status
private

Server status information.

Definition at line 105 of file CephBroker.h.

bool Hypertable::FsBroker::CephBroker::m_verbose
private

Definition at line 107 of file CephBroker.h.

atomic< int > CephBroker::ms_next_fd
staticprivate

Definition at line 91 of file CephBroker.h.


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