include/dmlite/c/io.h File Reference

C wrapper for I/O interfaces. More...

#include "dmlite.h"
#include "any.h"
#include "pool.h"
#include <sys/uio.h>
#include <unistd.h>

Include dependency graph for io.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Defines

#define O_INSECURE   010

Typedefs

typedef dmlite_fd dmlite_fd

Functions

dmlite_fddmlite_fopen (dmlite_context *context, const char *path, int flags, const dmlite_any_dict *extra,...)
 Opens a file.
int dmlite_fclose (dmlite_fd *fd)
 Closes a file.
int dmlite_fstat (dmlite_fd *fd, struct stat *buf)
 Gets information about a file descriptor.
int dmlite_fseek (dmlite_fd *fd, off_t offset, int whence)
 Sets the file position.
off_t dmlite_ftell (dmlite_fd *fd)
 Returns the cursor position.
ssize_t dmlite_fread (dmlite_fd *fd, void *buffer, size_t count)
 Reads from a file.
ssize_t dmlite_fwrite (dmlite_fd *fd, const void *buffer, size_t count)
 Writes to a file.
ssize_t dmlite_freadv (dmlite_fd *fd, const struct iovec *vector, size_t count)
 Reads from a file into multiple buffers.
ssize_t dmlite_fwritev (dmlite_fd *fd, const struct iovec *vector, size_t count)
 Reads from a file into multiple buffers.
ssize_t dmlite_fpread (dmlite_fd *fd, void *buffer, size_t count, off_t offset)
 Reads up to count bytes starting at the given offset. Does not change internal offset.
ssize_t dmlite_fpwrite (dmlite_fd *fd, const void *buffer, size_t count, off_t offset)
 Writes count bytes starting at the given offset. Does not change internal offset.
int dmlite_feof (dmlite_fd *fd)
 Returns 1 if EOF.
int dmlite_ferrno (dmlite_fd *fd)
 Returns the last errror code.
const char * dmlite_ferrror (dmlite_fd *fd)
 Returns the last error message.
int dmlite_donewriting (dmlite_context *context, const dmlite_location *loc)
 Finishes a PUT.


Detailed Description

C wrapper for I/O interfaces.

Author:
Alejandro Álvarez Ayllon <aalvarez@cern.ch>

Define Documentation

#define O_INSECURE   010

Use this flag in addition to the standard ones to skip any security check (i.e. token validation)


Typedef Documentation

typedef struct dmlite_fd dmlite_fd

Handle for a file descriptor.


Function Documentation

int dmlite_donewriting ( dmlite_context context,
const dmlite_location loc 
)

Finishes a PUT.

Parameters:
context The DM context.
loc The location as returned by dmlite_put.
Returns:
0 on success, error code otherwise.

int dmlite_fclose ( dmlite_fd fd  ) 

Closes a file.

Parameters:
fd The file descriptor as returned by dmlite_open.
Returns:
0 on success, error code otherwise.

int dmlite_feof ( dmlite_fd fd  ) 

Returns 1 if EOF.

Parameters:
fd The file descriptor.
Returns:
0 if there is more to read. 1 if EOF.

int dmlite_ferrno ( dmlite_fd fd  ) 

Returns the last errror code.

Parameters:
fd The file descriptor.
Returns:
The last error code.

const char* dmlite_ferrror ( dmlite_fd fd  ) 

Returns the last error message.

Parameters:
fd The file descriptor.
Returns:
A pointer to an internal buffer with the last error message.
Note:
This buffer is specific to each file descriptor.

dmlite_fd* dmlite_fopen ( dmlite_context context,
const char *  path,
int  flags,
const dmlite_any_dict extra,
  ... 
)

Opens a file.

Parameters:
context The DM context.
path The path to open.
flags See open()
extra The key-value pairs.
... Should be mode_t when called with O_CREAT.
Returns:
An opaque handler for the file, NULL on failure.

ssize_t dmlite_fpread ( dmlite_fd fd,
void *  buffer,
size_t  count,
off_t  offset 
)

Reads up to count bytes starting at the given offset. Does not change internal offset.

Parameters:
fd File descriptor.
buffer Buffer where to put the data.
count Number of bytes to read.
offset Read offset.
Returns:
Number of bytes actually read on success. -1 on failure.

ssize_t dmlite_fpwrite ( dmlite_fd fd,
const void *  buffer,
size_t  count,
off_t  offset 
)

Writes count bytes starting at the given offset. Does not change internal offset.

Parameters:
fd File descriptor.
buffer Data to write.
count Number of bytes to read.
offset Write offset.
Returns:
Number of bytes actually write on success. -1 on failure.

ssize_t dmlite_fread ( dmlite_fd fd,
void *  buffer,
size_t  count 
)

Reads from a file.

Parameters:
fd The file descriptor.
buffer Where to put the data.
count Number of bytes to read.
Returns:
Number of bytes actually read on success. -1 on failure.

ssize_t dmlite_freadv ( dmlite_fd fd,
const struct iovec *  vector,
size_t  count 
)

Reads from a file into multiple buffers.

Parameters:
fd The file descriptor.
vector Array of buffers.
count Number of elements in the array of buffers.
Returns:
Number of bytes actually read on success. -1 on failure.

int dmlite_fseek ( dmlite_fd fd,
off_t  offset,
int  whence 
)

Sets the file position.

Parameters:
fd The file descriptor.
offset The offset.
whence See fseek()
Returns:
0 on success, error code otherwise.

int dmlite_fstat ( dmlite_fd fd,
struct stat *  buf 
)

Gets information about a file descriptor.

Parameters:
fd The file descriptor.
buf Where to put the information.
Returns:
0 on success, error code otherwise.
Note:
Not all plug-ins will fill all the fields, but st_size is a reasonable expectation.

off_t dmlite_ftell ( dmlite_fd fd  ) 

Returns the cursor position.

Parameters:
fd The file descriptor.
Returns:
The cursor position, or -1 on error.

ssize_t dmlite_fwrite ( dmlite_fd fd,
const void *  buffer,
size_t  count 
)

Writes to a file.

Parameters:
fd The file descriptor.
buffer A pointer to the data.
count Number of bytes to write.
Returns:
Number of bytes actually written. -1 on failure.

ssize_t dmlite_fwritev ( dmlite_fd fd,
const struct iovec *  vector,
size_t  count 
)

Reads from a file into multiple buffers.

Parameters:
fd The file descriptor.
vector Array of buffers.
count Number of elements in the array of buffers.
Returns:
Number of bytes actually read on success. -1 on failure.


Generated on 28 Apr 2014 for dmlite by  doxygen 1.4.7