Changeset 16990


Ignore:
Timestamp:
07/06/12 03:59:43 (11 years ago)
Author:
nit
Message:

[titan] add new sortmethode for timer

File:
1 edited

Legend:

Unmodified
Added
Removed
  • titan/titan/rectimer.h

    r16989 r16990  
    1111                node = node->next;
    1212        }
     13}
     14
     15void sortrectimer()
     16{
     17        struct rectimer *nodea = NULL, *nodeb = NULL, *nodec = NULL, *noded = NULL;
     18        struct rectimer *nodetmp = NULL, *node = rectimer;
     19
     20        if(node != NULL)
     21        {
     22                while (noded != node->next)
     23                {
     24                        nodec = node;
     25                        nodea = node;
     26                        nodeb = nodea->next;
     27
     28                        while (nodea != noded)
     29                        {
     30                                if (nodea->begin >= nodeb->begin)
     31                                {
     32                                        if (nodea == node)
     33                                        {
     34                                                nodetmp = nodeb->next;
     35                                                nodeb->next = nodea;
     36                                                nodea->next = nodetmp;
     37                                                node = nodeb;
     38                                                nodec = nodeb;
     39                                        }
     40                                        else
     41                                        {
     42                                                nodetmp = nodeb->next;
     43                                                nodeb->next = nodea;
     44                                                nodea->next = nodetmp;
     45                                                nodec->next = nodeb;
     46                                                nodec = nodeb;
     47                                        }
     48                                }
     49                                else
     50                                {
     51                                        nodec = nodea;
     52                                        nodea = nodea->next;
     53                                }
     54                                nodeb = nodea->next;
     55                                if (nodeb == noded)
     56                                        noded = nodea;
     57                        }
     58                }
     59        }
     60
     61        struct rectimer* prev = NULL;
     62        nodetmp = node;
     63        while(nodetmp != NULL)
     64        {
     65                nodetmp->prev = prev;
     66                prev = nodetmp;
     67
     68                nodetmp = nodetmp->next;
     69        }
     70
     71        rectimer = node;
    1372}
    1473
     
    71130
    72131        if(node->repeate == 0) return;
     132        status.writerectimer = 1;
    73133
    74134        //get rectimer start day
     
    489549
    490550        if(flag == 0) m_lock(&status.rectimermutex, 1);
    491   struct rectimer *node = rectimer, *prev = rectimer;
     551        struct rectimer *node = rectimer, *prev = rectimer;
    492552
    493553        while(node != NULL)
     
    602662
    603663        if(flag == 0) m_lock(&status.rectimermutex, 1);
     664        sortrectimer();
    604665  node = rectimer;
    605666
     
    12641325                        }
    12651326
     1327                        tmpstr = ostrcat(tmpstr, "\n", 1, 0);
    12661328                        if(rectimernode->name != NULL)
    12671329                        {
    1268                                 tmpstr = ostrcat(tmpstr, "\n", 1, 0);
    12691330                                if(rectimernode->name == NULL || strlen(rectimernode->name) == 0)
    12701331                                        tmpstr = ostrcat(tmpstr, "---", 1, 0);
     
    12801341                        }
    12811342
     1343                        tmpstr = ostrcat(tmpstr, "\n", 1, 0);
    12821344                        if(rectimernode->status == 0)
    1283                         {
    1284                                 tmpstr = ostrcat(tmpstr, "\n", 1, 0);
    12851345                                tmpstr = ostrcat(tmpstr, _("waiting"), 1, 0);
    1286                         }
    12871346                        else if(rectimernode->status == 1)
    1288                         {
    1289                                 tmpstr = ostrcat(tmpstr, "\n", 1, 0);
    12901347                                tmpstr = ostrcat(tmpstr, _("running"), 1, 0);
    1291                         }
    12921348                        else if(rectimernode->status == 2)
    1293                         {
    1294                                 tmpstr = ostrcat(tmpstr, "\n", 1, 0);
    12951349                                tmpstr = ostrcat(tmpstr, _("success"), 1, 0);
    1296                         }
    12971350                        else if(rectimernode->status == 3)
    1298                         {
    1299                                 tmpstr = ostrcat(tmpstr, "\n", 1, 0);
    13001351                                tmpstr = ostrcat(tmpstr, _("error"), 1, 0);
    1301                         }
    13021352
    13031353                        if(flag == 1 && rectimernode->errstr != NULL && strlen(rectimernode->errstr) != 0)
Note: See TracChangeset for help on using the changeset viewer.