1: 2: 3: /************* 4: * * 5: * SENTINEL * 6: * * 7: *************/ 8: 9: 10: #ifndef WWWI_MIND_RRTLIST_H 11: #define WWWI_MIND_RRTLIST_H 12: 13: 14: /********************** 15: * * 16: * COMPILER INCLUDES * 17: * * 18: **********************/ 19: 20: 21: #include <list> 22: 23: 24: /********************* 25: * * 26: * PROJECT INCLUDES * 27: * * 28: *********************/ 29: 30: 31: #include "question.h" 32: #include "rrt.h" 33: 34: 35: using std::list; 36: 37: 38: /***************** 39: * * 40: * CLASS RRLIST * 41: * * 42: *****************/ 43: 44: 45: template <class H> class RRTList : public list< H > { 46: public: 47: unsigned Expire(time_t i_tmNow, time_t &io_tmrNextExpire); 48: typename RRTList<H>::iterator GetRandomRR(void); 49: template <class XRP> bool HasResourceMatch(const XRP ci_xrp) const; 50: bool HasTypeClass(RRType i_ty, RRClass i_cl) const; 51: bool HasQuestionMatch(QuestionConstPtr ci_qnp) const; 52: void Walk(ostream &io_smr, int i_iDepth) const; 53: ~RRTList(void); 54: 55: }; 56: 57: 58: /************************ 59: * * 60: * FUNCTION PROTOTYPES * 61: * * 62: ************************/ 63: 64: 65: template <class T> ostream& operator<<(ostream& io_smr, const RRTList<T> &i_xrr); 66: template <class T> ostream& operator<<(ostream& io_smr, const RRTList<T> *i_xrp); 67: 68: 69: /********************* 70: * * 71: * INLINE FUNCTIONS * 72: * * 73: *********************/ 74: 75: 76: #include "rrtlist.i" 77: 78: 79: /************ 80: * * 81: * THE END * 82: * * 83: ************/ 84: 85: 86: #endif 87: 88: 89: