Browse Source

Merge pull request #105 from dpogue/netbase

pnNetBase refactor

--HG--
rename : Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbError.h => Sources/Plasma/NucleusLib/pnNetBase/pnNbError.h
rename : Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbKeys.cpp => Sources/Plasma/NucleusLib/pnNetBase/pnNbKeys.cpp
rename : Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbKeys.h => Sources/Plasma/NucleusLib/pnNetBase/pnNbKeys.h
rename : Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbProtocol.h => Sources/Plasma/NucleusLib/pnNetBase/pnNbProtocol.h
rename : Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbSrvs.cpp => Sources/Plasma/NucleusLib/pnNetBase/pnNbSrvs.cpp
rename : Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbSrvs.h => Sources/Plasma/NucleusLib/pnNetBase/pnNbSrvs.h
Adam Johnson 13 years ago
parent
commit
61da0883d8
  1. 2
      Sources/Plasma/FeatureLib/pfConsoleCore/CMakeLists.txt
  2. 3
      Sources/Plasma/FeatureLib/pfConsoleCore/pfConsoleCommandsCore.cpp
  3. 177
      Sources/Plasma/FeatureLib/pfConsoleCore/pfUtilBase64.cpp
  4. 44
      Sources/Plasma/FeatureLib/pfConsoleCore/pfUtilBase64.h
  5. 26
      Sources/Plasma/NucleusLib/pnNetBase/CMakeLists.txt
  6. 54
      Sources/Plasma/NucleusLib/pnNetBase/Intern.h
  7. 57
      Sources/Plasma/NucleusLib/pnNetBase/Pch.h
  8. 41
      Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbAges.cpp
  9. 51
      Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbAges.h
  10. 169
      Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbEchoMsgs.h
  11. 14
      Sources/Plasma/NucleusLib/pnNetBase/pnNbConst.h
  12. 114
      Sources/Plasma/NucleusLib/pnNetBase/pnNbError.cpp
  13. 15
      Sources/Plasma/NucleusLib/pnNetBase/pnNbError.h
  14. 8
      Sources/Plasma/NucleusLib/pnNetBase/pnNbKeys.cpp
  15. 16
      Sources/Plasma/NucleusLib/pnNetBase/pnNbKeys.h
  16. 40
      Sources/Plasma/NucleusLib/pnNetBase/pnNbProtocol.cpp
  17. 15
      Sources/Plasma/NucleusLib/pnNetBase/pnNbProtocol.h
  18. 26
      Sources/Plasma/NucleusLib/pnNetBase/pnNbSrvs.cpp
  19. 15
      Sources/Plasma/NucleusLib/pnNetBase/pnNbSrvs.h
  20. 25
      Sources/Plasma/NucleusLib/pnNetBase/pnNetBase.h

2
Sources/Plasma/FeatureLib/pfConsoleCore/CMakeLists.txt

@ -8,12 +8,14 @@ set(pfConsoleCore_SOURCES
pfConsoleCommandsCore.cpp
pfConsoleContext.cpp
pfConsoleEngine.cpp
pfUtilBase64.cpp
)
set(pfConsoleCore_HEADERS
pfConsoleCmd.h
pfConsoleContext.h
pfConsoleEngine.h
pfUtilBase64.h
)
add_library(pfConsoleCore STATIC ${pfConsoleCore_SOURCES} ${pfConsoleCore_HEADERS})

3
Sources/Plasma/FeatureLib/pfConsoleCore/pfConsoleCommandsCore.cpp

@ -46,7 +46,8 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
//////////////////////////////////////////////////////////////////////////////
#include "pfConsoleCmd.h"
#include "pnNetBase/Pch.h"
#include "pnNetBase/pnNetBase.h"
#include "pfUtilBase64.h"
#include <algorithm>

177
Sources/Plasma/FeatureLib/pfConsoleCore/pfUtilBase64.cpp

