Scopira 20080306

scopira::core Namespace Reference

Classes

class  basic_loop
class  model_ptr_base
class  model_ptr
class  model_i
class  objecttype
class  project_i
class  project_base
class  interface_model_type
 a class type for models that are just interfaces More...
class  copyable_model_type
 a class type for models that are copyable More...
class  mi_set
class  register_flow
class  register_object
class  register_model
class  register_view
class  sidekick_i
class  sidekick_reactor_i
class  sidekick_queue_i
class  sidekick_runner
class  sidekick_thread
class  view_action_reactor_i
class  view_container_reactor_i
class  view_i
class  viewtype

Typedefs

typedef
scopira::tool::iterator_g
< model_i * > 
model_iterator
 the model iterator type
typedef scopira::tool::object *(* copyfunc_t )(const scopira::tool::object *)

Enumerations

enum  {
  vg_primary = 0x0001, vg_noui_c = 0x0002, vg_windowui_c = 0x0004, vg_needs_project_c = 0x0100,
  vg_needs_copyfunc_c = 0x0200, vg_show_c = 0x00FF, vg_hide_c = 0xFF00
}
enum  { no_uimode_c = vg_noui_c, default_uimode_c = 0, windowonly_uimode_c = vg_windowui_c }

Functions

template<class T >
scopira::tool::objectobjcopyfunc_g (const scopira::tool::object *srco)
void flow_reg_imp (const std::type_info &id, const char *name, scopira::tool::objflowloader::loadfunc_t loader)
 internal functions
void link_object_parent_imp (const std::type_info &id, const char *parent_name)
 internal functions
void link_object_parent_imp (const std::type_info &id, const char **parents)
 internal functions
void link_object_copyfunc (const std::type_info &id, copyfunc_t cf)
 internal functions
void link_model_imp (const std::type_info &id, bool linktomodeltype)
 internal functions
void link_view_imp (const std::type_info &id, const char *model_type, const char *menu_name, int vgmask)
 internal functions
void build_objecttype_tree (scopira::tool::count_ptr< scopira::core::objecttype > &out)
 internal functions
void enqueue_sidekick (sidekick_i *t, sidekick_reactor_i *reac=0)
bool is_sidekick_running (void)
void bind_model_view (scopira::core::model_i *m, scopira::core::view_i *v)

Variables

const char * object_type_c
 common type string: base of everything
const char * model_type_c
 common type string: base of all models
const char * project_type_c
 common type string: base of all project-enabled models
const char * view_type_c
 common type string: base of all views

Detailed Description

General non-ui stuff useful to all Scopira applicationa

Author:
Aleksander Demko

Enumeration Type Documentation

anonymous enum

View Groups.

Views can belong to groups. These are repsented as a bitmask.

0x0F0F is reseved for scopira definitions. 0xF0F0 are for end user programmers to use. 0x00FF is the default SHOW mask. So if you want to make a new group, and have it visible by default, put it in 0x00F0 somewhere. If you want it hidden, use 0xF000.

Author:
Aleksander Demko

Function Documentation

void scopira::core::bind_model_view ( scopira::core::model_i m,
scopira::core::view_i v 
) [inline]

Binds a view to a model.

This should be called sometime after a view is created.

Author:
Aleksander Demko

References scopira::core::view_i::bind_model(), and scopira::core::view_i::react_model_update().

void scopira::core::enqueue_sidekick ( sidekick_i *  t,
sidekick_reactor_i *  reac = 0 
)

This may be called by any thread to enqueue jobs for the "sidekick thread". If there is no sidekick thread active (either via sidekick_thread or sidekick_loop), then the sidekick will be executed outright in the calling thread.

reac is the notify reactor. It may be null.

Author:
Aleksander Demko
bool scopira::core::is_sidekick_running ( void  )

This will return true if there are any jobs or tasks currently being exectued in the sidekick thread.

When there is no sidekick thread, this will always return false

Author:
Aleksander Demko