87 lines
1.8 KiB
C++
87 lines
1.8 KiB
C++
#include "../../../../../OrthancFramework/Sources/HttpClient.h"
|
|
#include "../../../../../OrthancFramework/Sources/Logging.h"
|
|
#include "../../../../../OrthancFramework/Sources/OrthancException.h"
|
|
#include "../../../../../OrthancFramework/Sources/SystemToolbox.h"
|
|
|
|
#include <iostream>
|
|
#include <boost/thread.hpp>
|
|
|
|
static void Worker(bool *done)
|
|
{
|
|
LOG(WARNING) << "One thread has started";
|
|
|
|
Orthanc::HttpClient client;
|
|
//client.SetUrl("http://localhost:8042/studies");
|
|
//client.SetUrl("http://localhost:8042/tools/default-encoding");
|
|
client.SetUrl("http://localhost:8042/system");
|
|
//client.SetUrl("http://localhost:8042/");
|
|
//client.SetCredentials("orthanc", "orthanc");
|
|
client.SetRedirectionFollowed(false);
|
|
|
|
while (!(*done))
|
|
{
|
|
try
|
|
{
|
|
#if 0
|
|
Json::Value v;
|
|
if (!client.Apply(v) ||
|
|
v.type() != Json::objectValue)
|
|
{
|
|
printf("ERROR\n");
|
|
}
|
|
#else
|
|
std::string s;
|
|
if (!client.Apply(s) ||
|
|
s.empty())
|
|
{
|
|
printf("ERROR\n");
|
|
}
|
|
#endif
|
|
}
|
|
catch (Orthanc::OrthancException& e)
|
|
{
|
|
printf("EXCEPTION: %s", e.What());
|
|
}
|
|
}
|
|
|
|
LOG(WARNING) << "One thread has stopped";
|
|
}
|
|
|
|
int main()
|
|
{
|
|
Orthanc::Logging::Initialize();
|
|
//Orthanc::Logging::EnableInfoLevel(true);
|
|
Orthanc::HttpClient::GlobalInitialize();
|
|
|
|
{
|
|
bool done = false;
|
|
|
|
std::vector<boost::thread*> threads;
|
|
|
|
for (size_t i = 0; i < 100; i++)
|
|
{
|
|
threads.push_back(new boost::thread(Worker, &done));
|
|
}
|
|
|
|
LOG(WARNING) << "STARTED";
|
|
Orthanc::SystemToolbox::ServerBarrier();
|
|
LOG(WARNING) << "STOPPING";
|
|
|
|
done = true;
|
|
|
|
for (size_t i = 0; i < threads.size(); i++)
|
|
{
|
|
if (threads[i]->joinable())
|
|
{
|
|
threads[i]->join();
|
|
}
|
|
|
|
delete threads[i];
|
|
}
|
|
}
|
|
|
|
Orthanc::HttpClient::GlobalFinalize();
|
|
printf("OK\n");
|
|
return 0;
|
|
}
|