22 #define PROTOTYPE_SUCCESS (0) 23 #define PROTOTYPE_FAILED (-1) 36 void * (*clone) (
void * base,
size_t base_length);
44 void (*
free) (
void * cloned_data);
PrototypeFactory methods interface definition, to set prototype_register.
void prototype_manager_free(PrototypeManager this)
free class handle
void(* free_base)(void *base_data)
free api of a base data, please free deep data
PrototypeManager class member definition, defined in prototype_manager.c.
struct prototype_factory_t * PrototypeFactory
PrototypeFactory class definition, member is defined in prototype_factory_t.
void * prototype_clone(PrototypeFactory this)
Clone base pointer by using PrototypeFactory class.
struct prototype_manager_t * PrototypeManager
PrototypeManager class definition, member is defined in prototype_manager_t.
void(* free)(void *cloned_data)
free api of a clone data, to do deep copy
void prototype_free(PrototypeFactory this, void *cloned_data)
Free cloned pointer.
PrototypeManager prototype_manager_new(int is_threadsafe)
Create PrototypeManager class.
PrototypeFactory prototype_register(PrototypeManager this, void *base, size_t base_length, prototype_factory_method_t *factory_method)
Register PrototypeFactory class.
void prototype_unregister(PrototypeManager this, PrototypeFactory factory)
Unregister PrototypeFactory class.
PrototypeFactory methods interface definition, to set prototype_register.