ultimatepp/bazaar/ProtectClientDemo/ProtectClientDemo.cpp
micio 49abbe7001 Bazaar/ProtectClientDemo : fixed building on new core
git-svn-id: svn://ultimatepp.org/upp/trunk@11975 f0d560ea-af0d-0410-9eb7-867de7ffcac7
2018-06-05 18:41:25 +00:00

133 lines
3.4 KiB
C++

#include "ProtectClientDemo.h"
static String DumpSpecial(String s)
{
String out;
for(const char *p = s.Begin(), *e = s.End(); p < e; p++)
if((byte)*p >= ' ' && *p != '\xFF')
out.Cat(*p);
else {
switch(*p) {
case '\a': out.Cat("[\\a]"); break;
case '\b': out.Cat("[\\b]"); break;
case '\f': out.Cat("[\\f]"); break;
case '\v': out.Cat("[\\v]"); break;
case '\t': out.Cat("[\\t]"); break;
case '\r': out.Cat("[\\r]"); break;
case '\n': out.Cat("[\\n]\n"); break;
default: out.Cat(NFormat("[\\x%02x", (byte)*p)); break;
}
}
return out;
}
ProtectClientDemo::ProtectClientDemo()
{
CtrlLayout(*this, "Protect client demo");
// setup client url and key
client
.SetURL("localhost/scgi/testing")
// .SetURL("localhost/scgi")
// .SetURL("timberstruct.it/scgi/testing")
.SetCommunicationKey(ScanHexString("aabbccddeeff00112233445566778899"))
;
// gets eventually previously stored activation key from client
activationKey <<= client.GetActivationKey();
registerButton <<= THISBACK1(onAction, PROTECT_REGISTER);
connectButton <<= THISBACK1(onAction, PROTECT_CONNECT);
refreshButton <<= THISBACK1(onAction, PROTECT_REFRESH);
disconnectButton <<= THISBACK1(onAction, PROTECT_DISCONNECT);
getKeyButton <<= THISBACK1(onAction, PROTECT_GETLICENSEKEY);
getInfoButton <<= THISBACK1(onAction, PROTECT_GETLICENSEINFO);
setInfoButton <<= THISBACK1(onAction, PROTECT_UPDATEUSERDATA);
quitButton <<= Breaker();
emailEdit <<= "test@testme.net";
}
ProtectClientDemo::~ProtectClientDemo()
{
}
void ProtectClientDemo::onAction(int reason)
{
// clear response text
responseText <<= "";
// sets user data
client
.SetUserName(~nameEdit)
.SetUserAddress(~addressEdit)
.SetUserCountry(~countryEdit)
.SetUserZip(~zipEdit)
.SetUserPhone(~phoneEdit)
.SetUserFax(~faxEdit)
.SetUserCell(~cellEdit)
.SetUserEMail(~emailEdit)
.SetActivationKey(~activationKey)
;
String res;
String key;
switch(reason)
{
case PROTECT_CONNECT : // establish connection to server
if(!client.Connect())
res += "CONNECT ERROR\n";
break;
case PROTECT_DISCONNECT : // frees server connection
if(!client.Disconnect())
res += "DISCONNECT ERROR\n";
break;
case PROTECT_REFRESH : // refreshes server connection (to restart timeout)
if(!client.Refresh())
res += "REFRESH ERROR\n";
break;
case PROTECT_GETLICENSEKEY : // gets application key
key = client.GetLicenseKey();
if(key == "")
res += "GETKEY ERROR\n";
else
res += "GOT LICENSE KEY : '" + key + "'\n";
break;
case PROTECT_REGISTER : // registers app for timed demo
if(!client.Register())
res += "REGISTER ERROR\n";
break;
case PROTECT_GETLICENSEINFO : // gets info about license (name, expiration date, app version....)
if(!client.GetLicenseInfo())
res += "GETLICENSEINFO ERROR\n";
else
{
nameEdit <<= client.GetUserName();
addressEdit <<= client.GetUserAddress();
countryEdit <<= client.GetUserCountry();
zipEdit <<= client.GetUserZip();
phoneEdit <<= client.GetUserPhone();
faxEdit <<= client.GetUserFax();
cellEdit <<= client.GetUserCell();
emailEdit <<= client.GetUserEMail();
}
break;
case PROTECT_UPDATEUSERDATA :
if(!client.UpdateUserData())
res += "UPDATEUSERDATA ERROR\n";
default:
break;
}
res += "Last server message : " + client.GetLastErrorMsg();
responseText <<= res;
}
GUI_APP_MAIN
{
ProtectClientDemo demo;
demo.Run();
}