dmlite  0.6
Classes | Macros | Typedefs | Functions
utils.h File Reference

C wrapper for DMLite utils. More...

#include "any.h"
#include "dmlite/common/config.h"
#include <limits.h>
#include <stdint.h>
Include dependency graph for utils.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  dmlite_url
 Handles URL. More...
 
struct  dmlite_aclentry
 Handles ACL entries. More...
 

Macros

#define ACL_ENTRIES_MAX   300
 
#define ACL_SIZE   13
 
#define CSUMTYPE_MAX   3
 
#define CSUMVALUE_MAX   33
 
#define GUID_MAX   36
 
#define HOST_NAME_MAX   _POSIX_HOST_NAME_MAX
 
#define QUERY_MAX   1024
 
#define SCHEME_MAX   7
 
#define URL_MAX   8192
 
#define ACL_USER_OBJ   1
 
#define ACL_USER   2
 
#define ACL_GROUP_OBJ   3
 
#define ACL_GROUP   4
 
#define ACL_MASK   5
 
#define ACL_OTHER   6
 
#define ACL_DEFAULT   0x20
 

Typedefs

typedef struct dmlite_url dmlite_url
 Handles URL. More...
 
typedef struct dmlite_aclentry dmlite_aclentry
 Handles ACL entries. More...
 

Functions

dmlite_urldmlite_url_new (void)
 Creates a new dmlite_url. More...
 
dmlite_urldmlite_parse_url (const char *source)
 Parses a URL. More...
 
void dmlite_url_free (dmlite_url *url)
 Frees the given url. More...
 
char * dmlite_url_serialize (dmlite_url *url, char *buffer, size_t bsize)
 Serializes a URL. More...
 
void dmlite_serialize_acls (unsigned nEntries, dmlite_aclentry *acl, char *buffer, size_t bsize)
 Serializes into a string a set of ACL entries. More...
 
void dmlite_deserialize_acl (const char *buffer, unsigned *nEntries, dmlite_aclentry **acl)
 Deserializes a string into an array of ACL entries. More...
 
void dmlite_acl_free (unsigned nEntries, dmlite_aclentry *acl)
 Frees an array of ACL entries as returned by dm_deserialize_acls. More...
 

Detailed Description

C wrapper for DMLite utils.

Author
Alejandro Álvarez Ayllon aalva.nosp@m.rez@.nosp@m.cern..nosp@m.ch

Macro Definition Documentation

◆ ACL_DEFAULT

#define ACL_DEFAULT   0x20

◆ ACL_ENTRIES_MAX

#define ACL_ENTRIES_MAX   300

◆ ACL_GROUP

#define ACL_GROUP   4

◆ ACL_GROUP_OBJ

#define ACL_GROUP_OBJ   3

◆ ACL_MASK

#define ACL_MASK   5

◆ ACL_OTHER

#define ACL_OTHER   6

◆ ACL_SIZE

#define ACL_SIZE   13

◆ ACL_USER

#define ACL_USER   2

◆ ACL_USER_OBJ

#define ACL_USER_OBJ   1

◆ CSUMTYPE_MAX

#define CSUMTYPE_MAX   3

◆ CSUMVALUE_MAX

#define CSUMVALUE_MAX   33

◆ GUID_MAX

#define GUID_MAX   36

◆ HOST_NAME_MAX

#define HOST_NAME_MAX   _POSIX_HOST_NAME_MAX

◆ QUERY_MAX

#define QUERY_MAX   1024

◆ SCHEME_MAX

#define SCHEME_MAX   7

◆ URL_MAX

#define URL_MAX   8192

Typedef Documentation

◆ dmlite_aclentry

Handles ACL entries.

◆ dmlite_url

typedef struct dmlite_url dmlite_url

Handles URL.

Function Documentation

◆ dmlite_acl_free()

void dmlite_acl_free ( unsigned  nEntries,
dmlite_aclentry acl 
)

Frees an array of ACL entries as returned by dm_deserialize_acls.

Parameters
nEntriesThe number of entries in the array.
aclThe ACL.

◆ dmlite_deserialize_acl()

void dmlite_deserialize_acl ( const char *  buffer,
unsigned *  nEntries,
dmlite_aclentry **  acl 
)

Deserializes a string into an array of ACL entries.

Parameters
bufferThe string.
nEntriesThe resulting number of ACL entries.
aclThe resulting ACL.

◆ dmlite_parse_url()

dmlite_url* dmlite_parse_url ( const char *  source)

Parses a URL.

Parameters
sourceOriginal URL.
Returns
Parsed URL.
Note
dest->query must be NULL for the first call, so it is internally allocated.

◆ dmlite_serialize_acls()

void dmlite_serialize_acls ( unsigned  nEntries,
dmlite_aclentry acl,
char *  buffer,
size_t  bsize 
)

Serializes into a string a set of ACL entries.

Parameters
nEntriesThe number of ACL entries in the array.
aclThe ACL.
bufferWhere to put the resulting string.
bsizeThe buffer size.

◆ dmlite_url_free()

void dmlite_url_free ( dmlite_url url)

Frees the given url.

Parameters
urlThe url to free.

◆ dmlite_url_new()

dmlite_url* dmlite_url_new ( void  )

Creates a new dmlite_url.

◆ dmlite_url_serialize()

char* dmlite_url_serialize ( dmlite_url url,
char *  buffer,
size_t  bsize 
)

Serializes a URL.

Parameters
urlThe url to serialize.
bufferWhere to put the serialized version.
bsizeThe buffer size.
Returns
Buffer, NULL on error.