Oyranos Color Management System API - Version 0.9.6

A Configs list. More...

#include <oyConfigs_s.h>

Inheritance diagram for oyConfigs_s:
Inheritance graph
Collaboration diagram for oyConfigs_s:
Collaboration graph

Public Member Functions

OYAPI oyConfigs_s *OYEXPORT oyConfigs_New (oyObject_s object)
 allocate a new Configs object
 oyConfigs_Copy
 Copy or Reference a Configs object.
OYAPI int OYEXPORT oyConfigs_Release (oyConfigs_s **configs)
 release and possibly deallocate a oyConfigs_s object
OYAPI int OYEXPORT oyConfigs_MoveIn (oyConfigs_s *list, oyConfig_s **obj, int pos)
 add an element to a Configs list
OYAPI int OYEXPORT oyConfigs_ReleaseAt (oyConfigs_s *list, int pos)
 release a element from a Configs list
OYAPI oyConfig_s *OYEXPORT oyConfigs_Get (oyConfigs_s *list, int pos)
 get a element of a Configs list
OYAPI int OYEXPORT oyConfigs_Count (oyConfigs_s *list)
 count the elements in a Configs list
OYAPI int OYEXPORT oyConfigs_Clear (oyConfigs_s *list)
 clear the elements in a Configs list
OYAPI int OYEXPORT oyConfigs_Sort (oyConfigs_s *list, int32_t *rank_list)
 sort a list according to a rank_list
OYAPI int OYEXPORT oyConfigs_FromDomain (const char *registration_domain, oyOptions_s *options, oyConfigs_s **configs, oyObject_s object)
 Send a request to a configuration module.
OYAPI int OYEXPORT oyConfigs_FromDeviceClass (const char *device_type, const char *device_class, oyOptions_s *options, oyConfigs_s **devices, oyObject_s object)
 Ask a module for device informations or other direct calls.
OYAPI int OYEXPORT oyConfigs_SelectSimilars (oyConfigs_s *list, const char *pattern[][2], oyConfigs_s **filtered)
 filter similiar configs compared by a pattern
OYAPI int OYEXPORT oyConfigs_FromDB (const char *registration, oyOptions_s *options, oyConfigs_s **configs, oyObject_s object)
 Get all oyConfigs_s from DB.
OYAPI int OYEXPORT oyConfigs_Modify (oyConfigs_s *configs, oyOptions_s *options)
 Ask a module for device informations or other direct calls.
OYAPI int OYEXPORT oyConfigDomainList (const char *registration_pattern, char ***list, uint32_t *count, uint32_t **rank_list, oyAlloc_f allocateFunc)
 Count and show the global oyConfigs_s suppliers.
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
const char * oyStruct_GetText (oyStruct_s *obj, oyNAME_e name_type, uint32_t flags)
 Get a text dump.
 oyStruct_RegisterStaticMessageFunc
 register a function for verbosity
 oyStruct_GetInfo
 get a additional string from a object
const char * oyStructTypeToText (oyOBJECT_e type)
 Objects type to small string.

Data Fields

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

Detailed Description

A Configs list.

Managing the plural of oyConfig_s for the sake of typesafety.

Note
This class holds a list of objects [list]
Version
Oyranos: 0.1.10
Since
2009/01/19 (Oyranos: 0.1.10)
Date
2009/01/19
Examples
tutorial1.c, and tutorial_taxi.c.

Member Function Documentation

◆ oyConfigDomainList()

OYAPI int OYEXPORT oyConfigDomainList ( const char * registration_pattern,
char *** list,
uint32_t * count,
uint32_t ** rank_list,
oyAlloc_f allocateFunc )

Count and show the global oyConfigs_s suppliers.

Function oyConfigDomainList

