Skip to content
Snippets Groups Projects
  • George Joseph's avatar
    7e77815a
    sorcery.c: Sorcery enhancements for wizard management · 7e77815a
    George Joseph authored
    Added ability to specifiy a wizard is read-only when applying
    it to a specific object type.  This allows you to specify
    create, update and delete callbacks for the wizard but limit
    which object types can use them.
    
    Added the ability to allow an object type to have multiple
    wizards of the same type.  This is indicated when a wizard
    is added to a specific object type.
    
    Added 3 new sorcery wizard functions:
    
    * ast_sorcery_object_type_insert_wizard which does the same thing
      as the existing ast_sorcery_insert_wizard_mapping function but
      accepts the new read-only and allot-duplicates flags and also
      returns the ast_sorcery_wizard structure used and it's internal
      data structure. This allows immediate use of the wizard's
      callbacks without having to register a "wizard mapped" observer.
    
    * ast_sorcery_object_type_apply_wizard which does the same
      thing as the existing ast_sorcery_apply_wizard_mapping function
      but has the added capabilities of
      ast_sorcery_object_type_insert_wizard.
    
    * ast_sorcery_object_type_remove_wizard which removes a wizard
      matching both its name and its original argument string.
    
    * The original logic in __ast_sorcery_insert_wizard_mapping was moved
      to __ast_sorcery_object_type_insert_wizard and enhanced for the
      new capabilities, then __ast_sorcery_insert_wizard_mapping was
      refactored to just call __ast_sorcery_insert_wizard_mapping.
    
    * Added a unit test to test_sorcery.c to test the read-only
      capability.
    
    Change-Id: I40f35840252e4313d99e11dbd80e270a3aa10605
    7e77815a
    History
    sorcery.c: Sorcery enhancements for wizard management
    George Joseph authored
    Added ability to specifiy a wizard is read-only when applying
    it to a specific object type.  This allows you to specify
    create, update and delete callbacks for the wizard but limit
    which object types can use them.
    
    Added the ability to allow an object type to have multiple
    wizards of the same type.  This is indicated when a wizard
    is added to a specific object type.
    
    Added 3 new sorcery wizard functions:
    
    * ast_sorcery_object_type_insert_wizard which does the same thing
      as the existing ast_sorcery_insert_wizard_mapping function but
      accepts the new read-only and allot-duplicates flags and also
      returns the ast_sorcery_wizard structure used and it's internal
      data structure. This allows immediate use of the wizard's
      callbacks without having to register a "wizard mapped" observer.
    
    * ast_sorcery_object_type_apply_wizard which does the same
      thing as the existing ast_sorcery_apply_wizard_mapping function
      but has the added capabilities of
      ast_sorcery_object_type_insert_wizard.
    
    * ast_sorcery_object_type_remove_wizard which removes a wizard
      matching both its name and its original argument string.
    
    * The original logic in __ast_sorcery_insert_wizard_mapping was moved
      to __ast_sorcery_object_type_insert_wizard and enhanced for the
      new capabilities, then __ast_sorcery_insert_wizard_mapping was
      refactored to just call __ast_sorcery_insert_wizard_mapping.
    
    * Added a unit test to test_sorcery.c to test the read-only
      capability.
    
    Change-Id: I40f35840252e4313d99e11dbd80e270a3aa10605