Detailed GridRPC API Specification

Initializing and Finalizing Functions

int grpc_initialize( char * config_file_name);
int grpc_finalize();

Remote Function Handle Management Functions

int grpc_function_handle_default(grpc_function_handle_t * handle,
char * func_name);
int grpc_function_handle_init(grpc_function_handle_t * handle,
char * host_name, int port, char * func_name);
int grpc_function_handle_destruct(grpc_function_handle_t * handle);
grpc_function_handle_t * grpc_get_handle(int sessionId);

GridRPC Call Functions

int grpc_call(grpc_function_handle_t *handle, ...);
int grpc_call_async(grpc_function_handle_t *handle, ...);
int grpc_call_argstack(grpc_function_handle_t *handle, ArgStack *args);
int grpc_call_argstack_async(grpc_function_handle_t *handle, ArgStack *args);

Asynchronous GridRPC Control Functions

int grpc_probe(int sessionID);
int grpc_cancel(int sessionID);

Asynchronous GridRPC Wait Functions

int grpc_wait(int sessionID);
int grpc_wait_and(int * idArray, int length);
int grpc_wait_or(int * idArray, int length, int * idPtr);
int grpc_wait_all();
int grpc_wait_any(int * idPtr);

Error Reporting Functions

void grpc_perror(char * str);
char * grpc_error_string(int error_code);
int grpc_get_error(int sessionID);
int grpc_get_last_error();

Argument Stack Functions

ArgStack *newArgStack(int maxsize);
int pushArg(ArgStack *stack, void *arg);
void *popArg(ArgStack *stack);
int destructArgStack(ArgStack *stack);