Main Page | Data Structures | Directories | File List | Data Fields | Globals

mrss_free.c File Reference

#include "mrss.h"
#include "mrss_internal.h"

Include dependency graph for mrss_free.c:

Go to the source code of this file.

Functions

static void __mrss_free_channel (mrss_t *mrss)
static void __mrss_free_category (mrss_category_t *category)
static void __mrss_free_hour (mrss_hour_t *hour)
static void __mrss_free_day (mrss_day_t *day)
static void __mrss_free_item (mrss_item_t *item)
mrss_error_t mrss_free (mrss_generic_t element)


Function Documentation

static void __mrss_free_category mrss_category_t category  )  [static]
 

Definition at line 162 of file mrss_free.c.

References mrss_category_t::category, and mrss_category_t::domain.

Referenced by __mrss_free_channel(), __mrss_free_item(), and mrss_free().

00163 {
00164   if (!category)
00165     return;
00166 
00167   if (category->category)
00168     free (category->category);
00169 
00170   if (category->domain)
00171     free (category->domain);
00172 
00173   free (category);
00174 }

static void __mrss_free_channel mrss_t mrss  )  [static]
 

Definition at line 35 of file mrss_free.c.

References __mrss_free_category(), __mrss_free_day(), __mrss_free_hour(), __mrss_free_item(), mrss_t::category, mrss_t::cloud, mrss_t::cloud_domain, mrss_t::cloud_path, mrss_t::cloud_protocol, mrss_t::cloud_registerProcedure, mrss_t::copyright, mrss_t::description, mrss_t::docs, mrss_t::file, mrss_t::generator, mrss_t::image_description, mrss_t::image_link, mrss_t::image_title, mrss_t::image_url, mrss_t::item, mrss_t::language, mrss_t::lastBuildDate, mrss_t::link, mrss_t::managingeditor, mrss_item_t::next, mrss_day_t::next, mrss_hour_t::next, mrss_category_t::next, mrss_t::pubDate, mrss_t::rating, mrss_t::skipDays, mrss_t::skipHours, mrss_t::textinput_description, mrss_t::textinput_link, mrss_t::textinput_name, mrss_t::textinput_title, mrss_t::title, and mrss_t::webMaster.

Referenced by mrss_free().

00036 {
00037   mrss_hour_t *hour;
00038   mrss_day_t *day;
00039   mrss_category_t *category;
00040   mrss_item_t *item;
00041   void *old;
00042 
00043   if (!mrss)
00044     return;
00045 
00046   if (mrss->file)
00047     free (mrss->file);
00048 
00049   if (mrss->title)
00050     free (mrss->title);
00051 
00052   if (mrss->description)
00053     free (mrss->description);
00054 
00055   if (mrss->link)
00056     free (mrss->link);
00057 
00058   if (mrss->language)
00059     free (mrss->language);
00060 
00061   if (mrss->rating)
00062     free (mrss->rating);
00063 
00064   if (mrss->copyright)
00065     free (mrss->copyright);
00066 
00067   if (mrss->pubDate)
00068     free (mrss->pubDate);
00069 
00070   if (mrss->lastBuildDate)
00071     free (mrss->lastBuildDate);
00072 
00073   if (mrss->docs)
00074     free (mrss->docs);
00075 
00076   if (mrss->managingeditor)
00077     free (mrss->managingeditor);
00078 
00079   if (mrss->webMaster)
00080     free (mrss->webMaster);
00081 
00082   if (mrss->image_title)
00083     free (mrss->image_title);
00084 
00085   if (mrss->image_url)
00086     free (mrss->image_url);
00087 
00088   if (mrss->image_link)
00089     free (mrss->image_link);
00090 
00091   if (mrss->image_description)
00092     free (mrss->image_description);
00093 
00094   if (mrss->textinput_title)
00095     free (mrss->textinput_title);
00096 
00097   if (mrss->textinput_description)
00098     free (mrss->textinput_description);
00099 
00100   if (mrss->textinput_name)
00101     free (mrss->textinput_name);
00102 
00103   if (mrss->textinput_link)
00104     free (mrss->textinput_link);
00105 
00106   if (mrss->generator)
00107     free (mrss->generator);
00108 
00109   if (mrss->cloud)
00110     free (mrss->cloud);
00111 
00112   if (mrss->cloud_domain)
00113     free (mrss->cloud_domain);
00114 
00115   if (mrss->cloud_path)
00116     free (mrss->cloud_path);
00117 
00118   if (mrss->cloud_registerProcedure)
00119     free (mrss->cloud_registerProcedure);
00120 
00121   if (mrss->cloud_protocol)
00122     free (mrss->cloud_protocol);
00123 
00124   category = mrss->category;
00125   while (category)
00126     {
00127       old = category;
00128       category = category->next;
00129 
00130       __mrss_free_category ((mrss_category_t *) old);
00131     }
00132 
00133   hour = mrss->skipHours;
00134   while (hour)
00135     {
00136       old = hour;
00137       hour = hour->next;
00138 
00139       __mrss_free_hour ((mrss_hour_t *) old);
00140     }
00141 
00142   day = mrss->skipDays;
00143   while (day)
00144     {
00145       old = day;
00146       day = day->next;
00147 
00148       __mrss_free_day ((mrss_day_t *) old);
00149     }
00150 
00151   item = mrss->item;
00152   while (item)
00153     {
00154       old = item;
00155       item = item->next;
00156 
00157       __mrss_free_item ((mrss_item_t *) old);
00158     }
00159 }

