From ec244dbe366e84a93c8fa1ef294af4a2e4e3b0b1 Mon Sep 17 00:00:00 2001 From: Xanadu Date: Sat, 17 Jul 2010 02:35:14 +0200 Subject: Correctly redo file moves/renames from rev. 8452. --HG-- branch : trunk rename : src/server/game/Grids/Cell.h => src/server/game/Grids/Cells/Cell.h rename : src/server/game/Grids/CellImpl.h => src/server/game/Grids/Cells/CellImpl.h rename : src/server/framework/GameSystem/Grid.h => src/server/game/Grids/Grid.h rename : src/server/framework/GameSystem/GridLoader.h => src/server/game/Grids/GridLoader.h rename : src/server/framework/GameSystem/GridRefManager.h => src/server/game/Grids/GridRefManager.h rename : src/server/framework/GameSystem/GridReference.h => src/server/game/Grids/GridReference.h rename : src/server/framework/GameSystem/NGrid.h => src/server/game/Grids/NGrid.h rename : src/server/game/Grids/GridNotifiers.cpp => src/server/game/Grids/Notifiers/GridNotifiers.cpp rename : src/server/game/Grids/GridNotifiers.h => src/server/game/Grids/Notifiers/GridNotifiers.h rename : src/server/game/Grids/GridNotifiersImpl.h => src/server/game/Grids/Notifiers/GridNotifiersImpl.h rename : src/server/framework/Platform/CompilerDefs.h => src/server/shared/CompilerDefs.h rename : src/server/framework/Platform/Define.h => src/server/shared/Define.h rename : src/server/framework/Utilities/CountedReference/Reference.h => src/server/shared/Dynamic/CountedReference/Reference.h rename : src/server/framework/Utilities/CountedReference/ReferenceHolder.h => src/server/shared/Dynamic/CountedReference/ReferenceHolder.h rename : src/server/framework/Utilities/CountedReference/ReferenceImpl.h => src/server/shared/Dynamic/CountedReference/ReferenceImpl.h rename : src/server/framework/Dynamic/FactoryHolder.h => src/server/shared/Dynamic/FactoryHolder.h rename : src/server/framework/Utilities/LinkedList.h => src/server/shared/Dynamic/LinkedList.h rename : src/server/framework/Utilities/LinkedReference/RefManager.h => src/server/shared/Dynamic/LinkedReference/RefManager.h rename : src/server/framework/Utilities/LinkedReference/Reference.h => src/server/shared/Dynamic/LinkedReference/Reference.h rename : src/server/framework/Dynamic/ObjectRegistry.h => src/server/shared/Dynamic/ObjectRegistry.h rename : src/server/framework/GameSystem/TypeContainer.h => src/server/shared/Dynamic/TypeContainer.h rename : src/server/framework/GameSystem/TypeContainerFunctions.h => src/server/shared/Dynamic/TypeContainerFunctions.h rename : src/server/framework/GameSystem/TypeContainerFunctionsPtr.h => src/server/shared/Dynamic/TypeContainerFunctionsPtr.h rename : src/server/framework/GameSystem/TypeContainerVisitor.h => src/server/shared/Dynamic/TypeContainerVisitor.h rename : src/server/framework/Utilities/TypeList.h => src/server/shared/Dynamic/TypeList.h rename : src/server/framework/Utilities/UnorderedMap.h => src/server/shared/Dynamic/UnorderedMap.h rename : src/server/framework/Policies/CreationPolicy.h => src/server/shared/Policies/CreationPolicy.h rename : src/server/framework/Policies/ObjectLifeTime.cpp => src/server/shared/Policies/ObjectLifeTime.cpp rename : src/server/framework/Policies/ObjectLifeTime.h => src/server/shared/Policies/ObjectLifeTime.h rename : src/server/framework/Policies/Singleton.h => src/server/shared/Policies/Singleton.h rename : src/server/framework/Policies/SingletonImp.h => src/server/shared/Policies/SingletonImp.h rename : src/server/framework/Policies/ThreadingModel.h => src/server/shared/Policies/ThreadingModel.h rename : src/server/framework/Utilities/Callback.h => src/server/shared/Threading/Callback.h rename : src/server/framework/Utilities/ByteConverter.h => src/server/shared/Utilities/ByteConverter.h rename : src/server/framework/Utilities/EventProcessor.cpp => src/server/shared/Utilities/EventProcessor.cpp rename : src/server/framework/Utilities/EventProcessor.h => src/server/shared/Utilities/EventProcessor.h rename : src/server/framework/Network/SocketDefines.h => src/server/worldserver/RemoteAccess/SocketDefines.h --- src/server/shared/Utilities/ByteConverter.h | 66 +++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 src/server/shared/Utilities/ByteConverter.h (limited to 'src/server/shared/Utilities/ByteConverter.h') diff --git a/src/server/shared/Utilities/ByteConverter.h b/src/server/shared/Utilities/ByteConverter.h new file mode 100644 index 00000000000..f8b6bd72498 --- /dev/null +++ b/src/server/shared/Utilities/ByteConverter.h @@ -0,0 +1,66 @@ +/* + * Copyright (C) 2005-2009 MaNGOS + * + * Copyright (C) 2008-2010 Trinity + * + * 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, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#ifndef TRINITY_BYTECONVERTER_H +#define TRINITY_BYTECONVERTER_H + +/** ByteConverter reverse your byte order. This is use + for cross platform where they have different endians. + */ + +#include +#include + +namespace ByteConverter +{ + template + inline void convert(char *val) + { + std::swap(*val, *(val + T - 1)); + convert(val + 1); + } + + template<> inline void convert<0>(char *) {} + template<> inline void convert<1>(char *) {} // ignore central byte + + template inline void apply(T *val) + { + convert((char *)(val)); + } +} + +#if TRINITY_ENDIAN == TRINITY_BIGENDIAN +template inline void EndianConvert(T& val) { ByteConverter::apply(&val); } +template inline void EndianConvertReverse(T&) { } +#else +template inline void EndianConvert(T&) { } +template inline void EndianConvertReverse(T& val) { ByteConverter::apply(&val); } +#endif + +template void EndianConvert(T*); // will generate link error +template void EndianConvertReverse(T*); // will generate link error + +inline void EndianConvert(uint8&) { } +inline void EndianConvert( int8&) { } +inline void EndianConvertReverse(uint8&) { } +inline void EndianConvertReverse( int8&) { } + +#endif + -- cgit v1.2.3