Scopira 20080306

scopira::core::basic_loop Class Reference

#include <loop.h>

Inheritance diagram for scopira::core::basic_loop:
scopira::tool::object

List of all members.

Classes

struct  parse_context_t
struct  value_t

Public Member Functions

 basic_loop (int &argc, char **&argv)
 ~basic_loop ()
 destructor
void list_config (std::vector< std::string > &out) const
bool has_config (const std::string &key) const
const std::string & get_config (const std::string &key) const
bool get_config (const std::string &key, std::string &out) const
void set_config (const std::string &key, const std::string &val)
void set_config_default (const std::string &key, const std::string &val)
void set_config_save (const std::string &key, const std::string &val)
void commit_config (void)
objecttypeget_root_objecttype (void)
const std::string & get_context_name (void) const
const std::string & get_config_dir (void) const
bool save_object (const std::string &name, scopira::tool::object *o)
bool load_object (const std::string &name, scopira::tool::count_ptr< scopira::tool::object > &out)

Static Public Member Functions

static basic_loopinstance (void)
 returns the static instance
static std::string config_expand (const std::string &s)

Detailed Description

A basic, non-gui mainloop. This does objloader and OUTPUT stream preparation, aswell as config parameter parsing.

Build in options, so far: debug=1 show some debug information on startup noui=1 disable any gui (only lab_loop looks at this) config=filename sepecifies a text based config file to parse (standard key=value format, just like the command line) noconsole=1 closes the terminal on win32, ignored option on other platforms lib=filename.so loads a dynamic library, explictly libdir=directory process all the .so files in the given directory with _lib

These arent implemented, but are possibilities.... configdir=dir override whole config dir?

Author:
Aleksander Demko

Constructor & Destructor Documentation

scopira::core::basic_loop::basic_loop ( int &  argc,
char **&  argv 
)

Basic constructor.

Author:
Aleksander Demko

Member Function Documentation

void scopira::core::basic_loop::commit_config ( void  )

Commit all the flags that have been marked for saving to disk now. This is also called by lab_loop's destructor.

If none have been marked, this will do nothing (not even create an empty file).

Author:
Aleksander Demko
static std::string scopira::core::basic_loop::config_expand ( const std::string &  s) [static]

Returns a string that has been "expanded", useful for various configuration settings. For example, ~ will be expanded to the users home directory, and $ENV style environmental variables will be expanded.

Author:
Aleksander Demko
bool scopira::core::basic_loop::get_config ( const std::string &  key,
std::string &  out 
) const

Gets the configutation value of the given key and put it into out. If there is no value for the given key, out is untouched and false is returned. Non name-valued parameters (like lone files names and the program name itself will be stored in the keys param, param+, param++, param+++, etc. The program nameitself is usually param, so you'll want to start with param+.

Author:
Aleksander Demko
const std::string& scopira::core::basic_loop::get_config ( const std::string &  key) const

Get the vlaue of the given configutation flag. Empty string will be returned if it's not set.

Author:
Aleksander Demko
const std::string& scopira::core::basic_loop::get_config_dir ( void  ) const [inline]

Returns the location of all the configuration files.

Author:
Aleksander Demko
const std::string& scopira::core::basic_loop::get_context_name ( void  ) const [inline]

Gets the context name. This is the name of the application, calculated as arv[0] sans path and extension.

Author:
Aleksander Demko
objecttype* scopira::core::basic_loop::get_root_objecttype ( void  )

Get the root objecttype in the type-information-tree.

Author:
Aleksander Demko
bool scopira::core::basic_loop::has_config ( const std::string &  key) const

Does the configutation system have the given key set?

Author:
Aleksander Demko
void scopira::core::basic_loop::list_config ( std::vector< std::string > &  out) const

Enumerates all the current config keys to the given output string vector.

Author:
Aleksander Demko
bool scopira::core::basic_loop::load_object ( const std::string &  name,
scopira::tool::count_ptr< scopira::tool::object > &  out 
)

Reads an object from disk into the given out ptr. Returns true on success. Note that this function may return true and set out to null, if the given object saved to disk was infact a null object.

Author:
Aleksander Demko
bool scopira::core::basic_loop::save_object ( const std::string &  name,
scopira::tool::object o 
)

Saves the given object to disk. name cannot be "". The object may be null.

Returns true on success (although, if it fails, I'm not how you'd want to handle it)

Author:
Aleksander Demko
void scopira::core::basic_loop::set_config ( const std::string &  key,
const std::string &  val 
)

Sets the value of the given configurations flag.

Author:
Aleksander Demko
void scopira::core::basic_loop::set_config_default ( const std::string &  key,
const std::string &  val 
)

Sets the value of the given configurations flag, but only if it was unset previously.

Author:
Aleksander Demko
void scopira::core::basic_loop::set_config_save ( const std::string &  key,
const std::string &  val 
)

Sets the value of the given configurations flag and mark the item for saving to disk (and thus reloading next time) for the next commit_config().

Author:
Aleksander Demko

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