Oyranos  git-devel
Oyranos is a full featured Color Management System
Public Member Functions | Data Fields
oyObserver_s Struct Reference

Oyranos object observers. More...

#include <oyObserver_s.h>

Inheritance diagram for oyObserver_s:
Inheritance graph
Collaboration diagram for oyObserver_s:
Collaboration graph

Public Member Functions

OYAPI oyObserver_s *OYEXPORT oyObserver_New (oyObject_s object)
 allocate a new Observer object More...
 
OYAPI oyObserver_s *OYEXPORT oyObserver_Copy (oyObserver_s *observer, oyObject_s object)
 Copy or Reference a Observer object. More...
 
OYAPI int OYEXPORT oyObserver_Release (oyObserver_s **observer)
 release and possibly deallocate a oyObserver_s object More...
 
OYAPI int OYEXPORT oyObserver_SignalSend (oyObserver_s *observer, oySIGNAL_e signal_type, oyStruct_s *signal_data)
 send a signal to a Observer object More...
 
OYAPI int OYEXPORT oyStruct_ObserverAdd (oyStruct_s *model, oyStruct_s *observer, oyStruct_s *user_data, oyObserver_Signal_f signalFunc)
 send a signal to a Observer object More...
 
OYAPI int OYEXPORT oyStruct_ObserverRemove (oyStruct_s *model, oyStruct_s *observer, oyObserver_Signal_f signalFunc)
 disconnect a observer from a object More...
 
OYAPI int OYEXPORT oyStruct_ObserverSignal (oyStruct_s *model, oySIGNAL_e signal_type, oyStruct_s *signal_data)
 send a signal to all ovservers of a model More...
 
OYAPI int OYEXPORT oyStruct_DisableSignalSend (oyStruct_s *model)
 disable sending a signal to all ovservers of a model More...
 
OYAPI int OYEXPORT oyStruct_EnableSignalSend (oyStruct_s *model)
 reenable sending a signal to all ovservers of a model More...
 
OYAPI int OYEXPORT oyStruct_ObserversCopy (oyStruct_s *object, oyStruct_s *pattern, uint32_t flags)
 copy a objects observers and models to a different object More...
 
OYAPI int OYEXPORT oyStruct_ObserverCopyModel (oyStruct_s *model, oyStruct_s *pattern, uint32_t flags)
 copy a models observers to a different model More...
 
OYAPI int OYEXPORT oyStruct_ObserverCopyObserver (oyStruct_s *observer, oyStruct_s *pattern, uint32_t flags)
 copy a observers models to a different observer More...
 
OYAPI int OYEXPORT oyStruct_IsObserved (oyStruct_s *model, oyStruct_s *observer)
 return object observation status More...
 
OYAPI int OYEXPORT oyStruct_ObservationCount (oyStruct_s *object, uint32_t flags)
 return the number of object<->model references More...
 
OYAPI uint32_t OYEXPORT oyObserverGetFlags (void)
 get global flags for Observation More...
 
OYAPI int OYEXPORT oyObserverSetFlags (uint32_t flags)
 set global flags for Observation More...
 
void oyObserver_Release__Members (oyObserver_s_ *observer)
 Custom Observer destructor. More...
 
int oyObserver_Init__Members (oyObserver_s_ *observer OY_UNUSED)
 Custom Observer constructor. More...
 
int oyObserver_Copy__Members (oyObserver_s_ *dst, oyObserver_s_ *src)
 Custom Observer copy constructor. More...
 
int oyStructSignalForward_ (oyObserver_s *observer, oySIGNAL_e signal_type, oyStruct_s *signal_data)
 Observe all list members. More...
 
oyStructList_soyStruct_ObserverListGet_ (oyStruct_s *obj, const char *reg)
 Get the desired list of oyObserver_s'. More...
 
int oyStruct_ObserverRemove_ (oyStructList_s *list, oyStruct_s *obj, int observer, oyObserver_Signal_f signalFunc)
 Remove a observer from the observer or model internal list. More...
 
