Motr  M0
File Data Manipulation Interface API
Collaboration diagram for File Data Manipulation Interface API:

Modules

 FDMI FOL source
 
 FDMI Plugin Dock internals
 
 FDMI Plugin Dock public interface
 
 FDMI Source Dock internals
 
 FDMI Source Dock public interface
 
 FDMI filter client (filterC)
 
 FDMI filter evaluator description
 
 FDMI filter expression public API
 

Data Structures

struct  m0_reqh_fdmi_svc_params
 
struct  m0_reqh_fdmi_service
 

Macros

#define M0_TRACE_SUBSYSTEM   M0_TRACE_SUBSYS_FDMI
 

Enumerations

enum  m0_fdmi_dock_type_id { M0_FDMI_DOCK_TYPE_SOURCE = 0, M0_FDMI_DOCK_TYPE_PLUGIN, M0_FDMI_DOCK_TYPE_NR }
 
enum  m0_fdmi_rec_type_id { M0_FDMI_REC_TYPE_TEST = 0x100, M0_FDMI_REC_TYPE_FOL = 0x1000, M0_FDMI_REC_TYPE_ADDB }
 

Functions

M0_INTERNAL int m0_fdmi_init (void)
 
M0_INTERNAL void m0_fdmi_fini (void)
 
M0_INTERNAL struct m0_fdmi_src_dockm0_fdmi_src_dock_get (void)
 
static int fdms_allocate (struct m0_reqh_service **service, const struct m0_reqh_service_type *stype)
 
static void fdms_fini (struct m0_reqh_service *service)
 
static int fdms_start (struct m0_reqh_service *service)
 
static void fdms_prepare_to_stop (struct m0_reqh_service *service)
 
static void fdms_stop (struct m0_reqh_service *service)
 
M0_INTERNAL int m0_fdms_register (void)
 
M0_INTERNAL void m0_fdms_unregister (void)
 

Variables

static const struct m0_reqh_service_type_ops fdms_type_ops
 
static const struct m0_reqh_service_ops fdms_ops
 
M0_INTERNAL struct m0_reqh_service_type m0_fdmi_service_type
 

Detailed Description

See also
FDMI Functional Specification
Request handler

FDMI service runs as a part of Motr instance. FDMI service stores context data for both FDMI source dock and FDMI plugin dock. FDMI service is initialized and started on Motr instance start up, FDMI Source dock and FDMI plugin dock are managed separately, and specific API is provided for this purposes.

Macro Definition Documentation

◆ M0_TRACE_SUBSYSTEM

#define M0_TRACE_SUBSYSTEM   M0_TRACE_SUBSYS_FDMI

Definition at line 26 of file service.c.

Enumeration Type Documentation

◆ m0_fdmi_dock_type_id

FDMI dock type

Indicates what role FDMI service is to initiate. Initiation results in dock envirinment setup, including specific FOM, RPC, queues, etc.

Note: Motr node is allowed to have both roles initialized simultaneously.

Enumerator
M0_FDMI_DOCK_TYPE_SOURCE 
M0_FDMI_DOCK_TYPE_PLUGIN 
M0_FDMI_DOCK_TYPE_NR 

Definition at line 225 of file fdmi.h.

◆ m0_fdmi_rec_type_id

FDMI record type enumeration

Enumerator
M0_FDMI_REC_TYPE_TEST 

This rec type is only used for tests.

M0_FDMI_REC_TYPE_FOL 

FDMI record provided by FOL subsystem

M0_FDMI_REC_TYPE_ADDB 

FDMI record provided by ADDB subsystem

Definition at line 234 of file fdmi.h.

Function Documentation

◆ fdms_allocate()

static int fdms_allocate ( struct m0_reqh_service **  service,
const struct m0_reqh_service_type stype 
)
static

Definition at line 100 of file service.c.

Here is the call graph for this function:

◆ fdms_fini()

static void fdms_fini ( struct m0_reqh_service service)
static

Finalise FDMI Service instance. This operation finalises service instance and de-allocate it.

Parameters
servicepointer to service instance.
Precondition
service != NULL

Definition at line 128 of file service.c.

Here is the call graph for this function:

◆ fdms_prepare_to_stop()

static void fdms_prepare_to_stop ( struct m0_reqh_service service)
static

Preparing FDMI Service to stop

Parameters
servicepointer to service instance.
Precondition
service != NULL

Definition at line 198 of file service.c.

Here is the call graph for this function:

◆ fdms_start()

static int fdms_start ( struct m0_reqh_service service)
static

Start FDMI Service.

Parameters
servicepointer to service instance.
Precondition
service != NULL

Definition at line 149 of file service.c.

Here is the call graph for this function:

◆ fdms_stop()

static void fdms_stop ( struct m0_reqh_service service)
static

Stops FDMI Service.

Parameters
servicepointer to service instance.
Precondition
service != NULL

Definition at line 218 of file service.c.

◆ m0_fdmi_fini()

M0_INTERNAL void m0_fdmi_fini ( void  )

Deinitializes FDMI subsystem

Definition at line 879 of file fdmi.c.

Here is the call graph for this function:

◆ m0_fdmi_init()

M0_INTERNAL int m0_fdmi_init ( void  )

Initializes FDMI subsystem

Definition at line 867 of file fdmi.c.

Here is the call graph for this function:

◆ m0_fdmi_src_dock_get()

M0_INTERNAL struct m0_fdmi_src_dock* m0_fdmi_src_dock_get ( void  )

Return pointer to source dock context

Definition at line 890 of file fdmi.c.

Here is the caller graph for this function:

◆ m0_fdms_register()

M0_INTERNAL int m0_fdms_register ( void  )

Definition at line 80 of file service.c.

Here is the call graph for this function:

◆ m0_fdms_unregister()

M0_INTERNAL void m0_fdms_unregister ( void  )

Definition at line 92 of file service.c.

Here is the call graph for this function:

Variable Documentation

◆ fdms_ops

const struct m0_reqh_service_ops fdms_ops
static
Initial value:
= {
.rso_start = fdms_start,
.rso_stop = fdms_stop,
.rso_prepare_to_stop = fdms_prepare_to_stop,
.rso_fini = fdms_fini
}
static int fdms_start(struct m0_reqh_service *service)
Definition: service.c:149
static void fdms_prepare_to_stop(struct m0_reqh_service *service)
Definition: service.c:198
int m0_reqh_service_async_start_simple(struct m0_reqh_service_start_async_ctx *asc)
Definition: reqh_service.c:601
static void fdms_stop(struct m0_reqh_service *service)
Definition: service.c:218
static void fdms_fini(struct m0_reqh_service *service)
Definition: service.c:128

FDMI Service operations.

Definition at line 62 of file service.c.

◆ fdms_type_ops

const struct m0_reqh_service_type_ops fdms_type_ops
static
Initial value:
= {
.rsto_service_allocate = fdms_allocate
}
static int fdms_allocate(struct m0_reqh_service **service, const struct m0_reqh_service_type *stype)
Definition: service.c:100

FDMI Service type operations.

Definition at line 55 of file service.c.

◆ m0_fdmi_service_type

M0_INTERNAL struct m0_reqh_service_type m0_fdmi_service_type
Initial value:
= {
.rst_name = "M0_CST_FDMI",
.rst_ops = &fdms_type_ops,
.rst_level = M0_FDMI_SVC_LEVEL,
.rst_typecode = M0_CST_FDMI,
.rst_keep_alive = true
}
static const struct m0_reqh_service_type_ops fdms_type_ops
Definition: service.c:55

Definition at line 71 of file service.c.