C++

BangDB Resource Manager (Embedded) is a type to allow users to deal with large files and objects. Users can create buckets and store large files in the buckets and fetch as needed.

To get instance of BangDBResourceManager

BangDBResourceManager(BangDBDatabase *bdb);

To initialize the BRS

int init_brs_meta();

To create a bucket

int create_bucket(char *bucket_info);

This creates a bucket as defined by the bucket_info which looks like following:

{access_key:, secret_key:, bucket_name:}

It returns -1 for error To get list of buckets present in BRS for a user

char *list_buckets(char *user_info);

It returns NULL for error else the list of the buckets. Users should use delete[] the returned string. To get list of buckets present in BRS

char *list_all_buckets(char *user_info);

It returns NULL for error else the list of the buckets. Users should use delete[] the returned string.

To count the number of buckets present in the BRS

long count_buckets();

It returns -1 for error else the count. To delete a bucket

int delete_bucket(char *bucket_info);

It returns -1 for error else 0 or more than 0. To upload an object into a bucket

long put_object(char *bucket_info, char *key, char *data, long datlen, bool force = false);

Here, bucket_info is the bucket name and key is the unique name given by the user to the object to be uploaded. It returns -1 for error else 0 or more than 0 To download an object from a bucket in BRS.

long get_object(char *bucket_info, char *key, char **data, long *datlen);

Returns the current number of objects for the bucket if successful else -1. To upload a file into a bucket

long put_file(char *bucket_info, char *key, char *fpath, InsertOptions iop, bool force = false);

InsertOptions is an enum with following values:

INSERT_UNIQUE, //if non-existing then insert else return
UPDATE_EXISTING, //if existing then update else return
INSERT_UPDATE, //insert if non-existing else update
DELETE_EXISTING, //delete if existing
UPDATE_EXISTING_INPLACE, //only for inplace update
INSERT_UPDATE_INPLACE, //only for inplace update

Please see more on this at bangdb common.

It returns -1 for error else 0 or more than 0 To download a file from a bucket to local system.

long get_file(char *bucket_info, char *key, char *fname, char *fpath);

Key is the unique name/id provided by user or bangdb to refer that file and fpath is the location where the file will be downloaded with fname as file name. It returns -1 for error else 0 or more than 0. To delete an object in a bucket.

int del_object(char *bucket_info, char *key);

It returns -1 for error else 0 or more than 0. To count the number of slices of an objects present in a bucket

int count_slices(char *bucket_info, char *key);

It returns -1 for error else the slice count. To count current number of objects for the bucket

long count_objects(char *bucket_info);

It returns -1 for error else the slice count. To list all object present

char *list_objects(char *bucket_info);

It returns NULL for error or the list of objects. Users should free the returned data using delete[].

To close a bucket

int close_bucket(char *bucket_info);

It returns -1 for error else 0 or positive number. To close resource manager

int close_resource_manager(CloseType closetype = DEFAULT, bool force = false);

ClosedType is enum with following values:

DEFAULT_AT_CLIENT
CONSERVATIVE_AT_SERVER
OPTIMISTIC_AT_SERVER,
CLEANCLOSE_AT_SERVER,
SIMPLECLOSE_AT_SERVER,
DEFAULT_AT_SERVER

Please see more on this at bangdb common.

It returns -1 for error or 0 or positive number.