Scopira  20080306
scopira::core Namespace Reference

Classes

class  basic_loop
 
class  copyable_model_type
 a class type for models that are copyable More...
 
class  interface_model_type
 a class type for models that are just interfaces More...
 
class  mi_set
 
class  model_i
 
class  model_ptr
 
class  model_ptr_base
 
class  objecttype
 
class  project_base
 
class  project_i
 
class  register_flow
 
class  register_model
 
class  register_object
 
class  register_view
 
class  sidekick_i
 
class  sidekick_queue_i
 
class  sidekick_reactor_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

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

◆ bind_model_view()

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().

◆ enqueue_sidekick()

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

Referenced by scopira::core::sidekick_i::sidekick_i().

◆ is_sidekick_running()

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