@ -0,0 +1,177 @@
/*==LICENSE==*
CyanWorlds.com Engine - MMOG client, server and tools
Copyright (C) 2011 Cyan Worlds, Inc.
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 3 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 <http://www.gnu.org/licenses/>.
Additional permissions under GNU GPL version 3 section 7
If you modify this Program, or any covered work, by linking or
combining it with any of RAD Game Tools Bink SDK, Autodesk 3ds Max SDK,
NVIDIA PhysX SDK, Microsoft DirectX SDK, OpenSSL library, Independent
JPEG Group JPEG library, Microsoft Windows Media SDK, or Apple QuickTime SDK
(or a modified version of those libraries),
containing parts covered by the terms of the Bink SDK EULA, 3ds Max EULA,
PhysX SDK EULA, DirectX SDK EULA, OpenSSL and SSLeay licenses, IJG
JPEG Library README, Windows Media SDK EULA, or QuickTime SDK EULA, the
licensors of this Program grant you additional
permission to convey the resulting work. Corresponding Source for a
non-source form of such a combination shall include the source code for
the parts of OpenSSL and IJG JPEG Library used as well as that of the covered
work.
You can contact Cyan Worlds, Inc. by email legal@cyan.com
or by snail mail at:
Cyan Worlds, Inc.
14617 N Newport Hwy
Mead, WA 99021
*==LICENSE==*/
#include "pfUtilBase64.h"
/*****************************************************************************
*
* Private
*
***/
static const char kEncode64[] = {
// 0000000000111111111122222222223333333333444444444455555555556666
// 0123456789012345678901234567890123456789012345678901234567890123
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
};
// Note that the decode table contains one special entry:
// The '-' character (0x2d) maps to 63 just like '/' (0x2f)
// so that URLs will work with Base64Decode when we implement them.
#define kTerminator 127
#define xx kTerminator
static const char kDecode64[] = {
// 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,
xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,
xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,62,xx,63,xx,63,
52,53,54,55,56,57,58,59,60,61,xx,xx,xx,xx,xx,xx,
xx, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,
15,16,17,18,19,20,21,22,23,24,25,xx,xx,xx,xx,xx,
xx,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,
41,42,43,44,45,46,47,48,49,50,51,xx,xx,xx,xx,xx,
xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,
xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,
xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,
xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,
xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,
xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,
xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,
xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,xx,
};
#undef xx
static const char kFillchar = '=';
/*****************************************************************************
*
* Exports
*
***/
//============================================================================
unsigned Base64Encode (
unsigned srcChars,
const byte srcData[],
unsigned dstChars,
char * dstData
) {
ASSERT(srcData);
ASSERT(dstChars >= Base64EncodeSize(srcChars));
ASSERT(dstData);
const char * dstBase = dstData;
const byte * srcTerm = srcData + srcChars;
for (;;) switch (srcTerm - srcData) {
case 0:
*dstData++ = 0;
return dstData - dstBase;
case 1:
*dstData++ = kEncode64[ ((srcData[0] >> 2) & 0x3f) ];
*dstData++ = kEncode64[ ((srcData[0] << 4) & 0x30) ];
*dstData++ = kFillchar;
*dstData++ = kFillchar;
*dstData++ = 0;
return dstData - dstBase;
case 2:
*dstData++ = kEncode64[ ((srcData[0] >> 2) & 0x3f) ];
*dstData++ = kEncode64[ ((srcData[0] << 4) & 0x30) + ((srcData[1] >> 4) & 0x0f) ];
*dstData++ = kEncode64[ ((srcData[1] << 2) & 0x3c) ];
*dstData++ = kFillchar;
*dstData++ = 0;
return dstData - dstBase;
default:
*dstData++ = kEncode64[ ((srcData[0] >> 2) & 0x3f) ];
*dstData++ = kEncode64[ ((srcData[0] << 4) & 0x30) + ((srcData[1] >> 4) & 0x0f) ];
*dstData++ = kEncode64[ ((srcData[1] << 2) & 0x3c) + ((srcData[2] >> 6) & 0x03) ];
*dstData++ = kEncode64[ (srcData[2] & 0x3f) ];
srcData += 3;
break;
}
}
//============================================================================
unsigned Base64Decode (
unsigned srcChars,
const char srcData[],
unsigned dstChars,
byte * dstData
) {
ASSERT(srcData);
ASSERT(dstChars >= Base64DecodeSize(srcChars, srcData));
ASSERT(dstData);
const byte * dstBase = dstData;
const char * srcTerm = srcData + srcChars;
while (srcTerm - srcData >= 4) {
*dstData++ = (byte) (
(kDecode64[srcData[0]] << 2 & 0xfc)
+(kDecode64[srcData[1]] >> 4 & 0x03)
);
if (kDecode64[srcData[2]] == kTerminator)
break;
*dstData++ = (byte) (
(kDecode64[srcData[1]] << 4 & 0xf0)
+(kDecode64[srcData[2]] >> 2 & 0x0f)
);
if (kDecode64[srcData[3]] == kTerminator)
break;
*dstData++ = (byte) (
(kDecode64[srcData[2]] << 6 & 0xc0)
+(kDecode64[srcData[3]])
);
srcData += 4;
}
return dstData - dstBase;
}

44
Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbAllIncludes.h → Sources/Plasma/FeatureLib/pfConsoleCore/pfUtilBase64.h

@ -39,22 +39,42 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
Mead, WA 99021
*==LICENSE==*/
#ifndef pfUtilBase64_inc
#define pfUtilBase64_inc
#include "hsTypes.h"
/*****************************************************************************
*
* $/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbAllIncludes.h
*
* Base64 Codec API
*
***/
#ifndef PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETBASE_PRIVATE_PNNBALLINCLUDES_H
#define PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETBASE_PRIVATE_PNNBALLINCLUDES_H
const unsigned kBase64EncodeBlock = 4;
const unsigned kBase64EncodeMultiple = 3;
#include "pnProduct/pnProduct.h"
inline unsigned Base64EncodeSize (unsigned srcChars) {
return (srcChars + kBase64EncodeMultiple - 1) / kBase64EncodeMultiple
* kBase64EncodeBlock;
}
unsigned Base64Encode (
unsigned srcChars,
const byte srcData[],
unsigned dstChars,
char * dstData
);
#include "../pnNbConst.h"
#include "pnNbError.h"
#include "pnNbKeys.h"
#include "pnNbProtocol.h"
#include "pnNbSrvs.h"
inline unsigned Base64DecodeSize (unsigned srcChars, const char srcData[]) {
return srcChars * kBase64EncodeMultiple / kBase64EncodeBlock
- ((srcChars >= 1 && srcData[srcChars - 1] == '=') ? 1 : 0)
- ((srcChars >= 2 && srcData[srcChars - 2] == '=') ? 1 : 0);
}
unsigned Base64Decode (
unsigned srcChars,
const char srcData[],
unsigned dstChars,
byte * dstData
);
#endif // PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETBASE_PRIVATE_PNNBALLINCLUDES_H
#endif //pnUtilBase64_inc

