casacore
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Classes | Public Types | Public Member Functions | Static Public Member Functions | Private Types | Private Member Functions | Static Private Member Functions | Private Attributes | Static Private Attributes | Friends | List of all members
casacore::Casarc Class Reference

#include <Casarc.h>

Classes

class  meta_entry_
 

Public Types

typedef std::map< std::string,
std::string >::const_iterator 
iterator
 

Public Member Functions

void put (const std::string &keyword, const std::string &value)
 adds the keyword->value mapping More...
 
std::string get (const std::string &keyword)
 retrieves the mapping for keyword (or "" if the mapping is not defined) More...
 
bool get (const std::string &keyword, std::string &value)
 retrieves the mapping for keyword in value (and returns true if the mapping is defined or false otherwise) More...
 
size_t size () const
 
const std::string & path () const
 path to the file that this Casarc mirrors... More...
 
iterator begin ()
 
iterator end ()
 

Static Public Member Functions

static Casarcinstance ()
 return default casarc file, e.g. More...
 
static void setDefaultPath (const std::string &path)
 set and clear the default casarc path (to something other than ~/.casarc) More...
 
static void clearDefaultPath ()
 
static Casarcinstance (const std::string &path)
 return a casarc object attached to a particular file More...
 
static const std::list< Casarc * > & list ()
 return the list of rcfiles that have been loaded More...
 

Private Types

enum  lock_mode {
  READ,
  READ_WRITE,
  WRITE,
  APPEND
}
 

Private Member Functions

void close (int)
 
int lock (lock_mode mode)
 returns a file descriptor or -1 on error... More...
 
void unlock (int fd)
 
void sync ()
 
double current_modification_time (struct stat &buf)
 
void read_file ()
 
 Casarc (const std::string &path)
 path is the path to the.casarc (or.aipsrc file) More...
 
 ~Casarc ()
 

Static Private Member Functions

static void startup ()
 
static void shutdown ()
 

Private Attributes

char * mapped_file
 
off_t mapped_file_size
 
std::list< int > stale_fds
 
std::list< pid_t > have_lock
 
std::string filename
 
double timestamp
 
std::map< std::string,
std::string > 
rcmap
 
std::map< std::string,
meta_entry_
rcmetamap
 this is broken off separate from the rcmap to allow the rcmap to be used for iteration by users of this class... More...
 
ino_t inode
 

Static Private Attributes

static std::map< ino_t, Casarc * > * rcfiles
 singleton Casarcs, (inode->casarc) More...
 
static std::map< std::string,
Casarc * > * 
filenames
 
static std::list< Casarc * > * rclist
 
static std::string * default_path
 
static bool initialized
 

Friends

class CasarcCleanup
 

Detailed Description

Definition at line 40 of file Casarc.h.

Member Typedef Documentation

typedef std::map<std::string,std::string>::const_iterator casacore::Casarc::iterator

Definition at line 46 of file Casarc.h.

Member Enumeration Documentation

Enumerator
READ 
READ_WRITE 
WRITE 
APPEND 

Definition at line 114 of file Casarc.h.

Constructor & Destructor Documentation

casacore::Casarc::Casarc ( const std::string &  path)
private

path is the path to the.casarc (or.aipsrc file)

casacore::Casarc::~Casarc ( )
inlineprivate

Definition at line 144 of file Casarc.h.

Member Function Documentation

iterator casacore::Casarc::begin ( )
static void casacore::Casarc::clearDefaultPath ( )
static
void casacore::Casarc::close ( int  )
private
double casacore::Casarc::current_modification_time ( struct stat &  buf)
private
iterator casacore::Casarc::end ( )
std::string casacore::Casarc::get ( const std::string &  keyword)

retrieves the mapping for keyword (or "" if the mapping is not defined)

bool casacore::Casarc::get ( const std::string &  keyword,
std::string &  value 
)

retrieves the mapping for keyword in value (and returns true if the mapping is defined or false otherwise)

static Casarc& casacore::Casarc::instance ( )
static

return default casarc file, e.g.

~/.casarc

static Casarc& casacore::Casarc::instance ( const std::string &  path)
static

return a casarc object attached to a particular file

static const std::list<Casarc*>& casacore::Casarc::list ( )
static

return the list of rcfiles that have been loaded

int casacore::Casarc::lock ( lock_mode  mode)
private

returns a file descriptor or -1 on error...

const std::string& casacore::Casarc::path ( ) const
inline

path to the file that this Casarc mirrors...

Definition at line 74 of file Casarc.h.

References filename.

void casacore::Casarc::put ( const std::string &  keyword,
const std::string &  value 
)

adds the keyword->value mapping

void casacore::Casarc::read_file ( )
private
static void casacore::Casarc::setDefaultPath ( const std::string &  path)
static

set and clear the default casarc path (to something other than ~/.casarc)

static void casacore::Casarc::shutdown ( )
staticprivate
size_t casacore::Casarc::size ( ) const
static void casacore::Casarc::startup ( )
staticprivate
void casacore::Casarc::sync ( )
private
void casacore::Casarc::unlock ( int  fd)
private

Friends And Related Function Documentation

friend class CasarcCleanup
friend

Definition at line 42 of file Casarc.h.

Member Data Documentation

std::string* casacore::Casarc::default_path
staticprivate

Definition at line 138 of file Casarc.h.

std::string casacore::Casarc::filename
private

Definition at line 122 of file Casarc.h.

Referenced by path().

std::map<std::string,Casarc*>* casacore::Casarc::filenames
staticprivate

Definition at line 136 of file Casarc.h.

std::list<pid_t> casacore::Casarc::have_lock
private

Definition at line 112 of file Casarc.h.

bool casacore::Casarc::initialized
staticprivate

Definition at line 141 of file Casarc.h.

ino_t casacore::Casarc::inode
private

Definition at line 132 of file Casarc.h.

char* casacore::Casarc::mapped_file
private

Definition at line 106 of file Casarc.h.

off_t casacore::Casarc::mapped_file_size
private

Definition at line 107 of file Casarc.h.

std::map<ino_t,Casarc*>* casacore::Casarc::rcfiles
staticprivate

singleton Casarcs, (inode->casarc)

Definition at line 135 of file Casarc.h.

std::list<Casarc*>* casacore::Casarc::rclist
staticprivate

Definition at line 137 of file Casarc.h.

std::map<std::string,std::string> casacore::Casarc::rcmap
private

Definition at line 125 of file Casarc.h.

std::map<std::string,meta_entry_> casacore::Casarc::rcmetamap
private

this is broken off separate from the rcmap to allow the rcmap to be used for iteration by users of this class...

Definition at line 128 of file Casarc.h.

std::list<int> casacore::Casarc::stale_fds
private

Definition at line 109 of file Casarc.h.

double casacore::Casarc::timestamp
private

Definition at line 123 of file Casarc.h.


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