Skip to content
Snippets Groups Projects
  • George Joseph's avatar
    6d594129
    vector: Traversal, retrieval, insert and locking enhancements · 6d594129
    George Joseph authored
    Renamed AST_VECTOR_INSERT to AST_VECTOR_REPLACE because it really
    does replace not insert.  The few users of AST_VECTOR_INSERT were
    refactored.  Because these are macros, there should be no ABI
    compatibility issues.
    
    Added AST_VECTOR_INSERT_AT that actually inserts an element into the
    vector at a specific index pushing existing elements to the right.
    
    Added AST_VECTOR_GET_CMP that can retrieve from the vector based
    on a user-provided compare function.
    
    Added AST_VECTOR_CALLBACK function that will execute a function
    for each element in the vector.  Similar to ao2_callback and
    ao2_callback_data functions although the vector callback can take
    a variable number of arguments.  This should allow easy migration
    to a vector where a container might be too heavy.
    
    Added read/write locked vector and lock manipulation macros.
    
    Added unit tests.
    
    ASTERISK-25045 #close
    
    Change-Id: I2e07ecc709d2f5f91bcab8904e5e9340609b00e0
    6d594129
    History
    vector: Traversal, retrieval, insert and locking enhancements
    George Joseph authored
    Renamed AST_VECTOR_INSERT to AST_VECTOR_REPLACE because it really
    does replace not insert.  The few users of AST_VECTOR_INSERT were
    refactored.  Because these are macros, there should be no ABI
    compatibility issues.
    
    Added AST_VECTOR_INSERT_AT that actually inserts an element into the
    vector at a specific index pushing existing elements to the right.
    
    Added AST_VECTOR_GET_CMP that can retrieve from the vector based
    on a user-provided compare function.
    
    Added AST_VECTOR_CALLBACK function that will execute a function
    for each element in the vector.  Similar to ao2_callback and
    ao2_callback_data functions although the vector callback can take
    a variable number of arguments.  This should allow easy migration
    to a vector where a container might be too heavy.
    
    Added read/write locked vector and lock manipulation macros.
    
    Added unit tests.
    
    ASTERISK-25045 #close
    
    Change-Id: I2e07ecc709d2f5f91bcab8904e5e9340609b00e0