Here is the call graph for this function:

static void __mrss_free_day mrss_day_t day  )  [static]
 

Definition at line 189 of file mrss_free.c.

References mrss_day_t::day.

Referenced by __mrss_free_channel(), and mrss_free().

00190 {
00191   if (!day)
00192     return;
00193 
00194   if (day->day)
00195     free (day->day);
00196 
00197   free (day);
00198 }

static void __mrss_free_hour mrss_hour_t hour  )  [static]
 

Definition at line 177 of file mrss_free.c.

References mrss_hour_t::hour.

Referenced by __mrss_free_channel(), and mrss_free().

00178 {
00179   if (!hour)
00180     return;
00181 
00182   if (hour->hour)
00183     free (hour->hour);
00184 
00185   free (hour);
00186 }

static void __mrss_free_item mrss_item_t item  )  [static]
 

Definition at line 201 of file mrss_free.c.

References __mrss_free_category(), mrss_item_t::author, mrss_item_t::category, mrss_item_t::comments, mrss_item_t::description, mrss_item_t::enclosure, mrss_item_t::enclosure_type, mrss_item_t::enclosure_url, mrss_item_t::guid, mrss_item_t::link, mrss_category_t::next, mrss_item_t::pubDate, mrss_item_t::source, mrss_item_t::source_url, and mrss_item_t::title.

Referenced by __mrss_free_channel(), and mrss_free().

00202 {
00203   mrss_category_t *category, *old;
00204 
00205   if (!item)
00206     return;
00207 
00208   if (item->title)
00209     free (item->title);
00210 
00211   if (item->link)
00212     free (item->link);
00213 
00214   if (item->description)
00215     free (item->description);
00216 
00217   if (item->author)
00218     free (item->author);
00219 
00220   if (item->comments)
00221     free (item->comments);
00222 
00223   if (item->pubDate)
00224     free (item->pubDate);
00225 
00226   if (item->guid)
00227     free (item->guid);
00228 
00229   if (item->source)
00230     free (item->source);
00231 
00232   if (item->source_url)
00233     free (item->source_url);
00234 
00235   if (item->enclosure)
00236     free (item->enclosure);
00237 
00238   if (item->enclosure_url)
00239     free (item->enclosure_url);
00240 
00241   if (item->enclosure_type)
00242     free (item->enclosure_type);
00243 
00244   category = item->category;
00245   while (category)
00246     {
00247       old = category;
00248       category = category->next;
00249 
00250       __mrss_free_category (old);
00251     }
00252 
00253   free (item);
00254 }

Here is the call graph for this function:

mrss_error_t mrss_free mrss_generic_t  element  ) 
 

This function frees any type of data struct of libmrss.

 mrss_t *t=....;
 mrss_item_t *item=...;

 mrss_free(t);
 mrss_free(item);

Parameters:
element the data struct
Returns:
the error code

Definition at line 259 of file mrss_free.c.

References __mrss_free_category(), __mrss_free_channel(), __mrss_free_day(), __mrss_free_hour(), __mrss_free_item(), mrss_t::element, MRSS_ELEMENT_CATEGORY, MRSS_ELEMENT_CHANNEL, MRSS_ELEMENT_ITEM, MRSS_ELEMENT_SKIPDAYS, MRSS_ELEMENT_SKIPHOURS, MRSS_ERR_DATA, and MRSS_OK.

Referenced by __mrss_parser_rss().

00260 {
00261   mrss_t *tmp;
00262 
00263   tmp = (mrss_t *) element;
00264 
00265   switch (tmp->element)
00266     {
00267     case MRSS_ELEMENT_CHANNEL:
00268       __mrss_free_channel ((mrss_t *) element);
00269       break;
00270 
00271     case MRSS_ELEMENT_ITEM:
00272       __mrss_free_item ((mrss_item_t *) element);
00273       break;
00274 
00275     case MRSS_ELEMENT_SKIPHOURS:
00276       __mrss_free_hour ((mrss_hour_t *) element);
00277       break;
00278 
00279     case MRSS_ELEMENT_SKIPDAYS:
00280       __mrss_free_day ((mrss_day_t *) element);
00281       break;
00282 
00283     case MRSS_ELEMENT_CATEGORY:
00284       __mrss_free_category ((mrss_category_t *) element);
00285       break;
00286 
00287     default:
00288       return MRSS_ERR_DATA;
00289     }
00290 
00291   return MRSS_OK;
00292 }

Here is the call graph for this function:


Generated on Thu Jul 28 12:15:06 2005 for libmrss by  doxygen 1.4.3-20050530