diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2007-07-23 13:04:48 +0000 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2007-07-23 13:04:48 +0000 |
| commit | 380e3f018712d3a65ddc834dbf83e036b436be09 (patch) | |
| tree | be34c3320914cb6cd1927e49ee6f463a6562398e /src/SimpleRandomizer.h | |
| parent | 6574e44f886740273676b6d73ef754385a36197f (diff) | |
2007-07-23 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Merged Ross's win32 patch(manually)
In the course of merging, following files are added.
* src/strptime.{h,c}
* src/libgen.{h,c}
* src/inet_aton.{h,c}
* src/Platform.{h,cc}
* src/localtime_r.{h,c}
* src/getaddrinfo.{h,c}
I've gethered network related things, and put them to following
file:
* src/a2netcompat.h
Also io related things are put to following file:
* src/a2io.h
Changed %lld to %s because mingw32 doesn't recognize %lld.
* src/message.h
(MSG_ALLOCATION_COMPLETED)
(EX_TOO_LARGE_FILE)
(EX_SIZE_MISMATCH)
(EX_FILE_OFFSET_OUT_OF_RANGE)
(EX_INVALID_CHUNK_CHECKSUM)
(EX_INVALID_RANGE_HEADER)
* src/FileAllocationCommand.cc
* src/HttpResponse.cc
* src/RequestGroup.cc
* src/MultiDiskAdaptor.cc
* src/OptionHandlerImpl.h
* src/HttpResponseCommand.cc
* src/FtpNegotiateCommand.cc
* src/IteratableChecksumValidator.cc
* src/SegmentMan.cc
* src/ChunkChecksumValidator.cc
Added Randomizer::getRandomNumber(long int)
* src/Randomizer.h (getRandomNumber)
* src/SimpleRandomizer.h (getRandomNumber)
* src/BitfieldMan.cc (getMissingIndexRandomly): Use this new
function.
* src/Util.cc (randomAlpha): Use this new function.
Diffstat (limited to 'src/SimpleRandomizer.h')
| -rw-r--r-- | src/SimpleRandomizer.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/SimpleRandomizer.h b/src/SimpleRandomizer.h index bdbcfc57..007daf54 100644 --- a/src/SimpleRandomizer.h +++ b/src/SimpleRandomizer.h @@ -54,18 +54,31 @@ public: } static void init() { +#ifdef HAVE_SRANDOM srandom(time(0)); +#else + srand(time(0)); +#endif } virtual ~SimpleRandomizer() {} virtual long int getRandomNumber() { +#ifdef HAVE_RANDOM return random(); +#else + return rand(); +#endif } virtual long int getMaxRandomNumber() { return RAND_MAX; } + + virtual long int getRandomNumber(long int to) + { + return(int32_t)(((double)to)*getRandomNumber()/(getMaxRandomNumber()+1.0)); + } }; #endif // _D_SIMPLE_RANDOMIZER_H_ |