uint32_t count = 0,
rank_list = 0;
char ** texts = 0,
temp = 0,
attributes = 0,
device_class = 0;
int i,j, attributes_n;
// get all configuration filters
oyConfigDomainList("//"OY_TYPE_STD, &texts, &count,&rank_list ,0 );
for( i = 0; i < count; ++i )
{
attributes_n = 0;
// pick the filters name and remove the common config part
temp = oyFilterRegistrationToText( texts[i], oyFILTER_REG_APPLICATION,
malloc );
attributes = oyStringSplit_( temp, '.', &attributes_n, malloc );
free(temp);
temp = malloc(1024); temp[0] = 0;
for(j = 0; j < attributes_n; ++j)
{
if(strcmp(attributes[j], "config") == 0)
continue;
if(j && temp[0])
sprintf( &temp[strlen(temp)], "." );
sprintf( &temp[strlen(temp)], "%s", attributes[j]);
}
// The string in temp can be passed as the device_class argument to
// oyDevicesGet()
printf("%d: %s \"%s\"\n", i, texts[i], temp);
oyStringListRelease_( &attributes, attributes_n, free );
free (device_class);
free(temp);
}
@ oyFILTER_REG_APPLICATION
Definition oyranos_object.h:292
#define OY_TYPE_STD
Definition oyranos_definitions.h:118
OYAPI int OYEXPORT oyConfigDomainList(const char *registration_pattern, char ***list, uint32_t *count, uint32_t **rank_list, oyAlloc_f allocateFunc)
Count and show the global oyConfigs_s suppliers.
Definition oyConfigs_s.c:948
Parameters
[in]registration_patterna optional filter
[out]listthe list with full filter registrations
[out]countthe list count
[out]rank_listthe rank fitting to list
[in]allocateFuncthe user allocator for list
Returns
0 - good, >= 1 - error, <= -1 unknown
Version
Oyranos: 0.1.10
Since
2009/01/19 (Oyranos: 0.1.10)
Date
2009/01/19

References oy_debug, oyFILTER_REG_MODE_STRIP_IMPLEMENTATION_ATTR, and oyOBJECT_CMM_API8_S.

Referenced by oyConfigs_FromDB(), oyConfigs_FromDeviceClass(), and oyConfigs_Modify().

◆ oyConfigs_Clear()

OYAPI int OYEXPORT oyConfigs_Clear ( oyConfigs_s * list)

clear the elements in a Configs list

Function oyConfigs_Clear

Parameters
[in,out]listthe list
Returns
0 - success; otherwise - error
Version
Oyranos: 0.3.0
Since
2011/02/01 (Oyranos: 0.3.0)
Date
2011/02/01

References oyOBJECT_CONFIGS_S.

◆ oyConfigs_Copy()

oyConfigs_Copy

Copy or Reference a Configs object.

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

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

References oyConfigs_Copy(), and oyOBJECT_CONFIGS_S.

Referenced by oyConfigs_Copy().

◆ oyConfigs_Count()

OYAPI int OYEXPORT oyConfigs_Count ( oyConfigs_s * list)

count the elements in a Configs list

Function oyConfigs_Count

Parameters
[in,out]listthe list
Returns
element count
Version
Oyranos: 0.1.10
Since
2010/07/05 (Oyranos: 0.1.10)
Date
2010/07/05

References oyOBJECT_CONFIGS_S.

Referenced by oyConfigs_FromDeviceClass(), oyConfigs_FromDomain(), oyConfigs_Modify(), and oyConfigs_SelectSimilars().

◆ oyConfigs_FromDB()

OYAPI int OYEXPORT oyConfigs_FromDB ( const char * registration,
oyOptions_s * options,
oyConfigs_s ** configs,
oyObject_s object )

Get all oyConfigs_s from DB.

Function oyConfigs_FromDB

Parameters
[in]registrationthe key path
[in]Options APIsupported is "module" containing a registration string to select a module
[out]configsthe found configuration list
[in]objecta optional user object
Returns
error
Version
Oyranos: 0.9.6
Date
2015/02/24
Since
2009/01/23 (Oyranos: 0.1.10)

1.) setup Elektra

2.) get all module names for the module pattern

3.) obtain the directory structure for configurations

4.) obtain all keys from one configuration directory

4.1.) add information about the data's origin

5.) add a rank map to each object to allow for comparisions

5.1.) try the rank map from module

5.2.) search a rank map from DB

Todo
implement JSON DB rank map

6.) move the object into the list

References oyConfig_s::oy_, OY_CREATE_NEW, oyConfigDomainList(), oyConfigs_MoveIn(), oyConfigs_New(), oyConfigs_Release(), oyOBJECT_CMM_API8_S, and oySCOPE_USER_SYS.

◆ oyConfigs_FromDeviceClass()

OYAPI int OYEXPORT oyConfigs_FromDeviceClass ( const char * device_type,
const char * device_class,
oyOptions_s * options,
oyConfigs_s ** devices,
oyObject_s object )

Ask a module for device informations or other direct calls.

Function oyConfigs_FromDeviceClass

