Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions .claude/settings.local.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"permissions": {
"allow": [
"Bash(rustc --version:*)",
"Bash(cargo:*)",
"Bash(protoc:*)",
"Bash(cmd.exe /c \"rustc --version\")",
"Bash(cmd.exe /c \"cargo --version\")",
"Bash(python -m build:*)",
"Bash(cmd.exe /c \"cd /d c:\\\\dev\\\\Customer\\\\openiap\\\\rustapi\\\\python && python -m build\")",
"Bash(cmd.exe /c \"cd /d c:\\\\dev\\\\Customer\\\\openiap\\\\rustapi\\\\python && python -m build 2>&1\")"
]
}
}
165 changes: 165 additions & 0 deletions crates/clib/clib_openiap.h
Original file line number Diff line number Diff line change
Expand Up @@ -629,6 +629,112 @@ typedef struct InvokeOpenRPARequestWrapper {
int32_t request_id;
} InvokeOpenRPARequestWrapper;

/**
* AceWrapper is a C-compatible wrapper for Access Control Entry (Ace)
*/
typedef struct AceWrapper {
const char *id;
bool deny;
int32_t rights;
} AceWrapper;

/**
* WorkItemQueueWrapper is a C-compatible wrapper for WorkItemQueue
*/
typedef struct WorkItemQueueWrapper {
const char *workflowid;
const char *robotqueue;
const char *amqpqueue;
const char *projectid;
const char *usersrole;
int32_t maxretries;
int32_t retrydelay;
int32_t initialdelay;
const char *success_wiqid;
const char *failed_wiqid;
const char *success_wiq;
const char *failed_wiq;
const char *id;
const char *name;
const char *packageid;
const struct AceWrapper *const *acl;
int32_t acl_len;
int32_t request_id;
} WorkItemQueueWrapper;

/**
* AddWorkItemQueueResponseWrapper is a C-compatible wrapper for AddWorkItemQueueResponse
*/
typedef struct AddWorkItemQueueResponseWrapper {
bool success;
const char *error;
const struct WorkItemQueueWrapper *workitemqueue;
int32_t request_id;
} AddWorkItemQueueResponseWrapper;

/**
* AddWorkItemQueueRequestWrapper is a C-compatible wrapper for AddWorkItemQueueRequest
*/
typedef struct AddWorkItemQueueRequestWrapper {
const struct WorkItemQueueWrapper *workitemqueue;
bool skiprole;
int32_t request_id;
} AddWorkItemQueueRequestWrapper;

/**
* Callback type for add_workitem_queue_async
*/
typedef void (*AddWorkItemQueueCallback)(struct AddWorkItemQueueResponseWrapper *wrapper);

/**
* UpdateWorkItemQueueResponseWrapper is a C-compatible wrapper for UpdateWorkItemQueueResponse
*/
typedef struct UpdateWorkItemQueueResponseWrapper {
bool success;
const char *error;
const struct WorkItemQueueWrapper *workitemqueue;
int32_t request_id;
} UpdateWorkItemQueueResponseWrapper;

/**
* UpdateWorkItemQueueRequestWrapper is a C-compatible wrapper for UpdateWorkItemQueueRequest
*/
typedef struct UpdateWorkItemQueueRequestWrapper {
const struct WorkItemQueueWrapper *workitemqueue;
bool skiprole;
bool purge;
int32_t request_id;
} UpdateWorkItemQueueRequestWrapper;

/**
* Callback type for update_workitem_queue_async
*/
typedef void (*UpdateWorkItemQueueCallback)(struct UpdateWorkItemQueueResponseWrapper *wrapper);

/**
* DeleteWorkItemQueueResponseWrapper is a C-compatible wrapper for DeleteWorkItemQueueResponse
*/
typedef struct DeleteWorkItemQueueResponseWrapper {
bool success;
const char *error;
int32_t request_id;
} DeleteWorkItemQueueResponseWrapper;

/**
* DeleteWorkItemQueueRequestWrapper is a C-compatible wrapper for DeleteWorkItemQueueRequest
*/
typedef struct DeleteWorkItemQueueRequestWrapper {
const char *wiq;
const char *wiqid;
bool purge;
int32_t request_id;
} DeleteWorkItemQueueRequestWrapper;

/**
* Callback type for delete_workitem_queue_async
*/
typedef void (*DeleteWorkItemQueueCallback)(struct DeleteWorkItemQueueResponseWrapper *wrapper);

void error(const char *message);

void info(const char *message);
Expand Down Expand Up @@ -1009,3 +1115,62 @@ struct InvokeOpenRPAResponseWrapper *invoke_openrpa(struct ClientWrapper *client
int32_t timeout);

void free_invoke_openrpa_response(struct InvokeOpenRPAResponseWrapper *response);

/**
* Synchronous add_workitem_queue FFI function
*/
struct AddWorkItemQueueResponseWrapper *add_workitem_queue(struct ClientWrapper *client,
struct AddWorkItemQueueRequestWrapper *options);

/**
* Asynchronous add_workitem_queue FFI function
*/
void add_workitem_queue_async(struct ClientWrapper *client,
struct AddWorkItemQueueRequestWrapper *options,
AddWorkItemQueueCallback callback);

/**
* Free AddWorkItemQueueResponseWrapper
*/
void free_add_workitem_queue_response(struct AddWorkItemQueueResponseWrapper *response);

/**
* Free WorkItemQueueWrapper
*/
void free_workitem_queue_wrapper(struct WorkItemQueueWrapper *wrapper);

/**
* Synchronous update_workitem_queue FFI function
*/
struct UpdateWorkItemQueueResponseWrapper *update_workitem_queue(struct ClientWrapper *client,
struct UpdateWorkItemQueueRequestWrapper *options);

/**
* Asynchronous update_workitem_queue FFI function
*/
void update_workitem_queue_async(struct ClientWrapper *client,
struct UpdateWorkItemQueueRequestWrapper *options,
UpdateWorkItemQueueCallback callback);

/**
* Free UpdateWorkItemQueueResponseWrapper
*/
void free_update_workitem_queue_response(struct UpdateWorkItemQueueResponseWrapper *response);

/**
* Synchronous delete_workitem_queue FFI function
*/
struct DeleteWorkItemQueueResponseWrapper *delete_workitem_queue(struct ClientWrapper *client,
struct DeleteWorkItemQueueRequestWrapper *options);

/**
* Asynchronous delete_workitem_queue FFI function
*/
void delete_workitem_queue_async(struct ClientWrapper *client,
struct DeleteWorkItemQueueRequestWrapper *options,
DeleteWorkItemQueueCallback callback);

/**
* Free DeleteWorkItemQueueResponseWrapper
*/
void free_delete_workitem_queue_response(struct DeleteWorkItemQueueResponseWrapper *response);
Loading