26
Sources/Plasma/NucleusLib/pnNetBase/CMakeLists.txt

@ -2,26 +2,22 @@ include_directories("../../CoreLib")
include_directories("../../NucleusLib")
set(pnNetBase_HEADERS
Intern.h
Pch.h
pnNbConst.h
pnNbError.h
pnNbKeys.h
pnNbProtocol.h
pnNbSrvs.h
pnNetBase.h
)
set(pnNetBase_PRIVATE
Private/pnNbAllIncludes.h
Private/pnNbEchoMsgs.h
Private/pnNbError.h
Private/pnNbError.cpp
Private/pnNbProtocol.h
Private/pnNbProtocol.cpp
Private/pnNbSrvs.h
Private/pnNbSrvs.cpp
Private/pnNbKeys.h
Private/pnNbKeys.cpp
set(pnNetBase_SOURCES
pnNbError.cpp
pnNbKeys.cpp
pnNbProtocol.cpp
pnNbSrvs.cpp
)
add_library(pnNetBase STATIC ${pnNetBase_HEADERS} ${pnNetBase_PRIVATE})
add_library(pnNetBase STATIC ${pnNetBase_HEADERS} ${pnNetBase_SOURCES})
source_group("Header Files" FILES ${pnNetBase_HEADERS})
source_group("Private" FILES ${pnNetBase_PRIVATE})
source_group("Source Files" FILES ${pnNetBase_SOURCES})

54
Sources/Plasma/NucleusLib/pnNetBase/Intern.h

@ -1,54 +0,0 @@
/*==LICENSE==*
CyanWorlds.com Engine - MMOG client, server and tools
Copyright (C) 2011 Cyan Worlds, Inc.
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 3 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 <http://www.gnu.org/licenses/>.
Additional permissions under GNU GPL version 3 section 7
If you modify this Program, or any covered work, by linking or
combining it with any of RAD Game Tools Bink SDK, Autodesk 3ds Max SDK,
NVIDIA PhysX SDK, Microsoft DirectX SDK, OpenSSL library, Independent
JPEG Group JPEG library, Microsoft Windows Media SDK, or Apple QuickTime SDK
(or a modified version of those libraries),
containing parts covered by the terms of the Bink SDK EULA, 3ds Max EULA,
PhysX SDK EULA, DirectX SDK EULA, OpenSSL and SSLeay licenses, IJG
JPEG Library README, Windows Media SDK EULA, or QuickTime SDK EULA, the
licensors of this Program grant you additional
permission to convey the resulting work. Corresponding Source for a
non-source form of such a combination shall include the source code for
the parts of OpenSSL and IJG JPEG Library used as well as that of the covered
work.
You can contact Cyan Worlds, Inc. by email legal@cyan.com
or by snail mail at:
Cyan Worlds, Inc.
14617 N Newport Hwy
Mead, WA 99021
*==LICENSE==*/
/*****************************************************************************
*
* $/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/Intern.h
*
***/
#ifdef PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETBASE_INTERN_H
#error "Header $/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/Intern.h included more than once"
#endif
#define PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETBASE_INTERN_H
#include "Private/pnNbAllIncludes.h"

57
Sources/Plasma/NucleusLib/pnNetBase/Pch.h

@ -1,57 +0,0 @@
/*==LICENSE==*
CyanWorlds.com Engine - MMOG client, server and tools
Copyright (C) 2011 Cyan Worlds, Inc.
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 3 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 <http://www.gnu.org/licenses/>.
Additional permissions under GNU GPL version 3 section 7
If you modify this Program, or any covered work, by linking or
combining it with any of RAD Game Tools Bink SDK, Autodesk 3ds Max SDK,
NVIDIA PhysX SDK, Microsoft DirectX SDK, OpenSSL library, Independent
JPEG Group JPEG library, Microsoft Windows Media SDK, or Apple QuickTime SDK
(or a modified version of those libraries),
containing parts covered by the terms of the Bink SDK EULA, 3ds Max EULA,
PhysX SDK EULA, DirectX SDK EULA, OpenSSL and SSLeay licenses, IJG
JPEG Library README, Windows Media SDK EULA, or QuickTime SDK EULA, the
licensors of this Program grant you additional
permission to convey the resulting work. Corresponding Source for a
non-source form of such a combination shall include the source code for
the parts of OpenSSL and IJG JPEG Library used as well as that of the covered
work.
You can contact Cyan Worlds, Inc. by email legal@cyan.com
or by snail mail at:
Cyan Worlds, Inc.
14617 N Newport Hwy
Mead, WA 99021
*==LICENSE==*/
/*****************************************************************************
*
* $/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/Pch.h
*
***/
#ifdef PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETBASE_PCH_H
#error "Header $/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/Pch.h included more than once"
#endif
#define PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETBASE_PCH_H
#include "pnUtils/pnUtils.h"
#include "pnProduct/pnProduct.h"
#include "Private/pnNbAllIncludes.h"

41
Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbAges.cpp

@ -1,41 +0,0 @@
/*==LICENSE==*
CyanWorlds.com Engine - MMOG client, server and tools
Copyright (C) 2011 Cyan Worlds, Inc.
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 3 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 <http://www.gnu.org/licenses/>.
Additional permissions under GNU GPL version 3 section 7
If you modify this Program, or any covered work, by linking or
combining it with any of RAD Game Tools Bink SDK, Autodesk 3ds Max SDK,
NVIDIA PhysX SDK, Microsoft DirectX SDK, OpenSSL library, Independent
JPEG Group JPEG library, Microsoft Windows Media SDK, or Apple QuickTime SDK
(or a modified version of those libraries),
containing parts covered by the terms of the Bink SDK EULA, 3ds Max EULA,
PhysX SDK EULA, DirectX SDK EULA, OpenSSL and SSLeay licenses, IJG
JPEG Library README, Windows Media SDK EULA, or QuickTime SDK EULA, the
licensors of this Program grant you additional
permission to convey the resulting work. Corresponding Source for a
non-source form of such a combination shall include the source code for
the parts of OpenSSL and IJG JPEG Library used as well as that of the covered
work.
You can contact Cyan Worlds, Inc. by email legal@cyan.com
or by snail mail at:
Cyan Worlds, Inc.
14617 N Newport Hwy
Mead, WA 99021
*==LICENSE==*/

51
Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbAges.h

@ -1,51 +0,0 @@
/*==LICENSE==*
CyanWorlds.com Engine - MMOG client, server and tools
Copyright (C) 2011 Cyan Worlds, Inc.
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 3 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 <http://www.gnu.org/licenses/>.
Additional permissions under GNU GPL version 3 section 7
If you modify this Program, or any covered work, by linking or
combining it with any of RAD Game Tools Bink SDK, Autodesk 3ds Max SDK,
NVIDIA PhysX SDK, Microsoft DirectX SDK, OpenSSL library, Independent
JPEG Group JPEG library, Microsoft Windows Media SDK, or Apple QuickTime SDK
(or a modified version of those libraries),
containing parts covered by the terms of the Bink SDK EULA, 3ds Max EULA,
PhysX SDK EULA, DirectX SDK EULA, OpenSSL and SSLeay licenses, IJG
JPEG Library README, Windows Media SDK EULA, or QuickTime SDK EULA, the
licensors of this Program grant you additional
permission to convey the resulting work. Corresponding Source for a
non-source form of such a combination shall include the source code for
the parts of OpenSSL and IJG JPEG Library used as well as that of the covered
work.
You can contact Cyan Worlds, Inc. by email legal@cyan.com
or by snail mail at:
Cyan Worlds, Inc.
14617 N Newport Hwy
Mead, WA 99021
*==LICENSE==*/
/*****************************************************************************
*
* $/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbAges.h
*
***/
#ifdef PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETBASE_PRIVATE_PNNBAGES_H
#error "Header $/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbAges.h included more than once"
#endif
#define PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETBASE_PRIVATE_PNNBAGES_H

169
Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbEchoMsgs.h

@ -1,169 +0,0 @@
/*==LICENSE==*
CyanWorlds.com Engine - MMOG client, server and tools
Copyright (C) 2011 Cyan Worlds, Inc.
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 3 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 <http://www.gnu.org/licenses/>.
Additional permissions under GNU GPL version 3 section 7
If you modify this Program, or any covered work, by linking or
combining it with any of RAD Game Tools Bink SDK, Autodesk 3ds Max SDK,
NVIDIA PhysX SDK, Microsoft DirectX SDK, OpenSSL library, Independent
JPEG Group JPEG library, Microsoft Windows Media SDK, or Apple QuickTime SDK
(or a modified version of those libraries),
containing parts covered by the terms of the Bink SDK EULA, 3ds Max EULA,
PhysX SDK EULA, DirectX SDK EULA, OpenSSL and SSLeay licenses, IJG
JPEG Library README, Windows Media SDK EULA, or QuickTime SDK EULA, the
licensors of this Program grant you additional
permission to convey the resulting work. Corresponding Source for a
non-source form of such a combination shall include the source code for
the parts of OpenSSL and IJG JPEG Library used as well as that of the covered
work.
You can contact Cyan Worlds, Inc. by email legal@cyan.com
or by snail mail at:
Cyan Worlds, Inc.
14617 N Newport Hwy
Mead, WA 99021
*==LICENSE==*/
/*****************************************************************************
*
* $/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbEchoMsgs.h
*
***/
#ifdef PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETBASE_PRIVATE_PNNBECHOMSGS_H
#error "Header $/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbEchoMsgs.h included more than once"
#endif
#define PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETBASE_PRIVATE_PNNBECHOMSGS_H
//============================================================================
// Begin Echo server data types
//============================================================================
namespace Echo {
/*****************************************************************************
*
* @@@: Shared data types for echo server/client demo
*
***/
const unsigned kEchoMsgFlagBroadcast = 1<<0;
const unsigned kEchoMsgFlagEchoBack = 1<<1;
enum EEchoNetBufferType {
kEchoNetBufferInvalidType,
kEchoNetBufferMsg,
kNumEchoNetBufferTypes
};
enum EEchoMsgType {
kEchoInvalidMsgType,
kEchoJoinRequestMsg,
kEchoJoinReplyMsg,
kEchoPlayerJoinedMsg,
kEchoPlayerLeftMsg,
kEchoChatMsg,
kEchoGameDataBufferMsg,
kNumEchoMsgTypes
};
COMPILER_ASSERT(kNumEchoMsgTypes < (byte)-1);
//============================================================================
// Begin packed data structures
//============================================================================
#include <pshpack1.h>
struct EchoMsg {
EchoMsg (const EEchoMsgType & type, unsigned flags = 0)
: type((byte)type)
, flags(flags)
{ }
byte type;
dword flags;
};
struct EchoJoinRequestMsg : EchoMsg {
EchoJoinRequestMsg ()
: EchoMsg(kEchoJoinRequestMsg)
{ }
wchar playerName[64];
};
struct EchoJoinReplyMsg : EchoMsg {
EchoJoinReplyMsg ()
: EchoMsg(kEchoJoinReplyMsg)
{ }
dword playerId;
};
struct EchoPlayerJoinedMsg : EchoMsg {
EchoPlayerJoinedMsg ()
: EchoMsg(kEchoPlayerJoinedMsg, kEchoMsgFlagBroadcast)
{ }
dword playerId;
wchar playerName[64];
};
struct EchoPlayerLeftMsg : EchoMsg {
EchoPlayerLeftMsg ()
: EchoMsg(kEchoPlayerLeftMsg, kEchoMsgFlagBroadcast)
{ }
dword playerId;
};
struct EchoChatMsg : EchoMsg {
EchoChatMsg ()
: EchoMsg(kEchoChatMsg, kEchoMsgFlagBroadcast|kEchoMsgFlagEchoBack)
{ }
dword fromPlayerId;
dword msgChars;
wchar msgBuffer[1]; // [msgChars], actually
// no more fields after variable length allocation
};
struct EchoGameDataBufferMsg : EchoMsg {
EchoGameDataBufferMsg ()
: EchoMsg(kEchoGameDataBufferMsg, kEchoMsgFlagBroadcast|kEchoMsgFlagEchoBack)
{ }
dword fromPlayerId;
dword bufferBytes;
byte bufferData[1]; // [bufferBytes], actually
// no more fields after variable length allocation
};
//============================================================================
// End packed data structures
//============================================================================
#include <poppack.h>
//============================================================================
// End Echo server data types
//============================================================================
} using namespace Echo;

14
Sources/Plasma/NucleusLib/pnNetBase/pnNbConst.h

@ -39,17 +39,9 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
Mead, WA 99021
*==LICENSE==*/
/*****************************************************************************
*
* $/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/pnNbConst.h
*
***/
#ifdef PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETBASE_PNNBCONST_H
#error "Header $/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/pnNbConst.h included more than once"
#endif
#define PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETBASE_PNNBCONST_H
#ifndef pnNbConst_inc
#define pnNbConst_inc
/*****************************************************************************
*
@ -166,3 +158,5 @@ enum EScoreTimePeriods {
kScoreTimePeriodMonth,
kScoreTimePeriodDay
};
#endif //pnNbConst_inc

114
Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbError.cpp → Sources/Plasma/NucleusLib/pnNetBase/pnNbError.cpp

@ -39,14 +39,8 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
Mead, WA 99021
*==LICENSE==*/
/*****************************************************************************
*
* $/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbError.cpp
*
***/
#include "../Pch.h"
#pragma hdrstop
#include "pnNbError.h"
/*****************************************************************************
@ -60,7 +54,7 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
// in release clients because they are not localized
const wchar * NetErrorToString (ENetError code) {
static wchar * s_errors[] = {
static const wchar* s_errors[] = {
L"Success", // kNetSuccess
L"Internal Error", // kNetErrInternalError
L"No Response From Server", // kNetErrTimeout
@ -127,66 +121,64 @@ const wchar * NetErrorToString (ENetError code) {
// in release clients because they are not localized
const wchar * NetErrorAsString (ENetError code) {
#define ERROR_STRING(e) L#e
static wchar * s_errors[] = {
ERROR_STRING(kNetSuccess),
ERROR_STRING(kNetErrInternalError),
ERROR_STRING(kNetErrTimeout),
ERROR_STRING(kNetErrBadServerData),
ERROR_STRING(kNetErrAgeNotFound),
ERROR_STRING(kNetErrConnectFailed),
ERROR_STRING(kNetErrDisconnected),
ERROR_STRING(kNetErrFileNotFound),
ERROR_STRING(kNetErrOldBuildId),
ERROR_STRING(kNetErrRemoteShutdown),
ERROR_STRING(kNetErrTimeoutOdbc),
ERROR_STRING(kNetErrAccountAlreadyExists),
ERROR_STRING(kNetErrPlayerAlreadyExists),
ERROR_STRING(kNetErrAccountNotFound),
ERROR_STRING(kNetErrPlayerNotFound),
ERROR_STRING(kNetErrInvalidParameter),
ERROR_STRING(kNetErrNameLookupFailed),
ERROR_STRING(kNetErrLoggedInElsewhere),
ERROR_STRING(kNetErrVaultNodeNotFound),
ERROR_STRING(kNetErrMaxPlayersOnAcct),
ERROR_STRING(kNetErrAuthenticationFailed),
ERROR_STRING(kNetErrStateObjectNotFound),
ERROR_STRING(kNetErrLoginDenied),
ERROR_STRING(kNetErrCircularReference),
ERROR_STRING(kNetErrAccountNotActivated),
ERROR_STRING(kNetErrKeyAlreadyUsed),
ERROR_STRING(kNetErrKeyNotFound),
ERROR_STRING(kNetErrActivationCodeNotFound),
ERROR_STRING(kNetErrPlayerNameInvalid),
ERROR_STRING(kNetErrNotSupported),
ERROR_STRING(kNetErrServiceForbidden),
ERROR_STRING(kNetErrAuthTokenTooOld),
ERROR_STRING(kNetErrMustUseGameTapClient),
ERROR_STRING(kNetErrTooManyFailedLogins),
ERROR_STRING(kNetErrGameTapConnectionFailed),
ERROR_STRING(kNetErrGTTooManyAuthOptions),
ERROR_STRING(kNetErrGTMissingParameter),
ERROR_STRING(kNetErrGTServerError),
ERROR_STRING(kNetErrAccountBanned),
ERROR_STRING(kNetErrKickedByCCR),
ERROR_STRING(kNetErrScoreWrongType),
ERROR_STRING(kNetErrScoreNotEnoughPoints),
ERROR_STRING(kNetErrScoreAlreadyExists),
ERROR_STRING(kNetErrScoreNoDataFound),
ERROR_STRING(kNetErrInviteNoMatchingPlayer),
ERROR_STRING(kNetErrInviteTooManyHoods),
ERROR_STRING(kNetErrNeedToPay),
ERROR_STRING(kNetErrServerBusy),
ERROR_STRING(kNetErrVaultNodeAccessViolation),
static const wchar* s_errors[] = {
L"kNetSuccess",
L"kNetErrInternalError",
L"kNetErrTimeout",
L"kNetErrBadServerData",
L"kNetErrAgeNotFound",
L"kNetErrConnectFailed",
L"kNetErrDisconnected",
L"kNetErrFileNotFound",
L"kNetErrOldBuildId",
L"kNetErrRemoteShutdown",
L"kNetErrTimeoutOdbc",
L"kNetErrAccountAlreadyExists",
L"kNetErrPlayerAlreadyExists",
L"kNetErrAccountNotFound",
L"kNetErrPlayerNotFound",
L"kNetErrInvalidParameter",
L"kNetErrNameLookupFailed",
L"kNetErrLoggedInElsewhere",
L"kNetErrVaultNodeNotFound",
L"kNetErrMaxPlayersOnAcct",
L"kNetErrAuthenticationFailed",
L"kNetErrStateObjectNotFound",
L"kNetErrLoginDenied",
L"kNetErrCircularReference",
L"kNetErrAccountNotActivated",
L"kNetErrKeyAlreadyUsed",
L"kNetErrKeyNotFound",
L"kNetErrActivationCodeNotFound",
L"kNetErrPlayerNameInvalid",
L"kNetErrNotSupported",
L"kNetErrServiceForbidden",
L"kNetErrAuthTokenTooOld",
L"kNetErrMustUseGameTapClient",
L"kNetErrTooManyFailedLogins",
L"kNetErrGameTapConnectionFailed",
L"kNetErrGTTooManyAuthOptions",
L"kNetErrGTMissingParameter",
L"kNetErrGTServerError",
L"kNetErrAccountBanned",
L"kNetErrKickedByCCR",
L"kNetErrScoreWrongType",
L"kNetErrScoreNotEnoughPoints",
L"kNetErrScoreAlreadyExists",
L"kNetErrScoreNoDataFound",
L"kNetErrInviteNoMatchingPlayer",
L"kNetErrInviteTooManyHoods",
L"kNetErrNeedToPay",
L"kNetErrServerBusy",
L"kNetErrVaultNodeAccessViolation",
};
COMPILER_ASSERT(arrsize(s_errors) == kNumNetErrors);
if ((unsigned)code >= arrsize(s_errors)) {
if (code == kNetPending)
return ERROR_STRING(kNetPending);
return L"kNetPending";
return L"ErrUnknown";
}
#undef ERROR_STRING
return s_errors[code];
}

15
Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbError.h → Sources/Plasma/NucleusLib/pnNetBase/pnNbError.h

@ -39,17 +39,12 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
Mead, WA 99021
*==LICENSE==*/
/*****************************************************************************
*
* $/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbError.h
*
***/
#ifdef PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETBASE_PRIVATE_PNNBERROR_H
#error "Header $/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbError.h included more than once"
#endif
#define PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETBASE_PRIVATE_PNNBERROR_H
#ifndef pnNbError_inc
#define pnNbError_inc
#include "hsTypes.h"
#include "pnNbConst.h"
/*****************************************************************************
*
@ -130,3 +125,5 @@ enum ENetError {
const wchar * NetErrorToString (ENetError code); // user-friendly string
const wchar * NetErrorAsString (ENetError code); // string version of enum identifier
#endif // pnNbError_inc

8
Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbKeys.cpp → Sources/Plasma/NucleusLib/pnNetBase/pnNbKeys.cpp

@ -39,14 +39,8 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
Mead, WA 99021
*==LICENSE==*/
/*****************************************************************************
*
* $/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbKeys.cpp
*
***/
#include "../Pch.h"
#pragma hdrstop
#include "pnNbKeys.h"
// Auth Server
byte kAuthDhNData[kNetDiffieHellmanKeyBits / 8] = {0};

16
Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbKeys.h → Sources/Plasma/NucleusLib/pnNetBase/pnNbKeys.h

@ -39,16 +39,12 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
Mead, WA 99021
*==LICENSE==*/
/*****************************************************************************
*
* $/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbKeys.h
*
***/
#ifdef PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETBASE_PRIVATE_PNNBKEYS_H
#error "Header $/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbKeys.h included more than once"
#endif
#define PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETBASE_PRIVATE_PNNBKEYS_H
#ifndef pnNbKeys_inc
#define pnNbKeys_inc
#include "hsTypes.h"
#include "pnNbConst.h"
// Auth Server
static const unsigned kAuthDhGValue = 41;
@ -69,3 +65,5 @@ extern byte kGameDhXData[kNetDiffieHellmanKeyBits / 8];
static const unsigned kGateKeeperDhGValue = 4;
extern byte kGateKeeperDhNData[kNetDiffieHellmanKeyBits / 8];
extern byte kGateKeeperDhXData[kNetDiffieHellmanKeyBits / 8];
#endif // pnNbKeys_inc

40
Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbProtocol.cpp → Sources/Plasma/NucleusLib/pnNetBase/pnNbProtocol.cpp

@ -39,14 +39,8 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
Mead, WA 99021
*==LICENSE==*/
/*****************************************************************************
*
* $/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbProtocol.cpp
*
***/
#include "../Pch.h"
#pragma hdrstop
#include "pnNbProtocol.h"
/*****************************************************************************
@ -58,31 +52,29 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
//============================================================================
const wchar * NetProtocolToString (ENetProtocol protocol) {
#define PROTOCOL_STRING(p) { p, L#p }
static struct { ENetProtocol protocol; const wchar *name; } s_protocols[] = {
PROTOCOL_STRING(kNetProtocolNil),
{ kNetProtocolNil, L"kNetProtocolNil" },
// For test applications
PROTOCOL_STRING(kNetProtocolDebug),
{ kNetProtocolDebug, L"kNetProtocolDebug" },
// Client connections
{ kNetProtocolCli2Csr, L"GateKeeper Server" },
{ kNetProtocolCli2Csr, L"Csr Server" },
{ kNetProtocolCli2Auth, L"Auth Server" },
{ kNetProtocolCli2Game, L"Game Server" },
{ kNetProtocolCli2File, L"File Server" },
PROTOCOL_STRING(kNetProtocolCli2Unused_01),
{ kNetProtocolCli2Csr, L"GateKeeper Server" },
{ kNetProtocolCli2Csr, L"Csr Server" },
{ kNetProtocolCli2Auth, L"Auth Server" },
{ kNetProtocolCli2Game, L"Game Server" },
{ kNetProtocolCli2File, L"File Server" },
{ kNetProtocolCli2Unused_01, L"kNetProtocolCli2Unused_01" },
// Server connections
PROTOCOL_STRING(kNetProtocolSrvConn),
PROTOCOL_STRING(kNetProtocolSrv2Mcp),
PROTOCOL_STRING(kNetProtocolSrv2Vault),
PROTOCOL_STRING(kNetProtocolSrv2Db),
PROTOCOL_STRING(kNetProtocolSrv2State),
PROTOCOL_STRING(kNetProtocolSrv2Log),
PROTOCOL_STRING(kNetProtocolSrv2Score),
{ kNetProtocolSrvConn, L"kNetProtocolSrvConn" },
{ kNetProtocolSrv2Mcp, L"kNetProtocolSrv2Mcp" },
{ kNetProtocolSrv2Vault, L"kNetProtocolSrv2Vault" },
{ kNetProtocolSrv2Db, L"kNetProtocolSrv2Db" },
{ kNetProtocolSrv2State, L"kNetProtocolSrv2State" },
{ kNetProtocolSrv2Log, L"kNetProtocolSrv2Log" },
{ kNetProtocolSrv2Score, L"kNetProtocolSrv2Score" },
};
#undef PROTOCOL_STRING
for (unsigned i = 0; i < arrsize(s_protocols); ++i)
if (s_protocols[i].protocol == protocol)

15
Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbProtocol.h → Sources/Plasma/NucleusLib/pnNetBase/pnNbProtocol.h

@ -39,17 +39,12 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
Mead, WA 99021
*==LICENSE==*/
/*****************************************************************************
*
* $/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbProtocol.h
*
***/
#ifdef PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETBASE_PRIVATE_PNNBPROTOCOL_H
#error "Header $/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbProtocol.h included more than once"
#endif
#define PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETBASE_PRIVATE_PNNBPROTOCOL_H
#ifndef pnNbProtocol_inc
#define pnNbProtocol_inc
#include "hsTypes.h"
#include "pnNbConst.h"
/*****************************************************************************
*
@ -90,3 +85,5 @@ enum ENetProtocol {
// cannot enforce this since the protocol values are not
// numerically sequential.
const wchar * NetProtocolToString (ENetProtocol protocol);
#endif // pnNbProtocol_inc

26
Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbSrvs.cpp → Sources/Plasma/NucleusLib/pnNetBase/pnNbSrvs.cpp

@ -39,14 +39,12 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
Mead, WA 99021
*==LICENSE==*/
/*****************************************************************************
*
* $/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbSrvs.cpp
*
***/
#include "../Pch.h"
#pragma hdrstop
#include "pnNbSrvs.h"
#if !HS_BUILD_FOR_WIN32
# include <wchar.h>
#endif
/*****************************************************************************
@ -97,7 +95,7 @@ unsigned GetAuthSrvHostnames (const wchar *** addrs) {
//============================================================================
void SetAuthSrvHostname (const wchar addr[]) {
StrCopy(s_authAddrConsole, addr, arrsize(s_authAddrConsole));
wcsncpy(s_authAddrConsole, addr, arrsize(s_authAddrConsole));
}
//============================================================================
@ -112,7 +110,7 @@ unsigned GetFileSrvHostnames (const wchar *** addrs) {
//============================================================================
void SetFileSrvHostname (const wchar addr[]) {
StrCopy(s_fileAddrConsole, addr, arrsize(s_fileAddrConsole));
wcsncpy(s_fileAddrConsole, addr, arrsize(s_fileAddrConsole));
}
//============================================================================
@ -127,7 +125,7 @@ unsigned GetCsrSrvHostnames (const wchar *** addrs) {
//============================================================================
void SetCsrSrvHostname (const wchar addr[]) {
StrCopy(s_csrAddrConsole, addr, arrsize(s_csrAddrConsole));
wcsncpy(s_csrAddrConsole, addr, arrsize(s_csrAddrConsole));
}
@ -142,7 +140,7 @@ unsigned GetGateKeeperSrvHostnames (const wchar *** addrs) {
//============================================================================
void SetGateKeeperSrvHostname (const wchar addr[]) {
StrCopy(s_gateKeeperAddrConsole, addr, arrsize(s_gateKeeperAddrConsole));
wcsncpy(s_gateKeeperAddrConsole, addr, arrsize(s_gateKeeperAddrConsole));
}
@ -160,7 +158,7 @@ const wchar *GetServerStatusUrl () {
//============================================================================
void SetServerStatusUrl (const wchar url[]) {
StrCopy(s_serverStatusUrl, url, arrsize(s_serverStatusUrl));
wcsncpy(s_serverStatusUrl, url, arrsize(s_serverStatusUrl));
}
//============================================================================
@ -170,7 +168,7 @@ const wchar *GetServerSignupUrl () {
//============================================================================
void SetServerSignupUrl (const wchar url[]) {
StrCopy(s_serverSignupUrl, url, arrsize(s_serverSignupUrl));
wcsncpy(s_serverSignupUrl, url, arrsize(s_serverSignupUrl));
}
//============================================================================
@ -180,5 +178,5 @@ const wchar *GetServerDisplayName () {
//============================================================================
void SetServerDisplayName (const wchar name[]) {
StrCopy(s_serverName, name, arrsize(s_serverName));
wcsncpy(s_serverName, name, arrsize(s_serverName));
}

15
Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbSrvs.h → Sources/Plasma/NucleusLib/pnNetBase/pnNbSrvs.h

@ -39,17 +39,12 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
Mead, WA 99021
*==LICENSE==*/
/*****************************************************************************
*
* $/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbSrvs.h
*
***/
#ifdef PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETBASE_PRIVATE_PNNBSRVS_H
#error "Header $/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/Private/pnNbSrvs.h included more than once"
#endif
#define PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETBASE_PRIVATE_PNNBSRVS_H
#ifndef pnNbSrvs_inc
#define pnNbSrvs_inc
#include "hsTypes.h"
#include "pnNbConst.h"
/*****************************************************************************
*
@ -109,3 +104,5 @@ void SetServerSignupUrl (const wchar url[]);
const wchar *GetServerDisplayName ();
void SetServerDisplayName (const wchar name[]);
#endif // pnNbSrvs_inc

25
Sources/Plasma/NucleusLib/pnNetBase/pnNetBase.h

@ -39,23 +39,14 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
Mead, WA 99021
*==LICENSE==*/
/*****************************************************************************
*
* $/Plasma20/Sources/Plasma/NucleusLib/pnNetBase/pnNetBase.h
*
***/
#ifndef PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETBASE_PNNETBASE_H
#define PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETBASE_PNNETBASE_H
#ifndef pnNetBase_inc
#define pnNetBase_inc
#include "pnNbConst.h"
#include "pnNbError.h"
#include "pnNbKeys.h"
#include "pnNbProtocol.h"
#include "pnNbSrvs.h"
/*****************************************************************************
*
* Module includes
*
***/
#include "Private/pnNbAllIncludes.h"
#endif // PLASMA20_SOURCES_PLASMA_NUCLEUSLIB_PNNETBASE_PNNETBASE_H
#endif // pnNetBase_inc

Loading…
Cancel
Save