Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members  

newssvcdec_impl.h

Go to the documentation of this file.
00001 #ifndef __NEWS_SVC_DEC_IMPL__
00002 #define __NEWS_SVC_DEC_IMPL__
00003 
00014 #include "newsobject.h"
00015 #include "newssvcdec.h"
00016 #include <map>
00017 #include <list>
00018 #ifdef __cplusplus
00019 extern "C" {
00020 #endif
00021 
00022 #define NEWS_SVC_MAGIC_ID 0x786245
00023 
00024 typedef std::map<unsigned long, NewsObject*> NEWS_SVC_DEC_IMPL_map_t;
00025 typedef std::list<unsigned short> NEWS_SVC_DEC_IMPL_watch_list_t;
00026 typedef std::list<unsigned short> NEWS_SVC_DEC_IMPL_keep_in_cache_list_t;
00027 
00028 typedef struct
00029 {
00030   unsigned long d_magicId;
00031   NEWS_SVC_DEC_cb *d_update;
00032   void      *d_arg;
00033   unsigned long d_extended_header_len;
00034   unsigned long d_max_memory;
00035   unsigned long d_max_objects;
00036   unsigned long d_object_count;
00037 
00038   NEWS_SVC_DEC_IMPL_map_t d_news_map;
00039 
00040   NEWS_SVC_DEC_IMPL_watch_list_t d_watch_list;
00041   NEWS_SVC_DEC_IMPL_keep_in_cache_list_t d_keep_in_cache_list;
00042 } NEWS_SVC_DEC_IMPL_t;
00043 
00044 int NEWS_SVC_DEC_IMPL_garbage_collection(NEWS_SVC_DEC_IMPL_t *dec,
00045   unsigned long objs_to_free);
00046 
00047 #ifdef __cplusplus
00048 }
00049 #endif
00050 
00051 /* internal functions */
00052 void NEWS_SVC_DEC_IMPL_printObjList(NEWS_SVC_DEC_IMPL_t *dec);
00053 
00054 class FindMinFunctor
00055 {
00056 public:
00057   FindMinFunctor(NEWS_SVC_DEC_IMPL_t *dec);
00058   FindMinFunctor(const FindMinFunctor &rhs);
00059   ~FindMinFunctor();
00060 
00061   bool operator()(
00062     std::pair<const unsigned long, NewsObject*> &rhs,
00063     std::pair<const unsigned long, NewsObject*> &lhs);
00064 
00065 private:
00066   NEWS_SVC_DEC_IMPL_t *d_dec;
00067 };
00068 
00069 
00070 #endif /* __NEWS_SVC_DEC_IMPL */

Generated on Fri Feb 27 12:16:51 2004 for journaline_demo by doxygen1.2.18