Top | ![]() |
![]() |
![]() |
![]() |
typedef | darray_mode |
struct | HklModeInfo |
struct | HklModeOperations |
#define | HKL_MODE_OPERATIONS_DEFAULTS |
struct | HklMode |
struct | HklEngineInfo |
HklEngine | |
struct | HklEngineListInfo |
#define | HKL_ENGINE_LIST_INFO_DEFAULTS |
struct | HklEngineListOperations |
#define | HKL_ENGINE_LIST_OPERATIONS_DEFAULTS |
HklEngineList | |
#define | HKL_ENGINE_ERROR |
enum | HklEngineError |
struct | HklEngineOperations |
#define | HKL_ENGINE_OPERATIONS_DEFAULTS |
#define | HKL_ENGINE_LIST_ERROR |
enum | HklEngineListError |
#define HKL_MODE_INFO(_name, _axes_r, _axes_w) HKL_MODE_INFO_RO((_name), (_axes_r)), .axes_w=DARRAY((_axes_w))
#define HKL_MODE_INFO_RO_WITH_PARAMS(_name, _axes, _parameters) HKL_MODE_INFO_RO((_name), (_axes)), .parameters=DARRAY(_parameters)
int hkl_mode_initialized_set (HklMode *self
,HklEngine *engine
,HklGeometry *geometry
,HklDetector *detector
,HklSample *sample
,int initialized
,GError **error
);
int hkl_mode_init (HklMode *self
,const HklModeInfo *info
,const HklModeOperations *ops
,int initialized
);
HklMode * hkl_mode_new (const HklModeInfo *info
,const HklModeOperations *op
,int initialized
);
void hkl_engine_init (HklEngine *self
,const HklEngineInfo *info
,const HklEngineOperations *ops
,HklEngineList *engines
);
HklParameter * register_mode_parameter (HklMode *mode
,unsigned int index
);
HklParameter * register_pseudo_axis (HklEngine *self
,HklEngineList *engines
,const HklParameter *pseudo_axis
);
void hkl_engine_add_mode (HklEngine *self
,HklMode *mode
);
add an HklMode to the self HklEngine
[skip]
void hkl_engine_add_geometry (HklEngine *self
,double const x[]
);
This method try to be clever by allocating memory only if the current length of the geometries is not large enought. Then it just set the geometry axes and copy it to the right geometries. We do not gives the x len as it is equal to the self->axes_len.
[skip]
void hkl_engine_mode_set (HklEngine *self
,HklMode *mode
);
This method also populate the self->axes from the mode->axis_names. this is to speed the computation of the numerical axes.
[skip]
int
hkl_engine_get (HklEngine *self
);
get the values of the pseudo-axes from the real-axes values
[skip]
int hkl_engine_set (HklEngine *self
,GError **error
);
use the HklPseudoaxisEngine values to compute the real axes values.
[skip]
void
hkl_engine_list_clear (HklEngineList *self
);
remove all engine from the engine list
[skip]
void
hkl_engine_list_free_real (HklEngineList *self
);
destructor
[skip]
int
hkl_engine_list_post_engine_set_real (HklEngineList *self
);
HklEngineList * hkl_engine_list_new_with_info (const HklEngineListInfo *info
,const HklEngineListOperations *ops
);
default constructor with info part
[skip]
const HklEngineList * hkl_engine_list_new_copy ();
dummy copy constructor for the binding
[skip]
struct HklModeInfo { const char *name; const darray_string axes_r; const darray_string axes_w; const darray(const HklParameter) parameters; };
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); };
struct HklMode { const HklModeInfo *info; const HklModeOperations *ops; darray_parameter parameters; darray_string parameters_names; int initialized; };
struct HklEngineInfo { const char *name; const darray(const HklParameter *) pseudo_axes; unsigned int dependencies; };
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 { const darray(const HklParameter *) parameters; };
struct HklEngineListOperations { void (* free)(HklEngineList *self); int (* post_engine_set)(HklEngineList *self); };
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;