mirror of
https://github.com/ultimatepp/ultimatepp.git
synced 2026-05-16 06:05:58 -06:00
133 lines
3.4 KiB
C++
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();
|
|
}
|
|
|