File: configClient.cpp

package info (click to toggle)
libaria 2.8.0%2Brepack-1
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 13,628 kB
  • ctags: 16,574
  • sloc: cpp: 135,490; makefile: 925; python: 597; java: 570; ansic: 182
file content (66 lines) | stat: -rw-r--r-- 1,582 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#include "Aria.h"
#include "ArNetworking.h"

ArClientBase *client;
ArClientHandlerConfig *configHandler;
bool done = false;

void gotConfig(void)
{
  ArConfig *newConfig;
  done = true;
  configHandler->getConfig()->writeFile("configClient.txt");
  newConfig = new ArConfig(*(configHandler->getConfig()));
  newConfig->writeFile("configClientNew.txt");
}

int main(int argc, char **argv)
{
  Aria::init();
  ArGlobalFunctor gotConfigCB(&gotConfig);
  std::string hostname;

  client = new ArClientBase;
  configHandler = new ArClientHandlerConfig(client);

  configHandler->addGotConfigCB(&gotConfigCB);

  ArArgumentParser parser(&argc, argv);
	
  ArClientSimpleConnector clientConnector(&parser);

  parser.loadDefaultArguments();

  /* Check for -help, and unhandled arguments: */
  if (!Aria::parseArgs() || !parser.checkHelpAndWarnUnparsed())
  {
    Aria::logOptions();
    exit(0);
  }
  /* Connect our client object to the remote server: */
  if (!clientConnector.connectClient(client))
  {
    exit(1);
  } 

  client->setRobotName(client->getHost()); // include server hostname in log messages

  configHandler->requestConfigFromServer();
  client->runAsync();

  while (!done)
    ArUtil::sleep(100);
  
  if (configHandler->canRequestDefaults())
  {
    configHandler->requestDefaultConfigFromServer();
    while (!configHandler->haveGottenDefaults())
      ArUtil::sleep(100);
    printf("%d\n", configHandler->haveGottenDefaults());
    configHandler->getDefaultConfig()->writeFile("configClientDefaults.txt");
    printf("wrote defaults\n");
  }


  Aria::exit(0);
}