Callback structure for container operations in mulle-objc.
struct MulleObjCContainerCallback
{
void (*retain)(void *);
void (*release)(void *);
void (*describe)(void *, struct mulle_buffer *);
};
MulleObjCContainerCallbackRetain
- Retain callbackMulleObjCContainerCallbackRelease
- Release callback
MulleObjCContainerCallbackDescribe
- Description callback
struct MulleObjCContainerCallback callbacks = {
.retain = MulleObjCContainerCallbackRetain,
.release = MulleObjCContainerCallbackRelease,
.describe = MulleObjCContainerCallbackDescribe
};
// Use in container initialization
container->callbacks = callbacks;
-
Memory Management
- Retain/release pairs must balance
- Handle nil values properly
- Clean up resources
-
Thread Safety
- Callbacks must be thread-safe
- Consider synchronization
- Handle concurrent access
-
Best Practices
- Initialize all fields
- Handle errors gracefully
- Document requirements
- Test thoroughly