Parameters
[in]device_typethe device type oyFILTER_REG_TYPE, defaults to OY_TYPE_STD (optional)
[in]device_classthe device class, e.g. "monitor", oyFILTER_REG_APPLICATION
[in]Options APIoptions to pass to the module, for zero the usage instructions are requested, a option "device_name" can be used as filter
[out]devicesthe devices
[in]objectthe optional object
Returns
0 - good, >= 1 - error
// pass empty options to the module to get a usage message
oyOptions_s * options = 0;
int error = oyConfigs_FromDeviceClass( OY_TYPE_STD, "monitor",
options, 0, 0 );
OYAPI int OYEXPORT oyConfigs_FromDeviceClass(const char *device_type, const char *device_class, oyOptions_s *options, oyConfigs_s **devices, oyObject_s object)
Ask a module for device informations or other direct calls.
Definition oyConfigs_s.c:409
generic Options
Definition oyOptions_s.h:80
Version
Oyranos: 0.1.10
Since
2009/01/28 (Oyranos: 0.1.10)
Date
2009/01/30

1.) obtain detailed and expensive device informations

1.1.) build a device class registration string

1.2.) get all device class module names

1.3.) ask each module

1.3.1.) call into module

1.3.1.1.) Compare the device_name with the device_name option and collect the matching devices.

1.3.1.2.) ... or collect all device configurations

The basic call on how to obtain the configuration is added here as the objects name. "properties" and "list" are known.

References oyConfig_s::oy_, oyConfigDomainList(), oyConfigs_Count(), oyConfigs_FromDomain(), oyConfigs_Get(), oyConfigs_MoveIn(), oyConfigs_New(), oyConfigs_Release(), oyNAME_NAME, oyObject_SetName(), and oyStruct_GetDeAllocator().

◆ oyConfigs_FromDomain()

OYAPI int OYEXPORT oyConfigs_FromDomain ( const char * registration_domain,
oyOptions_s * options,
oyConfigs_s ** configs,
oyObject_s object )

Send a request to a configuration module.

Function oyConfigs_FromDomain

A empty options argument should send out an warning message, which contains intructions on how to talk with the module. Otherwise the calls are pure convention and depend on the usage and agreement of the partners.

For the convention to call to color devices

See also
oyX1Configs_FromPatternUsage().
Parameters
[in]registration_domainthe module to call to
[in]Options APIoptions to specify the calling into modules messages are bound to this object
[out]configsthe returned configurations
[in]objecta optional user object
Returns
0 - good, 1 <= error, -1 >= issues, look for messages
Version
Oyranos: 0.9.6
Date
2015/08/03
Since
2009/01/16 (Oyranos: 0.1.10)
  1. first we search for oyCMMapi8_s complex config support matching to our registration_domain
  2. if we find a module, we ask for the options
  3. add the options to the config (in the module)

References oyConfigs_Count(), oyConfigs_Get(), oyConfigs_Release(), oyOBJECT_CMM_API8_S, and oyOPTIONSOURCE_FILTER.

Referenced by oyConfigs_FromDeviceClass().

◆ oyConfigs_Get()

OYAPI oyConfig_s *OYEXPORT oyConfigs_Get ( oyConfigs_s * list,
int pos )

get a element of a Configs list

Function oyConfigs_Get

Parameters
[in,out]listthe list
posposition
Version
Oyranos: 0.1.10
Since
2010/07/05 (Oyranos: 0.1.10)
Date
2010/07/05

References oyOBJECT_CONFIG_S, and oyOBJECT_CONFIGS_S.

Referenced by oyConfigs_FromDeviceClass(), oyConfigs_FromDomain(), oyConfigs_Modify(), and oyConfigs_SelectSimilars().

◆ oyConfigs_Modify()

OYAPI int OYEXPORT oyConfigs_Modify ( oyConfigs_s * configs,
oyOptions_s * options )

Ask a module for device informations or other direct calls.

Function oyConfigs_Modify

Parameters
[in,out]configsThe passed configs first member is used to obtain a registration string and select a appropriate module. Regarding the module the configs need to be homogenous. All configs are passed at once to the module. Mixing configs from different modules is not defined.
[in]Options APIoptions to pass to the module; With zero the usage instructions are requested.
Returns
0 - good, >= 1 - error, issue <= -1
Version
Oyranos: 0.9.6
Date
2015/08/03
Since
2009/08/21 (Oyranos: 0.1.10)

1.) pick the first device to select a registration

1.2.) get all device class module names from the firsts oyConfig_s registration

2.) call each modules oyCMMapi8_s::oyConfigs_Modify

References oyConfigDomainList(), oyConfigs_Count(), oyConfigs_Get(), oyOBJECT_CMM_API8_S, and oyOBJECT_CONFIGS_S.