- Public Member Functions inherited from oyStruct_s
const char * oyStruct_GetTextFromModule (oyStruct_s *obj, oyNAME_e name_type, uint32_t flags)
 get object infos from a module More...
 
const char * oyStruct_GetText (oyStruct_s *obj, oyNAME_e name_type, uint32_t flags)
 Get a text dump. More...
 
int oyStruct_RegisterStaticMessageFunc (int type, oyStruct_RegisterStaticMessageFunc_f msg, oyStruct_RegisterStaticFreeFunc_f free_func)
 register a function for verbosity More...
 
const char * oyStruct_GetInfo (oyPointer context_object, oyNAME_e type, int flags)
 get a additional string from a object More...
 
const char * oyStructTypeToText (oyOBJECT_e type)
 Objects type to small string. More...
 

Data Fields

const oyOBJECT_e type_
 Type of object. More...
 
oyStruct_Copy_f copy
 Copy function. More...
 
oyStruct_Release_f release
 Release function. More...
 
oyObject_s oy_
 Oyranos internal object. More...
 
- Data Fields inherited from oyStruct_s
const oyOBJECT_e type_
 Type of object. More...
 
oyStruct_Copy_f copy
 Copy function. More...
 
oyStruct_Release_f release
 Release function. More...
 
oyObject_s oy_
 Oyranos internal object. More...
 

Detailed Description

Oyranos object observers.

oyObserver_s is following the viewer/model design pattern. The relations of oyObserver_s' can be anything up to complicated cyclic, directed graphs. The oyObserver_s type is intented for communication to non graph objects. Oyranos graphs have several communication paths available, which should be prefered over oyObserver_s when possible.

The struct contains properties to signal changes to a observer. The signaling provides a small set of very generic signals types as enumeration. It is possible for models to add additional data to the signal. These additional data is only blindly transported. A agreement is not subject of the oyObserver_s structure. For completeness the observed object shall always be included in the signal.

Version
Oyranos: 0.9.7
Date
2019/10/19
Since
2009/10/26 (Oyranos: 0.1.10)

Member Function Documentation

◆ oyObserver_Copy()

OYAPI oyObserver_s *OYEXPORT oyObserver_Copy ( oyObserver_s observer,
oyObject_s  object 
)

Copy or Reference a Observer object.

Function oyObserver_Copy

The function is for copying and for referencing. The reference is the most often used way, which saves resourcs and time.

Parameters
[in]observerObserver struct object
objectNULL - means reference, the optional object triggers a real copy

◆ oyObserver_Copy__Members()

int oyObserver_Copy__Members ( oyObserver_s_ *  dst,
oyObserver_s_ *  src 
)

Custom Observer copy constructor.

Function oyObserver_Copy__Members

◆ oyObserver_Init__Members()

int oyObserver_Init__Members ( oyObserver_s_ *observer  OY_UNUSED)

Custom Observer constructor.

Function oyObserver_Init__Members

◆ oyObserver_New()

OYAPI oyObserver_s *OYEXPORT oyObserver_New ( oyObject_s  object)

allocate a new Observer object

Function oyObserver_New

◆ oyObserver_Release()

OYAPI int OYEXPORT oyObserver_Release ( oyObserver_s **  observer)

release and possibly deallocate a oyObserver_s object

Function oyObserver_Release

Parameters
[in,out]observerObserver struct object

◆ oyObserver_Release__Members()

void oyObserver_Release__Members ( oyObserver_s_ *  observer)

Custom Observer destructor.

Function oyObserver_Release__Members

◆ oyObserver_SignalSend()

OYAPI int OYEXPORT oyObserver_SignalSend ( oyObserver_s observer,
oySIGNAL_e  signal_type,
oyStruct_s signal_data 
)

send a signal to a Observer object

Function oyObserver_SignalSend

Parameters
[in]observerobserver
[in]signal_typebasic signal information
[in]signal_dataadvanced informations
Returns
0 - not matching; 1 - match, skip others
Version
Oyranos: 0.1.10
Since
2009/10/26 (Oyranos: 0.1.10)
Date
2010/04/07

