commtest.h
上传用户:king477883
上传日期:2021-03-01
资源大小:9553k
文件大小:3k
源码类别:

游戏引擎

开发平台:

C++ Builder

  1. /**
  2.  * @file   commtest.h
  3.  * @author Nat Goodspeed
  4.  * @date   2009-01-09
  5.  * @brief  
  6.  * 
  7.  * $LicenseInfo:firstyear=2009&license=viewergpl$
  8.  * 
  9.  * Copyright (c) 2009-2010, Linden Research, Inc.
  10.  * 
  11.  * Second Life Viewer Source Code
  12.  * The source code in this file ("Source Code") is provided by Linden Lab
  13.  * to you under the terms of the GNU General Public License, version 2.0
  14.  * ("GPL"), unless you have obtained a separate licensing agreement
  15.  * ("Other License"), formally executed by you and Linden Lab.  Terms of
  16.  * the GPL can be found in doc/GPL-license.txt in this distribution, or
  17.  * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
  18.  * 
  19.  * There are special exceptions to the terms and conditions of the GPL as
  20.  * it is applied to this Source Code. View the full text of the exception
  21.  * in the file doc/FLOSS-exception.txt in this software distribution, or
  22.  * online at
  23.  * http://secondlifegrid.net/programs/open_source/licensing/flossexception
  24.  * 
  25.  * By copying, modifying or distributing this software, you acknowledge
  26.  * that you have read and understood your obligations described above,
  27.  * and agree to abide by those obligations.
  28.  * 
  29.  * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
  30.  * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
  31.  * COMPLETENESS OR PERFORMANCE.
  32.  * $/LicenseInfo$
  33.  */
  34. #if ! defined(LL_COMMTEST_H)
  35. #define LL_COMMTEST_H
  36. #include "networkio.h"
  37. #include "llevents.h"
  38. #include "llsd.h"
  39. #include "llhost.h"
  40. #include "stringize.h"
  41. #include <string>
  42. /**
  43.  * This struct is shared by a couple of standalone comm tests (ADD_COMM_BUILD_TEST).
  44.  */
  45. struct commtest_data
  46. {
  47.     NetworkIO& netio;
  48.     LLEventPumps& pumps;
  49.     LLEventStream replyPump, errorPump;
  50.     LLSD result;
  51.     bool success;
  52.     LLHost host;
  53.     std::string server;
  54.     commtest_data():
  55.         netio(NetworkIO::instance()),
  56.         pumps(LLEventPumps::instance()),
  57.         replyPump("reply"),
  58.         errorPump("error"),
  59.         success(false),
  60.         host("127.0.0.1", 8000),
  61.         server(STRINGIZE("http://" << host.getString() << "/"))
  62.     {
  63.         replyPump.listen("self", boost::bind(&commtest_data::outcome, this, _1, true));
  64.         errorPump.listen("self", boost::bind(&commtest_data::outcome, this, _1, false));
  65.     }
  66.     bool outcome(const LLSD& _result, bool _success)
  67.     {
  68. //      std::cout << "commtest_data::outcome(" << _result << ", " << _success << ")n";
  69.         result = _result;
  70.         success = _success;
  71.         // Break the wait loop in NetworkIO::pump(), otherwise devs get
  72.         // irritated at making the big monolithic test executable take longer
  73.         pumps.obtain("done").post(success);
  74.         return false;
  75.     }
  76. };
  77. #endif /* ! defined(LL_COMMTEST_H) */