CernVM-FS  2.12.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
sqlitevfs.cc File Reference
#include "cvmfs_config.h"
#include "sqlitevfs.h"
#include <dlfcn.h>
#include <errno.h>
#include <fcntl.h>
#include <inttypes.h>
#include <stdint.h>
#include <sys/select.h>
#include <sys/time.h>
#include <sys/types.h>
#include <sys/uio.h>
#include <unistd.h>
#include <cassert>
#include <climits>
#include <cstring>
#include <ctime>
#include <vector>
#include "cache.h"
#include "duplex_sqlite3.h"
#include "statistics.h"
#include "util/logging.h"
#include "util/platform.h"
#include "util/smalloc.h"
#include "util/string.h"
Include dependency graph for sqlitevfs.cc:

Go to the source code of this file.

Classes

struct  sqlite::anonymous_namespace{sqlitevfs.cc}::VfsRdOnly
 
struct  sqlite::anonymous_namespace{sqlitevfs.cc}::VfsRdOnlyFile
 

Namespaces

 sqlite
 
 sqlite::anonymous_namespace{sqlitevfs.cc}
 

Macros

#define __STDC_FORMAT_MACROS
 

Functions

static void sqlite::ApplyFdMap (VfsRdOnlyFile *pFile)
 
static int sqlite::VfsRdOnlyClose (sqlite3_file *pFile)
 
static int sqlite::VfsRdOnlyRead (sqlite3_file *pFile, void *zBuf, int iAmt, sqlite_int64 iOfst)
 
static int sqlite::VfsRdOnlyWrite (sqlite3_file *pFile __attribute__((unused)), const void *zBuf __attribute__((unused)), int iAmt __attribute__((unused)), sqlite_int64 iOfst __attribute__((unused)))
 
static int sqlite::VfsRdOnlyTruncate (sqlite3_file *pFile __attribute__((unused)), sqlite_int64 size __attribute__((unused)))
 
static int sqlite::VfsRdOnlySync (sqlite3_file *pFile __attribute__((unused)), int flags __attribute__((unused)))
 
static int sqlite::VfsRdOnlyFileSize (sqlite3_file *pFile, sqlite_int64 *pSize)
 
static int sqlite::VfsRdOnlyLock (sqlite3_file *p __attribute__((unused)), int level __attribute__((unused)))
 
static int sqlite::VfsRdOnlyUnlock (sqlite3_file *p __attribute__((unused)), int level __attribute__((unused)))
 
static int sqlite::VfsRdOnlyCheckReservedLock (sqlite3_file *p __attribute__((unused)), int *pResOut)
 
static int sqlite::VfsRdOnlyFileControl (sqlite3_file *p __attribute__((unused)), int op __attribute__((unused)), void *pArg __attribute__((unused)))
 
static int sqlite::VfsRdOnlySectorSize (sqlite3_file *p __attribute__((unused)))
 
static int sqlite::VfsRdOnlyDeviceCharacteristics (sqlite3_file *p __attribute__((unused)))
 
static int sqlite::VfsRdOnlyOpen (sqlite3_vfs *vfs, const char *zName, sqlite3_file *pFile, int flags, int *pOutFlags)
 
static int sqlite::VfsRdOnlyDelete (sqlite3_vfs *__attribute__((unused)), const char *zName __attribute__((unused)), int syncDir __attribute__((unused)))
 
static int sqlite::VfsRdOnlyAccess (sqlite3_vfs *vfs, const char *zPath, int flags, int *pResOut)
 
int sqlite::VfsRdOnlyFullPathname (sqlite3_vfs *vfs __attribute__((unused)), const char *zPath, int nOut, char *zOut)
 
static int sqlite::VfsRdOnlyRandomness (sqlite3_vfs *vfs, int nBuf, char *zBuf)
 
static int sqlite::VfsRdOnlySleep (sqlite3_vfs *vfs, int microseconds)
 
static int sqlite::VfsRdOnlyCurrentTimeInt64 (sqlite3_vfs *vfs, sqlite3_int64 *piNow)
 
static int sqlite::VfsRdOnlyCurrentTime (sqlite3_vfs *vfs, double *prNow)
 
static int sqlite::VfsRdOnlyGetLastError (sqlite3_vfs *vfs __attribute__((unused)), int not_used1 __attribute__((unused)), char *not_used2 __attribute__((unused)))
 
bool sqlite::RegisterVfsRdOnly (CacheManager *cache_mgr, perf::Statistics *statistics, const VfsOptions options)
 
bool sqlite::UnregisterVfsRdOnly ()
 
void sqlite::RegisterFdMapping (int from, int to)
 
void sqlite::ReplaceCacheManager (CacheManager *new_cache_mgr)
 

Variables

const char * sqlite::anonymous_namespace{sqlitevfs.cc}::kVfsName = "cvmfs-readonly"
 
std::vector< int > * sqlite::anonymous_namespace{sqlitevfs.cc}::fd_from_ = NULL
 
std::vector< int > * sqlite::anonymous_namespace{sqlitevfs.cc}::fd_to_ = NULL
 

Macro Definition Documentation

#define __STDC_FORMAT_MACROS

This file is part of the CernVM File System.

An optimized virtual file system layer for the client only. It expects to operate on immutable, valid SQlite files. Hence it can do a few optimizations. Most notably it doesn't need to know about the path of the SQlite file once opened. It works purely on the file descriptor.

Definition at line 11 of file sqlitevfs.cc.