◆ oyObserverGetFlags()

OYAPI uint32_t OYEXPORT oyObserverGetFlags ( void  )

get global flags for Observation

Function oyObserverGetFlags

Version
Oyranos: 0.1.10
Since
2009/10/26 (Oyranos: 0.1.10)
Date
2009/10/26

◆ oyObserverSetFlags()

OYAPI int OYEXPORT oyObserverSetFlags ( uint32_t  flags)

set global flags for Observation

Function oyObserverSetFlags

Version
Oyranos: 0.1.10
Since
2009/10/26 (Oyranos: 0.1.10)
Date
2009/10/26

◆ oyStruct_DisableSignalSend()

OYAPI int OYEXPORT oyStruct_DisableSignalSend ( oyStruct_s model)

disable sending a signal to all ovservers of a model

Function oyStruct_DisableSignalSend

Parameters
[in]modelthe model
Returns
0 - no handler found; 1 - error < 0 error or issue
Version
Oyranos: 0.1.10
Since
2010/04/07 (Oyranos: 0.1.10)
Date
2010/04/07

Referenced by oyOptions_s::oyOptions_ObserversDisable().

◆ oyStruct_EnableSignalSend()

OYAPI int OYEXPORT oyStruct_EnableSignalSend ( oyStruct_s model)

reenable sending a signal to all ovservers of a model

Function oyStruct_EnableSignalSend

Parameters
[in]modelthe model
Returns
0 - no handler found; 1 - error < 0 error or issue
Version
Oyranos: 0.1.10
Since
2010/04/07 (Oyranos: 0.1.10)
Date
2010/04/07

Referenced by oyOptions_s::oyOptions_ObserversEnable().

◆ oyStruct_IsObserved()

OYAPI int OYEXPORT oyStruct_IsObserved ( oyStruct_s model,
oyStruct_s observer 
)

return object observation status

Function oyStruct_IsObserved

Check if a object is observed by others.

Parameters
modelmodel to ask
observerwhich observes that model
Returns
true or false
Version
Oyranos: 0.1.10
Date
2009/10/28
Since
2009/10/28 (Oyranos: 0.1.10)

◆ oyStruct_ObservationCount()

OYAPI int OYEXPORT oyStruct_ObservationCount ( oyStruct_s object,
uint32_t  flags 
)

return the number of object<->model references

Function oyStruct_ObservationCount

The function lists by default (0) models and observers. Both types are individually selectable in the flags.

Parameters
objectwhich observes a model
flagsselect:
  • 0 : all
  • 1 : show observers count
  • 2 : show models count
Returns
count
Version
Oyranos: 0.9.7
Date
2018/10/04
Since
2018/09/29 (Oyranos: 0.9.7)

◆ oyStruct_ObserverAdd()

OYAPI int OYEXPORT oyStruct_ObserverAdd ( oyStruct_s model,
oyStruct_s observer,
oyStruct_s user_data,
oyObserver_Signal_f  signalFunc 
)

send a signal to a Observer object

Function oyStruct_ObserverAdd

Parameters
[in]modelthe to be observed model
[in]observerthe in observation intereressted object
[in]user_dataadditional static informations
[in]signalFuncthe signal handler; defaults to oyStructSignalForward_
Returns
0 - fine; 1 - error
Version
Oyranos: 0.1.10
Since
2009/10/26 (Oyranos: 0.1.10)
Date
2010/06/25

◆ oyStruct_ObserverCopyModel()

OYAPI int OYEXPORT oyStruct_ObserverCopyModel ( oyStruct_s model,
oyStruct_s pattern,
uint32_t  flags 
)

copy a models observers to a different model

Function oyStruct_ObserverCopyModel

The observers are copied from pattern with object type to a model with the same object type.

Parameters
[in,out]modelthe model
[in]patternthe pattern to copy from
[in]flags0x01 omit observer idendity check
Returns
0 - good; >= 1 - error; < 0 issue
Version
Oyranos: 0.1.10
Since
2009/11/02 (Oyranos: 0.1.10)
Date
2009/11/02

