source: nrEngine/src/StdHelpers.cpp @ 30

Revision 30, 3.6 KB checked in by art, 12 years ago (diff)

::std wurde durch std ueberall ersetzt!

Line 
1/***************************************************************************
2 *                                                                         *
3 *   (c) Art Tevs, MPI Informatik Saarbruecken                             *
4 *       mailto: <tevs@mpi-sb.mpg.de>                                      *
5 *                                                                         *
6 *   This program is free software; you can redistribute it and/or modify  *
7 *   it under the terms of the GNU General Public License as published by  *
8 *   the Free Software Foundation; either version 2 of the License, or     *
9 *   (at your option) any later version.                                   *
10 *                                                                         *
11 ***************************************************************************/
12
13//----------------------------------------------------------------------------------
14// Includes
15//----------------------------------------------------------------------------------
16#include "StdHelpers.h"
17#include "ITask.h"
18
19#include <time.h>
20#if NR_PLATFORM != NR_PLATFORM_WIN32
21#    include <sys/time.h>
22#endif
23
24namespace nrEngine{
25
26        //-------------------------------------------------------------------------
27        void sleep( uint32 milliseconds )
28        {
29                #if NR_PLATFORM == NR_PLATFORM_WIN32
30                        Sleep( (DWORD)milliseconds );
31                #else
32                        #if NR_PLATFORM == NR_PLATFORM_NETWARE
33                                delay(milliseconds/1000+1);
34                        #elif NR_PLATFORM == NR_PLATFORM_OS2
35                                DosSleep(milliseconds/1000+1);
36                        #else
37                                // retrive current time
38                                timeval start;
39                                int64 a,b;
40                                gettimeofday(&start, NULL);
41
42                                // calculate start and end time point
43                                a = start.tv_sec * 1000000L + start.tv_usec;
44                                b = a + milliseconds * 1000L;
45
46                                // do loop until we are over the end point
47                                while (a < b){
48                                        gettimeofday(&start, NULL);
49                                        a = start.tv_sec * 1000000L + start.tv_usec;
50                                }
51                        #endif
52                #endif
53        }
54
55
56        //-------------------------------------------------------------------------
57        std::string convertVersionToString(uint32 version)
58        {
59                // extract patch number
60                uint32 patch = version % 256;
61
62                // extract minor number
63                uint32 minor = ((version) / 256) % 256;
64
65                // extract major number
66                uint32 major = ((version) / (256 * 256)) % 256;
67
68                // create a string
69                char str[32];
70                sprintf(str, "%d.%d.%d", major, minor, patch);
71
72                // return a string
73                return std::string(str);
74        }
75
76
77        //-------------------------------------------------------------------------
78        uint32 createVersionInteger(uint8 major, uint8 minor, uint8 patch)
79        {
80                return uint32(major) * 256 * 256 + uint32(minor) * 256 + uint32(patch);
81        }
82
83
84        //-------------------------------------------------------------------------
85        std::string trim(const std::string& str)
86        {
87                std::string res;
88
89                for (uint32 i=0; i < str.length();i++){
90                        if(str[i] != ' ' && str[i] != '\n'){
91                                res += str[i];
92                        }
93                }
94
95                return res;
96        }
97
98        //-------------------------------------------------------------------------
99        std::string _NRExport orderToString(int32 order)
100        {
101#define CHECK(a) case a: result=#a; break;
102                char ord[256];
103                sprintf(ord, "%d", order);
104                std::string result = ord;
105               
106                switch (order){
107                        CHECK(ORDER_SYS_ROOT)
108                        CHECK(ORDER_SYS_FIRST)
109                        CHECK(ORDER_SYS_SECOND)
110                        CHECK(ORDER_SYS_THIRD)
111                        CHECK(ORDER_SYS_FOURTH)
112                        CHECK(ORDER_SYS_FIVETH)
113                        CHECK(ORDER_SYS_LAST)
114                        CHECK(ORDER_FIRST)
115                        CHECK(ORDER_ULTRA_HIGH)
116                        CHECK(ORDER_VERY_HIGH)
117                        CHECK(ORDER_HIGH)
118                        CHECK(ORDER_NORMAL)
119                        CHECK(ORDER_LOW)
120                        CHECK(ORDER_VERY_LOW)
121                        CHECK(ORDER_ULTRA_LOW)
122                        CHECK(ORDER_LAST)
123                };
124
125#undef CHECK
126                return result;
127        }
128
129}; // end namespace
130
Note: See TracBrowser for help on using the repository browser.