Functions
HKL_MODE_INFO_RO()
#define HKL_MODE_INFO_RO(_name, _axes) .name=_name, .axes_r=DARRAY(_axes)
 
HKL_MODE_INFO()
#define HKL_MODE_INFO(_name, _axes_r, _axes_w) HKL_MODE_INFO_RO((_name), (_axes_r)), .axes_w=DARRAY((_axes_w))
 
HKL_MODE_INFO_RO_WITH_PARAMS()
#define HKL_MODE_INFO_RO_WITH_PARAMS(_name, _axes, _parameters) HKL_MODE_INFO_RO((_name), (_axes)), .parameters=DARRAY(_parameters)
 
HKL_MODE_INFO_WITH_PARAMS()
#define             HKL_MODE_INFO_WITH_PARAMS(_name, _axes_r, _axes_w, _parameters)
 
HKL_ENGINE_INFO()
#define             HKL_ENGINE_INFO(_name, _pseudo_axes, _dependencies)
 
HKL_ENGINE_LIST_INFO()
#define HKL_ENGINE_LIST_INFO(_parameters) .parameters = DARRAY(_parameters)
 
g_quark_from_static_string ()
return
g_quark_from_static_string ();
 
darray_item ()
return
darray_item ();
 
hkl_engine_list_new_with_info ()
return
hkl_engine_list_new_with_info ();
default constructor with info part
[skip]
 
 
Types and Values
darray_mode
typedef darray(HklMode *) darray_mode;
 
struct HklModeInfo
struct HklModeInfo {
	const char *name;
	const darray_string axes_r;
	const darray_string axes_w;
	const darray(const HklParameter) parameters;
};
 
struct HklModeOperations
struct HklModeOperations {
	unsigned long capabilities;
	void (* free)(HklMode *self);
	int (* initialized_get)(const HklMode *self);
	int (* initialized_set)(HklMode *self,
				HklEngine *engine,
				HklGeometry *geometry,
				HklDetector *detector,
				HklSample *sample,
				int initialized,
				GError **error);
	int (* get)(HklMode *self,
		    HklEngine *engine,
		    HklGeometry *geometry,
		    HklDetector *detector,
		    HklSample *sample,
		    GError **error);
	int (* set)(HklMode *self,
		    HklEngine *engine,
		    HklGeometry *geometry,
		    HklDetector *detector,
		    HklSample *sample,
		    GError **error);
};
 
HKL_MODE_OPERATIONS_DEFAULTS
#define             HKL_MODE_OPERATIONS_DEFAULTS
 
struct HklMode
struct HklMode {
	const HklModeInfo *info;
	const HklModeOperations *ops;
	darray_parameter parameters;
	darray_string parameters_names;
	int initialized;
};
 
self
	HklModeAutoWithInit *self = container_of(mode, HklModeAutoWithInit, mode);
 
struct HklEngineInfo
struct HklEngineInfo {
	const char *name;
	const darray(const HklParameter *) pseudo_axes;
	unsigned int dependencies;
};
 
HklEngine
typedef struct {
	const HklEngineInfo *info;
	const HklEngineOperations *ops;
	HklGeometry *geometry;
	HklDetector *detector;
	HklSample *sample;
	HklMode *mode; /* not owned */
	HklEngineList *engines; /* not owned */
	darray_parameter axes;
	darray_parameter pseudo_axes;
	darray_string pseudo_axis_names;
	darray_mode modes;
	darray_string mode_names;
} HklEngine;
 
struct HklEngineListInfo
struct HklEngineListInfo {
	const darray(const HklParameter *) parameters;
};
 
HKL_ENGINE_LIST_INFO_DEFAULTS
#define HKL_ENGINE_LIST_INFO_DEFAULTS .parameters = darray_new()
 
struct HklEngineListOperations
struct HklEngineListOperations {
	void (* free)(HklEngineList *self);
	int (* post_engine_set)(HklEngineList *self);
};
 
HKL_ENGINE_LIST_OPERATIONS_DEFAULTS
#define             HKL_ENGINE_LIST_OPERATIONS_DEFAULTS
 
HklEngineList
typedef struct {
	_darray(HklEngine *); /* must be the first memeber */
	const HklEngineListInfo *info;
	const HklEngineListOperations *ops;
	HklGeometryList *geometries;
	HklGeometry *geometry;
	HklDetector *detector;
	HklSample *sample;
	darray_parameter pseudo_axes;
	darray_parameter parameters;
	darray_string parameters_names;
} HklEngineList;
 
HKL_ENGINE_ERROR
#define HKL_ENGINE_ERROR hkl_engine_error_quark ()
 
struct HklEngineOperations
struct HklEngineOperations {
	void (*free)(HklEngine *self);
};
 
HKL_ENGINE_OPERATIONS_DEFAULTS
#define HKL_ENGINE_OPERATIONS_DEFAULTS .free=hkl_engine_free_real
 
axis
			HklParameter *axis = hkl_geometry_get_axis_by_name(self->geometry,
 
HKL_ENGINE_LIST_ERROR
#define HKL_ENGINE_LIST_ERROR hkl_engine_list_error_quark ()