◆ oyStruct_ObserverCopyObserver()

OYAPI int OYEXPORT oyStruct_ObserverCopyObserver ( oyStruct_s observer,
oyStruct_s pattern,
uint32_t  flags 
)

copy a observers models to a different observer

Function oyStruct_ObserverCopyObserver

The models are copied from pattern with object type to a object with the same object type.

Parameters
[in,out]observerthe observer
[in]patternthe pattern to copy from
[in]flags0x01 omit model idendity check
Returns
0 - good; >= 1 - error; < 0 issue
Version
Oyranos: 0.1.10
Since
2009/11/02 (Oyranos: 0.1.10)
Date
2009/11/02

◆ oyStruct_ObserverListGet_()

oyStructList_s * oyStruct_ObserverListGet_ ( oyStruct_s obj,
const char *  reg 
)

Get the desired list of oyObserver_s'.

Function oyStruct_ObserverListGet_

Referenced by oyStruct_ObserverRemove().

◆ oyStruct_ObserverRemove()

OYAPI int OYEXPORT oyStruct_ObserverRemove ( oyStruct_s model,
oyStruct_s observer,
oyObserver_Signal_f  signalFunc 
)

disconnect a observer from a object

Function oyStruct_ObserverRemove

Parameters
[in,out]observerthe model
[in]modelthe pattern
[in]signalFuncthe signal handler to remove
Returns
0 - fine; 1 - error
Version
Oyranos: 0.1.10
Since
2009/10/26 (Oyranos: 0.1.10)
Date
2009/11/02

References oyStruct_s::oy_, and oyStruct_ObserverListGet_().

◆ oyStruct_ObserverRemove_()

int oyStruct_ObserverRemove_ ( oyStructList_s list,
oyStruct_s obj,
int  observer,
oyObserver_Signal_f  signalFunc 
)

Remove a observer from the observer or model internal list.

Function oyStruct_ObserverRemove_

◆ oyStruct_ObserversCopy()

OYAPI int OYEXPORT oyStruct_ObserversCopy ( oyStruct_s object,
oyStruct_s pattern,
uint32_t  flags 
)

copy a objects observers and models to a different object

Function oyStruct_ObserversCopy

oyStruct_ObserversCopy is a convenience function for oyStruct_ObserverCopyModel() and oyStruct_ObserverCopyObserver().

Parameters
[in,out]objectthe object
[in]patternthe pattern to copy from
[in]flags0x02 omit observers; 0x04 omit models
Returns
0 - good; >= 1 - error; < 0 issue
Version
Oyranos: 0.1.10
Since
2009/11/02 (Oyranos: 0.1.10)
Date
2009/11/02

◆ oyStruct_ObserverSignal()

OYAPI int OYEXPORT oyStruct_ObserverSignal ( oyStruct_s model,
oySIGNAL_e  signal_type,
oyStruct_s signal_data 
)

send a signal to all ovservers of a model

Function oyStruct_ObserverSignal

Parameters
[in]modelthe model
[in]signal_typethe basic signal type to emit
[in,out]signal_datathe advanced signal information
Returns
0 - no handler found; 1 - handler found; < 0 error or issue
Version
Oyranos: 0.1.10
Since
2009/10/27 (Oyranos: 0.1.10)
Date
2009/10/27

◆ oyStructSignalForward_()

int oyStructSignalForward_ ( oyObserver_s observer,
oySIGNAL_e  signal_type,
oyStruct_s signal_data 
)

Observe all list members.

Function oyStructSignalForward_

Field Documentation

◆ copy

oyStruct_Copy_f oyObserver_s::copy

Copy function.

◆ oy_

oyObject_s oyObserver_s::oy_

Oyranos internal object.

Features name and hash. Do not change during object life time.

◆ release

oyStruct_Release_f oyObserver_s::release

Release function.

◆ type_

const oyOBJECT_e oyObserver_s::type_

Type of object.

The struct type tells Oyranos how to interprete hidden fields.