/* * Copyright (C) 2008-2013 TrinityCore * Copyright (C) 2005-2009 MaNGOS * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * * This program 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 General Public License for * more details. * * You should have received a copy of the GNU General Public License along * with this program. If not, see . */ #ifndef TRINITY_GRIDLOADER_H #define TRINITY_GRIDLOADER_H /** @class GridLoader The GridLoader is working in conjuction with the Grid and responsible for loading and unloading object-types (one or more) when objects enters a grid. Unloading is scheduled and might be canceled if an interested object re-enters. GridLoader does not do the actuall loading and unloading but implements as a template pattern that delicate its loading and unloading for the actualy loader and unloader. GridLoader manages the grid (both local and remote). */ //I cannot see why this cannot be replaced by a Grid::Visit /* #include "Define.h" #include "Grid.h" #include "TypeContainerVisitor.h" template < class ACTIVE_OBJECT, class WORLD_OBJECT_TYPES, class GRID_OBJECT_TYPES > class GridLoader { public: // Loads the grid template void Load(Grid &grid, LOADER &loader) { grid.LockGrid(); loader.Load(grid); grid.UnlockGrid(); } // Stop the grid template void Stop(Grid &grid, STOPER &stoper) { grid.LockGrid(); stoper.Stop(grid); grid.UnlockGrid(); } // Unloads the grid template void Unload(Grid &grid, UNLOADER &unloader) { grid.LockGrid(); unloader.Unload(grid); grid.UnlockGrid(); } }; */ #endif