/*---------------------------------------------------------------------- | TestRandom +---------------------------------------------------------------------*/ static void TestRandom() { for (unsigned int i=0; i<10000; i++) { NPT_TimeStamp ts((double)NPT_System::GetRandomInteger()); NPT_TimeStamp ts2; NPT_DateTime date; SHOULD_SUCCEED(date.FromTimeStamp(ts, false)); SHOULD_SUCCEED(date.ToTimeStamp(ts2)); NPT_String ds; NPT_DateTime ndate; ds = date.ToString(NPT_DateTime::FORMAT_ANSI); ndate.FromString(ds); //SHOULD_EQUAL(date, ndate); SHOULD_SUCCEED(ndate.ToTimeStamp(ts2)); SHOULD_EQUAL_F((double)ts2.ToSeconds(), (double)ts.ToSeconds()); ds = date.ToString(NPT_DateTime::FORMAT_W3C); ndate.FromString(ds); //SHOULD_EQUAL(date, ndate); SHOULD_SUCCEED(ndate.ToTimeStamp(ts2)); SHOULD_EQUAL_F((double)ts2.ToSeconds(), (double)ts.ToSeconds()); ds = date.ToString(NPT_DateTime::FORMAT_RFC_1123); ndate.FromString(ds); //SHOULD_EQUAL(date, ndate); SHOULD_SUCCEED(ndate.ToTimeStamp(ts2)); SHOULD_EQUAL_F((double)ts2.ToSeconds(), (double)ts.ToSeconds()); ds = date.ToString(NPT_DateTime::FORMAT_RFC_1036); ndate.FromString(ds); //SHOULD_EQUAL(date, ndate); SHOULD_SUCCEED(ndate.ToTimeStamp(ts2)); SHOULD_EQUAL_F((double)ts2.ToSeconds(), (double)ts.ToSeconds()); } }
void Server::sendDiscover(std::string host, int port, std::string st) { std::string udn = gMS->udnString(); std::string serverHost = "192.168.1.103"; int serverPort = 8082; NPT_DateTime date; NPT_TimeStamp now; NPT_System::GetCurrentTimeStamp(now); date.FromTimeStamp(now); NPT_String date_str = date.ToString(NPT_DateTime::FORMAT_RFC_1123); if (st.compare(udn) == 0) { udn = ""; } else { udn += "::"; } std::string discovery; discovery.reserve(1024); discovery.append("HTTP/1.1 200 OK").append(CRLF); discovery.append("CACHE-CONTROL: max-age=1200").append(CRLF); discovery.append("DATE: ").append(date_str.GetChars()).append(" GMT").append(CRLF); discovery.append("LOCATION: http://").append(serverHost).append(":").append(std::to_string(serverPort)).append("/description/fetch").append(CRLF); discovery.append("SERVER: ").append(gMS->name()).append(CRLF); discovery.append("ST: ").append(st).append(CRLF); discovery.append("EXT: ").append(CRLF); discovery.append("USN: ").append(udn).append(st).append(CRLF); discovery.append("Content-Length: 0").append(CRLF).append(CRLF); sendReply(host, port, discovery); }
/*---------------------------------------------------------------------- | TestMisc +---------------------------------------------------------------------*/ static void TestMisc() { NPT_DateTime date; NPT_TimeStamp ts; NPT_String s; NPT_System::GetCurrentTimeStamp(ts); SHOULD_SUCCEED(date.FromTimeStamp(ts, false)); s = date.ToString(NPT_DateTime::FORMAT_W3C); NPT_Console::OutputF("%s\n", s.GetChars()); s = date.ToString(NPT_DateTime::FORMAT_ANSI); NPT_Console::OutputF("%s\n", s.GetChars()); s = date.ToString(NPT_DateTime::FORMAT_RFC_1036); NPT_Console::OutputF("%s\n", s.GetChars()); s = date.ToString(NPT_DateTime::FORMAT_RFC_1123); NPT_Console::OutputF("%s\n", s.GetChars()); SHOULD_SUCCEED(date.FromTimeStamp(ts, true)); s = date.ToString(NPT_DateTime::FORMAT_W3C); NPT_Console::OutputF("%s\n", s.GetChars()); s = date.ToString(NPT_DateTime::FORMAT_ANSI); NPT_Console::OutputF("%s\n", s.GetChars()); s = date.ToString(NPT_DateTime::FORMAT_RFC_1036); NPT_Console::OutputF("%s\n", s.GetChars()); s = date.ToString(NPT_DateTime::FORMAT_RFC_1123); NPT_Console::OutputF("%s\n", s.GetChars()); ts = 0.0; SHOULD_SUCCEED(date.FromTimeStamp(ts, false)); s = date.ToString(NPT_DateTime::FORMAT_W3C); SHOULD_EQUAL_S(s.GetChars(), "1970-01-01T00:00:00Z"); s = date.ToString(NPT_DateTime::FORMAT_ANSI); SHOULD_EQUAL_S(s.GetChars(), "Thu Jan 1 00:00:00 1970"); s = date.ToString(NPT_DateTime::FORMAT_RFC_1036); SHOULD_EQUAL_S(s.GetChars(), "Thursday, 01-Jan-70 00:00:00 GMT"); s = date.ToString(NPT_DateTime::FORMAT_RFC_1123); SHOULD_EQUAL_S(s.GetChars(), "Thu, 01 Jan 1970 00:00:00 GMT"); ts.SetSeconds(0xFFFFFFFF); SHOULD_SUCCEED(date.FromTimeStamp(ts, false)); s = date.ToString(NPT_DateTime::FORMAT_W3C, false); SHOULD_EQUAL_S(s.GetChars(), "2106-02-07T06:28:15Z"); NPT_TimeStamp now; NPT_System::GetCurrentTimeStamp(now); NPT_DateTime now_local(now, true); NPT_DateTime now_utc(now, false); SHOULD_EQUAL_I(now_utc.m_TimeZone, 0); NPT_TimeStamp ts1, ts2; now_local.ToTimeStamp(ts1); now_utc.ToTimeStamp(ts2); SHOULD_EQUAL_I((int)ts1.ToSeconds(), (int)ts2.ToSeconds()); ts.SetSeconds(0); NPT_DateTime d1(ts); ts.SetSeconds(ts.ToSeconds()-3600); NPT_DateTime d2(ts); d1.ToTimeStamp(ts1); d2.ToTimeStamp(ts2); SHOULD_EQUAL_I((int)ts1.ToSeconds(), (int)ts2.ToSeconds()+3600); }