mirror of
https://github.com/vale981/ray
synced 2025-03-14 07:06:38 -04:00

* adding object broadcast channel; published on each object table add * publishing data size to the bcast channel * bug fix: objectkey * update object tests to test for data size: C + py * remove debug * clang format * Minor changes. * Fix error. * merging with Robert's comments * clang format for the object table test upgrade
101 lines
4.2 KiB
C
101 lines
4.2 KiB
C
#include "object_table.h"
|
|
#include "redis.h"
|
|
#include "object_info.h"
|
|
|
|
void object_table_lookup(db_handle *db_handle,
|
|
object_id object_id,
|
|
retry_info *retry,
|
|
object_table_lookup_done_callback done_callback,
|
|
void *user_context) {
|
|
CHECK(db_handle != NULL);
|
|
init_table_callback(db_handle, object_id, __func__, NULL, retry,
|
|
done_callback, redis_object_table_lookup, user_context);
|
|
}
|
|
|
|
void object_table_add(db_handle *db_handle,
|
|
object_id object_id,
|
|
int64_t object_size,
|
|
unsigned char digest[],
|
|
retry_info *retry,
|
|
object_table_done_callback done_callback,
|
|
void *user_context) {
|
|
CHECK(db_handle != NULL);
|
|
|
|
object_table_add_data *info = malloc(sizeof(object_table_add_data));
|
|
info->object_size = object_size;
|
|
memcpy(&info->digest[0], digest, DIGEST_SIZE);
|
|
init_table_callback(db_handle, object_id, __func__, info, retry,
|
|
done_callback, redis_object_table_add, user_context);
|
|
}
|
|
|
|
void object_table_subscribe_to_notifications(
|
|
db_handle *db_handle,
|
|
bool subscribe_all,
|
|
object_table_object_available_callback object_available_callback,
|
|
void *subscribe_context,
|
|
retry_info *retry,
|
|
object_table_lookup_done_callback done_callback,
|
|
void *user_context) {
|
|
CHECK(db_handle != NULL);
|
|
object_table_subscribe_data *sub_data =
|
|
malloc(sizeof(object_table_subscribe_data));
|
|
sub_data->object_available_callback = object_available_callback;
|
|
sub_data->subscribe_context = subscribe_context;
|
|
sub_data->subscribe_all = subscribe_all;
|
|
|
|
init_table_callback(
|
|
db_handle, NIL_OBJECT_ID, __func__, sub_data, retry, done_callback,
|
|
redis_object_table_subscribe_to_notifications, user_context);
|
|
}
|
|
|
|
void object_table_request_notifications(db_handle *db_handle,
|
|
int num_object_ids,
|
|
object_id object_ids[],
|
|
retry_info *retry) {
|
|
CHECK(db_handle != NULL);
|
|
CHECK(num_object_ids > 0);
|
|
object_table_request_notifications_data *data =
|
|
malloc(sizeof(object_table_request_notifications_data) +
|
|
num_object_ids * sizeof(object_id));
|
|
data->num_object_ids = num_object_ids;
|
|
memcpy(data->object_ids, object_ids, num_object_ids * sizeof(object_id));
|
|
|
|
init_table_callback(db_handle, NIL_OBJECT_ID, __func__, data, retry, NULL,
|
|
redis_object_table_request_notifications, NULL);
|
|
}
|
|
|
|
void object_info_subscribe(db_handle *db_handle,
|
|
object_info_subscribe_callback subscribe_callback,
|
|
void *subscribe_context,
|
|
retry_info *retry,
|
|
object_info_done_callback done_callback,
|
|
void *user_context) {
|
|
object_info_subscribe_data *sub_data =
|
|
malloc(sizeof(object_info_subscribe_data));
|
|
sub_data->subscribe_callback = subscribe_callback;
|
|
sub_data->subscribe_context = subscribe_context;
|
|
|
|
init_table_callback(db_handle, NIL_OBJECT_ID, __func__, sub_data, retry,
|
|
done_callback, redis_object_info_subscribe, user_context);
|
|
}
|
|
|
|
void result_table_add(db_handle *db_handle,
|
|
object_id object_id,
|
|
task_id task_id_arg,
|
|
retry_info *retry,
|
|
result_table_done_callback done_callback,
|
|
void *user_context) {
|
|
task_id *task_id_copy = malloc(sizeof(task_id));
|
|
memcpy(task_id_copy, task_id_arg.id, sizeof(*task_id_copy));
|
|
init_table_callback(db_handle, object_id, __func__, task_id_copy, retry,
|
|
done_callback, redis_result_table_add, user_context);
|
|
}
|
|
|
|
void result_table_lookup(db_handle *db_handle,
|
|
object_id object_id,
|
|
retry_info *retry,
|
|
result_table_lookup_callback done_callback,
|
|
void *user_context) {
|
|
init_table_callback(db_handle, object_id, __func__, NULL, retry,
|
|
done_callback, redis_result_table_lookup, user_context);
|
|
}
|