/indra/newview/llworldmapmessage.h
https://bitbucket.org/lindenlab/viewer-beta/ · C++ Header · 77 lines · 31 code · 10 blank · 36 comment · 0 complexity · b43782794947551f1d0329ba2e0abdec MD5 · raw file
- /**
- * @file llworldmapmessage.h
- * @brief Handling of the messages to the DB made by and for the world map.
- *
- * $LicenseInfo:firstyear=2003&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2010, Linden Research, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- *
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
- * $/LicenseInfo$
- */
- #ifndef LL_LLWORLDMAPMESSAGE_H
- #define LL_LLWORLDMAPMESSAGE_H
- // Handling of messages (send and process) as well as SLURL callback if necessary
- class LLMessageSystem;
- class LLWorldMapMessage : public LLSingleton<LLWorldMapMessage>
- {
- public:
- typedef boost::function<void(U64 region_handle, const std::string& url, const LLUUID& snapshot_id, bool teleport)>
- url_callback_t;
- LLWorldMapMessage();
- ~LLWorldMapMessage();
- // Process incoming answers to map stuff requests
- static void processMapBlockReply(LLMessageSystem*, void**);
- static void processMapItemReply(LLMessageSystem*, void**);
- // Request data for all regions in a rectangular area. Coordinates in grids (i.e. meters / 256).
- void sendMapBlockRequest(U16 min_x, U16 min_y, U16 max_x, U16 max_y, bool return_nonexistent = false);
- // Various methods to request LLSimInfo data to the simulator and asset DB
- void sendNamedRegionRequest(std::string region_name);
- void sendNamedRegionRequest(std::string region_name,
- url_callback_t callback,
- const std::string& callback_url,
- bool teleport);
- void sendHandleRegionRequest(U64 region_handle,
- url_callback_t callback,
- const std::string& callback_url,
- bool teleport);
- // Request item data for regions
- // Note: the handle works *only* when requesting agent count (type = MAP_ITEM_AGENT_LOCATIONS). In that case,
- // the request will actually be transitting through the spaceserver (all that is done on the sim).
- // All other values of type do create a global grid request to the asset DB. So no need to try to get, say,
- // the events for one particular region. For such a request, the handle is ignored.
- void sendItemRequest(U32 type, U64 handle = 0);
- private:
- // Search for region (by name or handle) for SLURL processing and teleport
- // None of this relies explicitly on the LLWorldMap instance so better handle it here
- std::string mSLURLRegionName;
- U64 mSLURLRegionHandle;
- std::string mSLURL;
- url_callback_t mSLURLCallback;
- bool mSLURLTeleport;
- };
- #endif // LL_LLWORLDMAPMESSAGE_H