ESDM
Middleware for Earth System Data
Macros | Functions
wos.c File Reference

A data backend to provide wos compatibility. More...

#include <errno.h>
#include <jansson.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/time.h>
#include <esdm-datatypes.h>
#include <esdm-debug.h>
#include <esdm.h>
#include "wos.h"
Include dependency graph for wos.c:

Macros

#define _GNU_SOURCE
 
#define PAGE_4K   (4096ULL)
 
#define BLOCKSIZE   (PAGE_4K)
 
#define BLOCKMASK   (BLOCKSIZE - 1)
 
#define WOS_HOST   "host"
 
#define WOS_POLICY   "policy"
 
#define WOS_OBJ_NUM   1
 
#define WOS_OBJECT_ID   "object_id"
 
#define DEBUG(fmt)   ESDM_DEBUG(fmt)
 
#define DEBUG_FMT(fmt, ...)   ESDM_DEBUG_COM_FMT("WOS", fmt, __VA_ARGS__)
 

Functions

int wos_get_param (const char *conf, char **output, const char *param)
 
int wos_get_host (const char *conf, char **host)
 
int wos_get_policy (const char *conf, char **policy)
 
void wos_delete_oid_list (esdm_backend_t_wos_t *ebm)
 
int wos_object_list_encode (t_WosOID **oid_list, char **out_object_id)
 
int esdm_backend_t_wos_init (const char *conf, esdm_backend_t *eb)
 
int esdm_backend_t_wos_fini (esdm_backend_t *eb)
 
int esdm_backend_t_wos_alloc (esdm_backend_t *eb, int n_dims, int *dims_size, esdm_type_t type, char **out_object_id, char **out_wos_metadata)
 
int esdm_backend_t_wos_open (esdm_backend_t *eb, char *object_id, void **obj_handle)
 
int esdm_backend_t_wos_delete (esdm_backend_t *eb, void *obj_handle)
 
int esdm_backend_t_wos_write (esdm_backend_t *eb, void *obj_handle, uint64_t start, uint64_t count, esdm_type_t type, void *data)
 
int esdm_backend_t_wos_read (esdm_backend_t *eb, void *obj_handle, uint64_t start, uint64_t count, esdm_type_t type, void *data)
 
int esdm_backend_t_wos_close (esdm_backend_t *eb, void *obj_handle)
 
int wos_backend_performance_check (esdm_backend_t *eb, int data_size, float *out_time)
 
int wos_backend_performance_estimate (esdm_backend_t *eb, esdm_fragment_t *fragment, float *out_time)
 
int esdm_backend_t_wos_fragment_retrieve (esdm_backend_t *backend, esdm_fragment_t *fragment, json_t *metadata)
 
int esdm_backend_t_wos_fragment_update (esdm_backend_t *backend, esdm_fragment_t *fragment)
 
int esdm_backend_t_wos_fragment_delete (esdm_backend_t *backend, esdm_fragment_t *fragment, json_t *metadata)
 
int esdm_backend_t_wos_fragment_mkfs (esdm_backend_t *backend, int enforce_format)
 
esdm_backend_twos_backend_init (esdm_config_backend_t *config)
 

Detailed Description

A data backend to provide wos compatibility.

Function Documentation

◆ wos_get_param()

int wos_get_param ( const char *  conf,
char **  output,
const char *  param 
)

Initializes the plugin. In particular this involves:

  • Load configuration of this backend
  • Load and potenitally calibrate performance model
  • Connect with support services e.g. for technical metadata
  • Setup directory structures used by this wos specific backend
  • Popopulate esdm_backend_t struct and callbacks required for registration
Returns
pointer to backend struct