◆ oyConfigs_MoveIn()

OYAPI int OYEXPORT oyConfigs_MoveIn ( oyConfigs_s * list,
oyConfig_s ** obj,
int pos )

add an element to a Configs list

Function oyConfigs_MoveIn

Parameters
[in]listlist
[in,out]objlist element
posposition
Version
Oyranos: 0.1.10
Since
2010/07/05 (Oyranos: 0.1.10)
Date
2010/07/05

References oyOBJECT_CONFIG_S, oyOBJECT_CONFIGS_S, and oyConfig_s::type_.

Referenced by oyConfigs_FromDB(), oyConfigs_FromDeviceClass(), and oyConfigs_SelectSimilars().

◆ oyConfigs_New()

OYAPI oyConfigs_s *OYEXPORT oyConfigs_New ( oyObject_s object)

allocate a new Configs object

Function oyConfigs_New

References oyOBJECT_OBJECT_S.

Referenced by oyConfigs_FromDB(), oyConfigs_FromDeviceClass(), and oyConfigs_SelectSimilars().

◆ oyConfigs_Release()

OYAPI int OYEXPORT oyConfigs_Release ( oyConfigs_s ** configs)

release and possibly deallocate a oyConfigs_s object

Function oyConfigs_Release

Parameters
[in,out]configsConfigs struct object

References oyOBJECT_CONFIGS_S.

Referenced by oyConfigs_FromDB(), oyConfigs_FromDeviceClass(), and oyConfigs_FromDomain().

◆ oyConfigs_ReleaseAt()

OYAPI int OYEXPORT oyConfigs_ReleaseAt ( oyConfigs_s * list,
int pos )

release a element from a Configs list

Function oyConfigs_ReleaseAt

Parameters
[in,out]listthe list
posposition
Version
Oyranos: 0.1.10
Since
2010/07/05 (Oyranos: 0.1.10)
Date
2010/07/05

References oyOBJECT_CONFIGS_S.

◆ oyConfigs_SelectSimilars()

OYAPI int OYEXPORT oyConfigs_SelectSimilars ( oyConfigs_s * list,
const char * pattern[][2],
oyConfigs_s ** filtered )

filter similiar configs compared by a pattern

Function oyConfigs_SelectSimilars

This is a simple convenience function to select from a list existing configurations.

const char * pattern[][2] = {{"device_name",0},
{"manufacturer",0},
{"model",0},
{"serial",0},
{0,0}};
oyConfigs_s * devices = 0, * filtered = 0;
int error = oyConfigs_FromDB( registration, NULL, &devices, 0 );
error = oyConfigs_SelectSimilars( devices, pattern, &filtered )
OYAPI int OYEXPORT oyConfigs_SelectSimilars(oyConfigs_s *list, const char *pattern[][2], oyConfigs_s **filtered)
filter similiar configs compared by a pattern
Definition oyConfigs_s.c:558
OYAPI int OYEXPORT oyConfigs_FromDB(const char *registration, oyOptions_s *options, oyConfigs_s **configs, oyObject_s object)
Get all oyConfigs_s from DB.
Definition oyConfigs_s.c:697
Parameters
[in]listthe list
[in]patternuser supplied zero terminated pattern list; The first element is a mandadory key to meet. The second element is the optional value. Each
[out]filteredthe result
Returns
error
Version
Oyranos: 0.1.10
Since
2009/02/26 (Oyranos: 0.1.10)
Date
2009/02/26

References oyConfigs_Count(), oyConfigs_Get(), oyConfigs_MoveIn(), oyConfigs_New(), and oyOBJECT_CONFIGS_S.

◆ oyConfigs_Sort()

OYAPI int OYEXPORT oyConfigs_Sort ( oyConfigs_s * list,
int32_t * rank_list )

sort a list according to a rank_list

Function oyConfigs_Sort

Version
Oyranos: 0.3.0
Since
2011/02/01 (Oyranos: 0.3.0)
Date
2011/02/01

References oyOBJECT_CONFIGS_S.

Field Documentation

◆ copy

oyStruct_Copy_f oyConfigs_s::copy

Copy function.

◆ oy_

oyObject_s oyConfigs_s::oy_

Oyranos internal object.

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

◆ release

oyStruct_Release_f oyConfigs_s::release

Release function.

◆ type_

const oyOBJECT_e oyConfigs_s::type_

Type of object.

The struct type tells Oyranos how to interprete hidden fields.