util.cpp
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #include <util.h>
00021 #include <stdlib.h>
00022 #include <time.h>
00023 #include <string>
00024 #include <algorithm>
00025 #include <iostream>
00026 #include <sptk4/CBase64.h>
00027
00028 namespace container
00029 {
00030 namespace util
00031 {
00032
00033 struct __SrandInit
00034 {
00035 __SrandInit(){srandom(time(0));}
00036 };
00037 static __SrandInit __srtandInit;
00038
00042 unsigned long getRandomLong()
00043 {
00044
00045 return random();
00046 }
00047
00048
00054 std::string getRandomString(int len)
00055 {
00056 sptk::CBuffer in(len+2*sizeof(unsigned long));
00057 unsigned long* l=(unsigned long*)in.data();
00058 int cnt=len/sizeof(unsigned long)+1;
00059 for(int i=0;i<cnt;i++)
00060 l[i]=getRandomLong();
00061 in.bytes(len);
00062 sptk::CBuffer out;
00063 sptk::CBase64::encode(out,in);
00064 std::string ret(out.data(),len);
00065 std::transform(ret.begin(),ret.end(),ret.begin(),TrEq());
00066 return ret;
00067 }
00068
00069
00070 }
00071 }