00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef _terimber_algorithm_h_
00029 #define _terimber_algorithm_h_
00030
00031 #include "base/primitives.h"
00032
00033 BEGIN_TERIMBER_NAMESPACE
00034 #pragma pack(4)
00035
00038 namespace algorithm
00039 {
00041 template< class Cont, class Pred >
00042 inline
00043 void
00044 find_if( Cont& cont,
00045 Pred& pr,
00046 const mutex& mtx
00047 );
00049 template< class Cont, class Pred >
00050 inline
00051 void
00052 for_each( Cont& cont,
00053 Pred& pr,
00054 const mutex& mtx
00055 );
00057 template< class Cont, class Pred >
00058 inline
00059 void
00060 remove_if( Cont& cont,
00061 Pred& pr,
00062 const mutex& mtx
00063 );
00065 template< class Al, class Obj, class Cont >
00066 inline
00067 void
00068 push_back( Al& al,
00069 Cont& cont,
00070 Obj& obj,
00071 const mutex& mtx
00072 );
00074 template< class Al, class Cont, class Pred, class Obj >
00075 inline
00076 bool
00077 push_back_if( Al& al,
00078 Cont& cont,
00079 Pred& pr,
00080 Obj& obj,
00081 const mutex& mtx
00082 );
00084 template< class Obj, class Cont >
00085 inline
00086 void
00087 push_back( Cont& cont,
00088 Obj& obj,
00089 const mutex& mtx
00090 );
00092 template< class Cont, class Pred, class Obj >
00093 inline
00094 bool
00095 push_back_if( Cont& cont,
00096 Pred& pr,
00097 Obj& obj,
00098 const mutex& mtx
00099 );
00101 template< class Obj, class Cont >
00102 inline
00103 void
00104 remove( Cont& cont,
00105 Obj& obj,
00106 const mutex& mtx
00107 );
00109 template< class Obj >
00110 inline
00111 void
00112 swap( Obj& first,
00113 Obj& second
00114 );
00115 }
00116
00117 #pragma pack()
00118 END_TERIMBER_NAMESPACE
00119
00120 #endif // _terimber_algorithm_h_
00121