45 lines
737 B
C++
45 lines
737 B
C++
|
#include "se/CLTRID.hpp"
|
||
|
#include "session/Timer.hpp"
|
||
|
|
||
|
#include <sstream>
|
||
|
#include <iostream>
|
||
|
|
||
|
using namespace std;
|
||
|
|
||
|
string& CLTRID::clID()
|
||
|
{
|
||
|
static string id = "";
|
||
|
return id;
|
||
|
}
|
||
|
|
||
|
int& CLTRID::val()
|
||
|
{
|
||
|
static int v = 0;
|
||
|
return v;
|
||
|
}
|
||
|
|
||
|
string CLTRID::nextVal()
|
||
|
{
|
||
|
// Good until 2034.
|
||
|
time_t now = Timer::now() / 1000;
|
||
|
struct tm * tm_now = localtime(&now);
|
||
|
char tmbuf[30];
|
||
|
|
||
|
ostringstream retval;
|
||
|
strftime(tmbuf, sizeof(tmbuf), ".%Y%m%d.%H%M%S.", tm_now);
|
||
|
retval << clID() << tmbuf << val();
|
||
|
inc();
|
||
|
return retval.str();
|
||
|
}
|
||
|
|
||
|
void CLTRID::setClID (const string &clID)
|
||
|
{
|
||
|
CLTRID::clID() = clID;
|
||
|
val() = 0;
|
||
|
}
|
||
|
|
||
|
void CLTRID::inc()
|
||
|
{
|
||
|
val() = (val() + 1) % maxVal;
|
||
|
}
|