00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #include "Aria.h"
00027 #include "ArNetworking.h"
00028
00029
00030
00031
00032
00033
00034
00035
00036 ArClientBase *client;
00037 ArClientHandlerConfig *configHandler;
00038
00039 char *file;
00040
00041 void saveConfigSucceeded(void)
00042 {
00043 printf("HERE: Save config succeeded\n");
00044 }
00045
00046 void saveConfigFailed(const char *str)
00047 {
00048 printf("HERE: Save config failed: %s\n", str);
00049 }
00050
00051 void gotConfig(void)
00052 {
00053 char errorBuffer[1024];
00054 ArConfig *newConfig;
00055 if (!configHandler->getConfig()->parseFile(file, false, false, errorBuffer,
00056 sizeof(errorBuffer)))
00057 printf("Error loading file: %s\n", errorBuffer);
00058
00059 configHandler->saveConfigToServer();
00060 client->loopOnce();
00061 ArUtil::sleep(1000);
00062 client->loopOnce();
00063 ArUtil::sleep(1000);
00064 client->disconnect();
00065 Aria::shutdown();
00066 exit(0);
00067 }
00068
00069 int main(int argc, char **argv)
00070 {
00071 Aria::init();
00072
00073 ArGlobalFunctor gotConfigCB(&gotConfig);
00074 ArGlobalFunctor saveConfigSucceededCB(&saveConfigSucceeded);
00075 ArGlobalFunctor1<const char *> saveConfigFailedCB(&saveConfigFailed);
00076 std::string hostname;
00077
00078 client = new ArClientBase;
00079 configHandler = new ArClientHandlerConfig(client, true);
00080
00081 configHandler->addGotConfigCB(&gotConfigCB);
00082 configHandler->addSaveConfigSucceededCB(&saveConfigSucceededCB);
00083 configHandler->addSaveConfigFailedCB(&saveConfigFailedCB);
00084
00085 if (argc == 1)
00086 {
00087 printf("Usage: %s <file> <host>\n", argv[0]);
00088 exit(1);
00089 }
00090 file = argv[1];
00091 if (argc == 2)
00092 hostname = "localhost";
00093 else
00094 hostname = argv[2];
00095
00096
00097 if (!client->blockingConnect(hostname.c_str(), 7272))
00098 {
00099 printf("Could not connect to server, exiting\n");
00100 exit(1);
00101 }
00102
00103 configHandler->requestConfigFromServer();
00104
00105 client->run();
00106 return 0;
00107 }