summaryrefslogtreecommitdiffstats
path: root/common/collection
Commit message (Collapse)AuthorAgeFilesLines
* Fixing memory leaks in the unit test.Dmitri Pal2010-06-281-3/+9
|
* Fixing types in queue and stack interfacesDmitri Pal2010-06-286-18/+18
|
* Addressing initialization issues.Dmitri Pal2010-06-101-6/+6
| | | | | Fixing bug found by coverity. Tciket #519
* Convert collection to use sized values.Dmitri Pal2010-03-153-75/+83
| | | | | | | This patch replaces int with int32_t, unsigned with uint32_t, long with int64_t, unsigned long with uint64_t as values that collection can store and hold.
* Do not generate man pages for COLLECION for now.Dmitri Pal2010-03-121-2/+2
|
* Package libcollection documentation into libcollection-develStephen Gallagher2010-03-081-2/+0
|
* Documentation for collection interfaceDmitri Pal2010-03-089-880/+5171
| | | | | Passed through the interface and changed the comments to comply with the collection interface.
* Make collection_queue.h and collection_stack.h into public headersStephen Gallagher2010-02-101-3/+3
|
* Split off libcollection into a shared libraryStephen Gallagher2010-02-033-7/+13
|
* Remove private header requirements from collection_tools.hStephen Gallagher2010-02-031-1/+0
|
* Add license files for collectionStephen Gallagher2010-02-032-0/+839
|
* COLLECTION: Fixing queue collection and unit tests.Dmitri Pal2010-02-014-298/+478
| | | | | | | | | | This patch includes following functionality: 1) Fixed the invalid handling of the pointers in the collection when last element is removed from the collection. 2) Added unit test to verify the fix. 3) Modified the three unit test to be verbose on demand. 4) Switched the main of the unit test to use array of functions rather than big if statement.
* COLLECTION: Cleaning FIXME commentsDmitri Pal2009-12-103-20/+2
| | | | | | | I scanned through the code and made sure that the FIXME comments are either addressed or a corresponding ticket exists. I removed two comments that had "FIXME" in them. The tickets for those comments are #72 and #308.
* COLLECTION Create reference to the top level collectionDmitri Pal2009-12-103-21/+47
| | | | | | | | | | | | | This patch adds ability to create a reference to the top level collection. Previously one could get reference only to collection inside other collection. With this change it becomes possible to have two pointers to the same top level collection from multiple places. COLLECTION Adding comment. COLLECTION: Some tracing
* COLLECTION Enhancing hashing and iteration functionsDmitri Pal2009-10-054-8/+76
|
* COLLECTION Making iterations pinnableDmitri Pal2009-10-054-7/+220
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a feature that helps ELAPI. It makes lookup of the fields that need to be resolved for every event a bit faster. The idea is to be able to put a 'pin' into a specific place while iterating the collection and make this place a new "wrap around" place for the collection. This means that next time you iterate this collection you will start iterating from the next item and the item you got before pin will be last in your iteration cycle. Here is the example: Assume you have two collections that you need to compare and perform some action on collection 1 based on the presense of the item in collection 2. Collection1 = A, B, C, D, E. F Collection2 = A, C, F The usual approach is to try A from collection 1 against A, B, C from collection 2. "A" will be found right away. But to find "F" it has to be compared to "A" and "C" first. The fact that the collections are to some extent ordered can in some cases help to reduce the number of comparisons. If we found "C" in the list we can put a "pin" into the collection there causing the iterator to warp at this "pin" point. Since "D" and "E" are not in the second collection we will have to make same amount of comparisons in traditional or "pinned" case to not find them. To find "F" in pinned case there will be just one comparison. Traditional case = 1 + 3 + 2 + 3 + 3 + 3 = 15 Pinned case = 1 + 3 + 1 + 3 + 3 + 1 = 12 It is a 20% comparison reduction.
* COLLECTION Realigning collection codeDmitri Pal2009-10-054-330/+372
| | | | | | | | | | Created a new module to hold functions related to iterator and iterating collections. Planning to add new functions but the main collection module is already too big. So this patch just moves code around and fixes the build making foundation for the next patch.
* COLLECTION Adding item comparison and sortingDmitri Pal2009-10-057-5/+697
| | | | | | | | | | | Needed item comparison functions and realized that the easiest way to test them would be using sorting. Since there already been a ticket #73 to do that I added function to sort collection based on different properties of the item. COLLECTION Fixing issues with comparisons COLLECTION Adding do-while to macro
* Include m4 directories in tarballStephen Gallagher2009-09-151-1/+3
| | | | Necessary for RPM builds on RHEL5
* Add 'make tests' targetStephen Gallagher2009-09-111-0/+2
|
* COLLECTION Functions to deal with hashDmitri Pal2009-09-113-17/+71
| | | | | | | | | | | | | | | The hashing logic was internal to the collection item. But if someone wants to effectively deal with the items and compare the property to a string he should compare hashes first. But it was not possible without the provided functions. As a result some of the ELAPI modules had to take advantage of knowledge of the item structure. This is bad. So this patch lays foundation for refactoring of the ELAPI code that was using internals of the item directly (file_util.c mostly). Also patch adds a unit test that was required for testing new functionality and for ticket #83
* COLLECTION Improvements to copy functionsDmitri Pal2009-09-104-51/+191
| | | | | | | | | | | | | | | | | | | | This patch adds better options for copying collections in flat mode. It allows caller of the interface to control prefixing of the fields when one collection is appended to another. It also avoids creating prefixes when the collection is simply copied in flat mode. Also for ELAPI I realized that the most efficient way to deal with the "resolved" event (event where all templeted values are actually replaced with the real values) is to add a callback capability to a copy collection function so that the callback can be used to modify the data (resolve it) while the copy operation is in progress. This approach eliminates the need for separate set of lookups after the event is already copied.
* COLLECTION Copy collection flat with concatenated namesDmitri Pal2009-09-093-238/+337
| | | | | | | | | | | | | | | | | | | | | This patch addresses several issues: a) Adds capability to add or copy the collections in flattened mode but construct names of attributes in dotted notation. For example when you append collection "sub" with items "foo" and "bar" previously you could add them as "foo" and "bar" not you can flatten them and the names will be "sub.foo" and "sub.bar" this allows better processing of the attributes in the elapi message. b) Removes old implemntation of the copy collection function. c) Removes the col_set_timestamp, this functionality has been moved to ELAPI long ago. d) Updates collection unit test. e) Updates elapi to use new functionality f) Updates elapi unit test Have run under valgrind with no problems.
* configure cleanupsSumit Bose2009-09-031-1/+1
| | | | | - replaced mailing list address - let sssd base components read version from VERSION
* COMMON Fixes to return values, errno, leaksDmitri Pal2009-08-204-46/+57
| | | | | | | | | | | | | | | | | | | | Started looking at the ticket #107 related to traverse functions. Realized that the return values are not consistent. That ovelapped with the work that I wanted to do for ticket #103 - errno cleanup. So I (across collection, INI and ELAPI): * Made the return codes consistent (where found) * Removed errno where it is not needed While was testing used valgrind and found a nasty problem when the value was added to collection with overwriting duplicates the count was decreased improperly. Fixing collection.c to not decrease count made valgrind happy. While I was debugging this I also spotted several build warnings in trace statements when the " exp ? v1 : v2 " was used. Fixed those. In ini_config.c there was a trace stament that used variable after it was freed. Removed trace stament.
* ELAPI: Adding concept of targetsDmitri Pal2009-08-201-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | The targets are the destinations which caller wants to send the events to. The sinks are now on the second level under targets and constitute a so called fail over chain for a target. Such approach eliminates the need for complex routing function. The dispatcher keeps the list of targets in a collection. The element in the collection is the target context. Also gispatcher keeps the list of the sinks in a separate collection. Each target context has a list of the sinks associated with this target. But those are just pointers (at least for now) to the sinks form the list kept by dispatcher. I had to add some internal debug callbacks to be able to see that all the internals of the dispatcher are actually in order. See the conttent of config file for more comments. Also see information posted on SSSD wiki. https://fedorahosted.org/sssd/wiki/WikiPage/ELAPIInterface
* TRACE: Making sure trace is safe to output NULL stringsDmitri Pal2009-08-171-96/+0
| | | | | Patch adds checks for NULL to the trace macros. It also eliminates the unused trace.h in the collection directory.
* COLLECTION & INI CleanupDmitri Pal2009-07-203-53/+68
| | | | | | | | | | | | | | | | I started to cleanup the unit tests from the type cust around NULL and found several problems that I had to address: 1) The choice of the "." as a search separator turned out to be a poor choice. The problem was that the file name has "." and INI was relaying on files to be used as property names. I corrected that part in the INI but after discussion with Simo we decided to switch from "." to "!" as special symbol anyways. 2) Found that the property rename was not reinitializing the hash. Corrected. Added ticket to add unit tests around it (#83).
* COLLECTION Improving searchesDmitri Pal2009-07-162-9/+181
| | | | | | Addressing ticket #71. The searches were not taking advantage of the hashes, now they are.
* Run libcollection unit tests with 'make check'Stephen Gallagher2009-07-161-1/+3
|
* COLLECTION Add remove item functionsDmitri Pal2009-07-163-26/+140
| | | | | | | | | | | | | The remove functions extract and remove items, they act differently from the way the delete_property function works. The new functions allow deletion with the disposition while the delete_property only deletes specified property. The delete_property function is left as is since there are some use cases when it is more efficient to use it rather than new remove_item_xxx ones.
* ELAPI First part of the interfaceDmitri Pal2009-07-151-0/+2
| | | | | | | | | | | This is just a part of the interface, a beginning. Most likely some of the functions will be altered but it is a starting point. For example in future there will be a way to override some of the parts of the default template using the application configuration file. Removed obfuscation of the data types based on discussion with Simo.
* COLLECTION Fixed: iterator_up and insert_into_currentDmitri Pal2009-07-153-17/+83
| | | | | | | | | | | During a review of the previous patch the two issues were found: a) The col_iterator_up function was not implemented properly so it got reworked. New implementation changes the way error condition is handled. Comments were updated accordingly. b) There was a mising check for validity of the argument in the col_insert_into_current function. Check was added. c) Unit test modified to reflect the change in functionality.
* COLLECTION Adding flat traversal & copyDmitri Pal2009-07-155-99/+598
| | | | | | | | | | | | The collection is hearachical. The flattening of the collection was not implemented before both for traversal and copying. This patch introduces functionality to traverse or iterate through collection as flat set and also copy collection into another flattening it and automatically resolving conflicts. Also imptoved tracability and fixed memory leak in unbind iterator code.
* Build all SSSD components with warnings enabledStephen Gallagher2009-07-132-1/+12
| | | | | | Previously, only the SSSD server components were being built with compile-time warnings enabled. This patch will ensure that all components in common and sss_client are also built the same way.
* COLLECTION Removing static placeholder structure.Dmitri Pal2009-07-062-5/+20
| | | | | | There was a static global structure used in iteration and in traversing the collection. It has been removed and replaced with a better solution.
* Clean up warnings in common/Simo Sorce2009-07-0312-99/+101
| | | | Fix consts and function declarations
* Changing function names for collection API.Dmitri Pal2009-07-0212-2474/+2552
| | | | | | | Patch prepends prefix "col_" to all functions related to collection. This caused some formatiing issues so the alignement was addressed too.
* New deletion unit test.Dmitri Pal2009-07-022-2/+36
| | | | | | Adds a unit test for deletion and re-adding of the elements to collection. Small syntactical fix in "stack".
* Queue and stack APIs using collection.Dmitri Pal2009-07-028-2/+1081
| | | | | | | Patch adds two interfaces for stack and queue using collection as underlaying implementation. It also fixes a bug in the insterion code - the unsigned properties were created as long.
* FORMATTING - minor cleanup of the unit test.Dmitri Pal2009-07-021-254/+283
| | | | | | | | | | | | | This patch adds formatting changes to better follow the style guidelines in the collection unit test. No logical changes to the code. I was planning to do it for a while per Simo's comment when he accepted the core of the collection code but indicated that the unit test should be cleaned later. Later has come.
* Adding INSERT into collection functionality.Dmitri Pal2009-07-017-850/+2791
| | | | | | | | | Add was always insterting at the end of the collection. With this change one can control where the item is inserted and deal with the duplicates too. Also one now can extract items from collection using absolute and relative disposition. Using more advanced hashing function.
* Enable quiet build for automake >= 1.11Stephen Gallagher2009-06-021-0/+3
| | | | | | | | | If automake 1.11 or higher is available, use of the configure option '--enable-silent-rules' will suppress most build messages and replace them with lines such as CC sysdb.o This affects libtool as well.
* Clean up automake build to work on older versions of libtoolStephen Gallagher2009-05-262-9/+6
| | | | | | | | | | | | | | LT_INIT is supported only on Libtool >= 2.0, so I reverted it to using AC_PROG_LIBTOOL. Also reorganized how the common libraries were being built. Now they are treated as libtool convenience libraries instead of installable libraries (the --with-singlelib configure flag can still be used to generate a combined, installable DSO) I cleaned up the set of files being installed by automake, so the list of things we need to remove before packaging the RPM is now only the .la files associated with our own plugins.
* Fix RPM generation issues with sssdStephen Gallagher2009-05-191-2/+5
| | | | | | | | | | | Ensures that the common libraries build statically. Also ensures that the sssd.spec creates the SYSV init script with the appropriate permissions. Cleans up the useless rpmdist target that was obsolete. Adds the *.so.N.0.0 files to the RPM, as the .so and .so.N files were dangling symlinks.
* Use freeipa-devel@redhat.com for bug reportsStephen Gallagher2009-05-191-2/+2
|
* Enable parallel builds for the common librariesStephen Gallagher2009-05-192-5/+100
|
* Enable building a single libsssd_utils.so from commonStephen Gallagher2009-05-141-1/+7
|
* Enable modular build of common SSSD librariesStephen Gallagher2009-05-144-2/+23
| | | | | | Allow configuration and build of individual SSSD utility libraries from their own subdirectories. Building all utilities is still possible recursively from the common root.
* Fixing memory issues in ini and collectionDmitri Pal2009-04-141-6/+9
| | | | | | | The read_line() function used an internal buffer allocated on stack as temporary storage for a line read from file, then returned it. read_line() now gets a buffer from the caller. Fixed memory leaks in INI and Collection found by valgrind.