Add modified callback to resource providers (for caching purposes).

PiperOrigin-RevId: 561327623
Change-Id: Id6683f6d6d32ee91019aba46599c28cbffe29df6
This commit is contained in:
Kyle Bayes
2023-08-30 06:52:36 -07:00
committed by Copybara-Service
parent 273c23038c
commit 16ee0dfde5
6 changed files with 68 additions and 3 deletions
+6
View File
@@ -43,6 +43,11 @@ typedef void (*mjfCloseResource)(mjResource* resource);
// sets dir to directory string with ndir being size of directory string
typedef void (*mjfGetResourceDir)(mjResource* resource, const char** dir, int* ndir);
// callback for checking if a resource was modified since last read
// returns > 0 if resource was modified since last open, 0 if resource was not
// modified, and < 0 if inconclusive
typedef int (*mjfResourceModified)(const mjResource* resource);
// struct describing a single resource provider
struct mjpResourceProvider {
const char* prefix; // prefix for match against a resource name
@@ -50,6 +55,7 @@ struct mjpResourceProvider {
mjfReadResource read; // reading callback
mjfCloseResource close; // closing callback
mjfGetResourceDir getdir; // get directory callback (optional)
mjfResourceModified modified; // resource modified callback (optional)
void* data; // opaque data pointer (resource invariant)
};
typedef struct mjpResourceProvider mjpResourceProvider;