diff --git a/src/api/Forwards.h b/src/api/Forwards.h deleted file mode 100644 index 8c50d1ff..00000000 --- a/src/api/Forwards.h +++ /dev/null @@ -1,89 +0,0 @@ -#ifndef _FORWARDS_H -#define _FORWARDS_H - -#include - -namespace Sapphire -{ - class Cell; - class Zone; - class Item; - class ItemContainer; - class Inventory; - class Session; - class ZonePosition; - using ZonePtr = std::shared_ptr< Zone >; - using ItemPtr = std::shared_ptr< Item >; - using ItemContainerPtr = std::shared_ptr< ItemContainer >; - using InventoryPtr = std::shared_ptr< Inventory >; - using SessionPtr = std::shared_ptr< Session >; - using ZonePositionPtr = std::shared_ptr< ZonePosition >; - - namespace StatusEffect - { - class StatusEffect; - class StatusEffectContainer; - using StatusEffectPtr = std::shared_ptr< StatusEffect >; - using StatusEffectContainerPtr = std::shared_ptr< StatusEffectContainer >; - } - - namespace Entity - { - class Chara; - class Player; - class BattleNpc; - using ActorPtr = std::shared_ptr< Chara >; - using PlayerPtr = std::shared_ptr< Player >; - using BattleNpcPtr = std::shared_ptr< BattleNpc >; - } - - namespace Event - { - class EventHandler; - using EventPtr = std::shared_ptr< EventHandler >; - } - - namespace Action - { - class Action; - class ActionTeleport; - class EventAction; - using ActionPtr = std::shared_ptr< Action >; - using ActionTeleportPtr = std::shared_ptr< ActionTeleport >; - using EventActionPtr = std::shared_ptr< EventAction >; - } - - namespace Network - { - class Hive; - class Acceptor; - class Connection; - class WorldConnection; - class SessionConnection; - class ZoneConnection; - using HivePtr = std::shared_ptr< Hive >; - using AcceptorPtr = std::shared_ptr< Acceptor >; - using ConnectionPtr = std::shared_ptr< Connection >; - using WorldConnectionPtr = std::shared_ptr< WorldConnection >; - using ZoneConnectionPtr = std::shared_ptr< ZoneConnection >; - using SessionConnectionPtr = std::shared_ptr< SessionConnection >; - - namespace Packets - { - class GamePacket; - using GamePacketPtr = std::shared_ptr< GamePacket >; - } - - } - - namespace Scripting - { - using EventReturnCallback = std::function< void( Entity::Player&, uint32_t, uint16_t, uint16_t, uint16_t, - uint16_t ) >; - } - - using ActionCallback = std::function< void( Entity::Player&, uint32_t, uint64_t ) >; - -} - -#endif diff --git a/src/api/LoginSession.cpp b/src/api/LoginSession.cpp deleted file mode 100644 index 9b947d19..00000000 --- a/src/api/LoginSession.cpp +++ /dev/null @@ -1,14 +0,0 @@ -#include "LoginSession.h" - -namespace Sapphire { - LoginSession::LoginSession( void ) - { - //setSocket(NULL); - } - - LoginSession::~LoginSession( void ) - { - - } -} - diff --git a/src/api/LoginSession.h b/src/api/LoginSession.h deleted file mode 100644 index 1811bf09..00000000 --- a/src/api/LoginSession.h +++ /dev/null @@ -1,57 +0,0 @@ -#pragma once - -#ifndef _CLoginSession_H_ -#define _CLoginSession_H_ - -#include -#include -#include - -namespace Sapphire -{ - - class LoginSession - { - - private: - uint32_t m_ip; - uint32_t m_accountId; - uint8_t m_sessionId[56]; - - public: - std::string newCharName; - - LoginSession( void ); - - ~LoginSession( void ); - - uint32_t getIp() - { - return m_ip; - } - - void setSessionId( uint8_t* sessionId ) - { - memcpy( m_sessionId, sessionId, 56 ); - } - - void setIp( uint32_t ip ) - { - m_ip = ip; - } - - uint32_t getAccountId() - { - return m_accountId; - } - - void setAccountId( uint32_t id ) - { - m_accountId = id; - } - - }; - -} - -#endif diff --git a/src/api/PlayerMinimal.cpp b/src/api/PlayerMinimal.cpp index 70aeca40..b95a3da1 100644 --- a/src/api/PlayerMinimal.cpp +++ b/src/api/PlayerMinimal.cpp @@ -8,7 +8,7 @@ extern Sapphire::Data::ExdDataGenerated g_exdDataGen; -namespace Sapphire { +namespace Sapphire::Api { using namespace Common; diff --git a/src/api/PlayerMinimal.h b/src/api/PlayerMinimal.h index dda3202e..b137af20 100644 --- a/src/api/PlayerMinimal.h +++ b/src/api/PlayerMinimal.h @@ -5,7 +5,7 @@ #include #include -namespace Sapphire +namespace Sapphire::Api { class PlayerMinimal diff --git a/src/api/SapphireAPI.cpp b/src/api/SapphireApi.cpp similarity index 84% rename from src/api/SapphireAPI.cpp rename to src/api/SapphireApi.cpp index f07c7ce5..f12da082 100644 --- a/src/api/SapphireAPI.cpp +++ b/src/api/SapphireApi.cpp @@ -1,4 +1,4 @@ -#include "SapphireAPI.h" +#include "SapphireApi.h" #include #include "Session.h" #include "PlayerMinimal.h" @@ -10,7 +10,9 @@ #include -bool Sapphire::Network::SapphireAPI::login( const std::string& username, const std::string& pass, std::string& sId ) +using namespace Sapphire::Api; + +bool SapphireApi::login( const std::string& username, const std::string& pass, std::string& sId ) { std::string query = "SELECT account_id FROM accounts WHERE account_name = '" + username + "' AND account_pass = '" + pass + "';"; @@ -53,7 +55,7 @@ bool Sapphire::Network::SapphireAPI::login( const std::string& username, const s } -bool Sapphire::Network::SapphireAPI::insertSession( const uint32_t accountId, std::string& sId ) +bool SapphireApi::insertSession( const uint32_t accountId, std::string& sId ) { // create session for the new sessionid and store to sessionlist auto pSession = std::make_shared< Session >(); @@ -66,7 +68,7 @@ bool Sapphire::Network::SapphireAPI::insertSession( const uint32_t accountId, st } -bool Sapphire::Network::SapphireAPI::createAccount( const std::string& username, const std::string& pass, std::string& sId ) +bool SapphireApi::createAccount( const std::string& username, const std::string& pass, std::string& sId ) { // get account from login name auto pQR = g_charaDb.query( "SELECT account_id FROM accounts WHERE account_name = '" + username + "';" ); @@ -96,11 +98,11 @@ bool Sapphire::Network::SapphireAPI::createAccount( const std::string& username, } -int Sapphire::Network::SapphireAPI::createCharacter( const uint32_t accountId, const std::string& name, - const std::string& infoJson, - const uint32_t gmRank ) +int SapphireApi::createCharacter( const uint32_t accountId, const std::string& name, + const std::string& infoJson, + const uint32_t gmRank ) { - Sapphire::PlayerMinimal newPlayer; + Api::PlayerMinimal newPlayer; newPlayer.setAccountId( accountId ); newPlayer.setId( getNextCharId() ); @@ -169,7 +171,7 @@ int Sapphire::Network::SapphireAPI::createCharacter( const uint32_t accountId, c return newPlayer.getAccountId(); } -void Sapphire::Network::SapphireAPI::deleteCharacter( std::string name, const uint32_t accountId ) +void SapphireApi::deleteCharacter( std::string name, const uint32_t accountId ) { PlayerMinimal deletePlayer; auto charList = getCharList( accountId ); @@ -199,17 +201,17 @@ void Sapphire::Network::SapphireAPI::deleteCharacter( std::string name, const ui g_charaDb.execute( "DELETE FROM charaquest WHERE CharacterId LIKE '" + std::to_string( id ) + "';" ); } -std::vector< Sapphire::PlayerMinimal > Sapphire::Network::SapphireAPI::getCharList( uint32_t accountId ) +std::vector< PlayerMinimal > SapphireApi::getCharList( uint32_t accountId ) { - std::vector< Sapphire::PlayerMinimal > charList; + std::vector< Api::PlayerMinimal > charList; auto pQR = g_charaDb.query( "SELECT CharacterId, ContentId FROM charainfo WHERE AccountId = " + std::to_string( accountId ) + ";" ); while( pQR->next() ) { - Sapphire::PlayerMinimal player; + Api::PlayerMinimal player; uint32_t charId = pQR->getUInt( 1 ); @@ -220,7 +222,7 @@ std::vector< Sapphire::PlayerMinimal > Sapphire::Network::SapphireAPI::getCharLi return charList; } -bool Sapphire::Network::SapphireAPI::checkNameTaken( std::string name ) +bool SapphireApi::checkNameTaken( std::string name ) { g_charaDb.escapeString( name ); @@ -234,7 +236,7 @@ bool Sapphire::Network::SapphireAPI::checkNameTaken( std::string name ) return true; } -uint32_t Sapphire::Network::SapphireAPI::getNextCharId() +uint32_t SapphireApi::getNextCharId() { uint32_t charId = 0; @@ -250,7 +252,7 @@ uint32_t Sapphire::Network::SapphireAPI::getNextCharId() return charId; } -uint64_t Sapphire::Network::SapphireAPI::getNextContentId() +uint64_t SapphireApi::getNextContentId() { uint64_t contentId = 0; @@ -266,7 +268,7 @@ uint64_t Sapphire::Network::SapphireAPI::getNextContentId() return contentId; } -int Sapphire::Network::SapphireAPI::checkSession( const std::string& sId ) +int SapphireApi::checkSession( const std::string& sId ) { auto it = m_sessionMap.find( sId ); @@ -277,7 +279,7 @@ int Sapphire::Network::SapphireAPI::checkSession( const std::string& sId ) } -bool Sapphire::Network::SapphireAPI::removeSession( const std::string& sId ) +bool SapphireApi::removeSession( const std::string& sId ) { auto it = m_sessionMap.find( sId ); diff --git a/src/api/SapphireAPI.h b/src/api/SapphireApi.h similarity index 82% rename from src/api/SapphireAPI.h rename to src/api/SapphireApi.h index 7b2bbd4c..c11b3c89 100644 --- a/src/api/SapphireAPI.h +++ b/src/api/SapphireApi.h @@ -7,19 +7,15 @@ #include #include "PlayerMinimal.h" -namespace Sapphire +namespace Sapphire::Api { class Session; -} -namespace Sapphire::Network -{ - - class SapphireAPI + class SapphireApi { public: - SapphireAPI() = default; - ~SapphireAPI() = default; + SapphireApi() = default; + ~SapphireApi() = default; using SessionMap = std::map< std::string, std::shared_ptr< Session > >; @@ -34,7 +30,7 @@ namespace Sapphire::Network bool insertSession( uint32_t accountId, std::string& sId ); - std::vector< Sapphire::PlayerMinimal > getCharList( uint32_t accountId ); + std::vector< Api::PlayerMinimal > getCharList( uint32_t accountId ); bool checkNameTaken( std::string name ); diff --git a/src/api/Session.cpp b/src/api/Session.cpp index fc40d265..c5030b2f 100644 --- a/src/api/Session.cpp +++ b/src/api/Session.cpp @@ -1,6 +1,7 @@ #include "Session.h" -namespace Sapphire { +using namespace Sapphire::Api; + Session::Session() { @@ -35,4 +36,3 @@ void Session::setAccountId( uint32_t id ) { m_accountId = id; } -} diff --git a/src/api/Session.h b/src/api/Session.h index 5d9efc41..7bb0d71b 100644 --- a/src/api/Session.h +++ b/src/api/Session.h @@ -5,7 +5,7 @@ #include #include -namespace Sapphire +namespace Sapphire::Api { class Session diff --git a/src/api/main.cpp b/src/api/main.cpp index fd68af4f..5d661387 100644 --- a/src/api/main.cpp +++ b/src/api/main.cpp @@ -29,8 +29,7 @@ #include #include -#include "Forwards.h" -#include "SapphireAPI.h" +#include "SapphireApi.h" #include @@ -38,7 +37,7 @@ Sapphire::Common::Util::CrashHandler crashHandler; Sapphire::Db::DbWorkerPool< Sapphire::Db::ZoneDbConnection > g_charaDb; Sapphire::Data::ExdDataGenerated g_exdDataGen; -Sapphire::Network::SapphireAPI g_sapphireAPI; +Sapphire::Api::SapphireApi g_sapphireAPI; namespace fs = std::experimental::filesystem; @@ -59,7 +58,7 @@ Sapphire::Common::Config::ApiConfig m_config; void reloadConfig() { - auto pConfig = std::make_shared< Sapphire::ConfigMgr >(); + auto pConfig = std::make_shared< Sapphire::Common::ConfigMgr >(); Logger::info( "Loading config " + configPath ); @@ -106,7 +105,7 @@ bool loadSettings( int32_t argc, char* argv[] ) try { - arg = Sapphire::Util::toLowerCopy( std::string( args[ i ] ) ); + arg = Common::Util::toLowerCopy( std::string( args[ i ] ) ); val = std::string( args[ i + 1 ] ); // trim '-' from start of arg @@ -336,7 +335,7 @@ void createCharacter( shared_ptr< HttpServer::Response > response, shared_ptr< H std::string name = json["name"]; std::string infoJson = json["infoJson"]; - std::string finalJson = Sapphire::Util::base64Decode( infoJson ); + std::string finalJson = Common::Util::base64Decode( infoJson ); // reloadConfig(); diff --git a/src/api/server_http.hpp b/src/api/server_http.hpp index 7c831e69..8a6d2226 100644 --- a/src/api/server_http.hpp +++ b/src/api/server_http.hpp @@ -18,7 +18,7 @@ class case_insensitive_equals { public: bool operator()(const std::string &key1, const std::string &key2) const { - return Sapphire::Util::toLowerCopy( key1 ) == Sapphire::Util::toLowerCopy( key2 ); + return Sapphire::Common::Util::toLowerCopy( key1 ) == Sapphire::Common::Util::toLowerCopy( key2 ); } }; class case_insensitive_hash { @@ -27,7 +27,7 @@ public: { std::size_t seed=0; for( auto &c : key ) - Sapphire::Util::hashCombine< char >( seed, std::tolower( c ) ); + Sapphire::Common::Util::hashCombine< char >( seed, std::tolower( c ) ); return seed; } }; @@ -388,7 +388,7 @@ namespace SimpleWeb { auto range=request->header.equal_range("Connection"); for(auto it=range.first;it!=range.second;it++) { - if( Sapphire::Util::toLowerCopy( it->second ) == "close" ) + if( Sapphire::Common::Util::toLowerCopy( it->second ) == "close" ) return; } if(http_version>1.05) diff --git a/src/common/Config/ConfigMgr.cpp b/src/common/Config/ConfigMgr.cpp index a4fa1bdc..8b8823f2 100644 --- a/src/common/Config/ConfigMgr.cpp +++ b/src/common/Config/ConfigMgr.cpp @@ -5,12 +5,15 @@ namespace fs = std::experimental::filesystem; +using namespace Sapphire; +using namespace Sapphire::Common; + /** * Loads an ini file and parses it * @param configName the name of ini file relative to m_configFolderRoot to load alongside global.ini * @return true if loading was successful */ -bool Sapphire::ConfigMgr::loadConfig( const std::string& configName ) +bool ConfigMgr::loadConfig( const std::string& configName ) { // get global config auto configFile = fs::path( fs::path( m_configFolderRoot ) / configName ); @@ -29,7 +32,7 @@ bool Sapphire::ConfigMgr::loadConfig( const std::string& configName ) return true; } -bool Sapphire::ConfigMgr::loadGlobalConfig( Common::Config::GlobalConfig& config, const std::string& configName ) +bool ConfigMgr::loadGlobalConfig( Common::Config::GlobalConfig& config, const std::string& configName ) { auto configFile = fs::path( fs::path( m_configFolderRoot ) / configName ); @@ -71,7 +74,7 @@ bool Sapphire::ConfigMgr::loadGlobalConfig( Common::Config::GlobalConfig& config return true; } -bool Sapphire::ConfigMgr::copyDefaultConfig( const std::string& configName ) +bool ConfigMgr::copyDefaultConfig( const std::string& configName ) { fs::path configPath( m_configFolderRoot ); configPath /= configName; diff --git a/src/common/Config/ConfigMgr.h b/src/common/Config/ConfigMgr.h index 919762c2..b78da899 100644 --- a/src/common/Config/ConfigMgr.h +++ b/src/common/Config/ConfigMgr.h @@ -8,7 +8,7 @@ #include #include "ConfigDef.h" -namespace Sapphire +namespace Sapphire::Common { class ConfigMgr { diff --git a/src/common/Crypt/base64.cpp b/src/common/Crypt/base64.cpp index 591568b5..7d513c47 100644 --- a/src/common/Crypt/base64.cpp +++ b/src/common/Crypt/base64.cpp @@ -41,7 +41,7 @@ static inline bool is_base64( uint8_t c ) return ( isalnum( c ) || ( c == '+' ) || ( c == '/' ) ); } -std::string Sapphire::Util::base64Encode( uint8_t const* bytes_to_encode, uint32_t in_len ) +std::string Sapphire::Common::Util::base64Encode( uint8_t const* bytes_to_encode, uint32_t in_len ) { std::string ret; int32_t i = 0; @@ -87,7 +87,7 @@ std::string Sapphire::Util::base64Encode( uint8_t const* bytes_to_encode, uint32 } -std::string Sapphire::Util::base64Decode( std::string const& encoded_string ) +std::string Sapphire::Common::Util::base64Decode( std::string const& encoded_string ) { int32_t in_len = encoded_string.size(); int32_t i = 0; diff --git a/src/common/Crypt/base64.h b/src/common/Crypt/base64.h index c95d09f3..9b5d9eff 100644 --- a/src/common/Crypt/base64.h +++ b/src/common/Crypt/base64.h @@ -1,6 +1,6 @@ #include -namespace Sapphire::Util +namespace Sapphire::Common::Util { std::string base64Encode( uint8_t const*, uint32_t len ); diff --git a/src/common/Crypt/md5.cpp b/src/common/Crypt/md5.cpp index 130042e2..de5cf7ef 100644 --- a/src/common/Crypt/md5.cpp +++ b/src/common/Crypt/md5.cpp @@ -37,7 +37,7 @@ (b)[(i) + 3] = (uint8_t) ( (n) >> 24 ); \ } -void Sapphire::Util::md5_starts( md5_context* ctx ) +void Sapphire::Common::Util::md5_starts( md5_context* ctx ) { ctx->total[ 0 ] = 0; ctx->total[ 1 ] = 0; @@ -48,7 +48,7 @@ void Sapphire::Util::md5_starts( md5_context* ctx ) ctx->state[ 3 ] = 0x10325476; } -void md5_process( Sapphire::Util::md5_context* ctx, uint8_t data[64] ) +void md5_process( Sapphire::Common::Util::md5_context* ctx, uint8_t data[64] ) { uint32_t X[16], A, B, C, D; @@ -171,7 +171,7 @@ void md5_process( Sapphire::Util::md5_context* ctx, uint8_t data[64] ) ctx->state[ 3 ] += D; } -void Sapphire::Util::md5_update( md5_context* ctx, uint8_t* input, uint32_t length ) +void Sapphire::Common::Util::md5_update( md5_context* ctx, uint8_t* input, uint32_t length ) { uint32_t left, fill; @@ -219,7 +219,7 @@ static uint8_t md5_padding[64] = 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; -void Sapphire::Util::md5_finish( md5_context* ctx, uint8_t digest[16] ) +void Sapphire::Common::Util::md5_finish( md5_context* ctx, uint8_t digest[16] ) { uint32_t last, padn; uint32_t high, low; @@ -248,7 +248,7 @@ void Sapphire::Util::md5_finish( md5_context* ctx, uint8_t digest[16] ) * those are the standard RFC 1321 test vectors */ -void Sapphire::Util::md5( uint8_t* text, uint8_t* hash, int32_t size ) +void Sapphire::Common::Util::md5( uint8_t* text, uint8_t* hash, int32_t size ) { md5_context ctx; md5_starts( &ctx ); diff --git a/src/common/Crypt/md5.h b/src/common/Crypt/md5.h index cfdb4ad8..f27dd5a9 100644 --- a/src/common/Crypt/md5.h +++ b/src/common/Crypt/md5.h @@ -3,7 +3,7 @@ #include -namespace Sapphire::Util +namespace Sapphire::Common::Util { using md5_context = struct { diff --git a/src/common/Database/DbConnection.cpp b/src/common/Database/DbConnection.cpp index 133baa56..f03b7f9e 100644 --- a/src/common/Database/DbConnection.cpp +++ b/src/common/Database/DbConnection.cpp @@ -17,7 +17,7 @@ Sapphire::Db::DbConnection::DbConnection( ConnectionInfo& connInfo ) : } -Sapphire::Db::DbConnection::DbConnection( Sapphire::LockedWaitQueue< std::shared_ptr< Operation > >* queue, +Sapphire::Db::DbConnection::DbConnection( Common::Util::LockedWaitQueue< std::shared_ptr< Operation > >* queue, Sapphire::Db::ConnectionInfo& connInfo ) : m_reconnecting( false ), m_prepareError( false ), diff --git a/src/common/Database/DbConnection.h b/src/common/Database/DbConnection.h index a31a531d..fc84b74f 100644 --- a/src/common/Database/DbConnection.h +++ b/src/common/Database/DbConnection.h @@ -42,7 +42,7 @@ namespace Sapphire::Db DbConnection( ConnectionInfo& connInfo ); // Constructor for asynchronous connections. - DbConnection( Sapphire::LockedWaitQueue< std::shared_ptr< Operation > >* queue, ConnectionInfo& connInfo ); + DbConnection( Common::Util::LockedWaitQueue< std::shared_ptr< Operation > >* queue, ConnectionInfo& connInfo ); virtual ~DbConnection(); @@ -92,7 +92,7 @@ namespace Sapphire::Db bool m_prepareError; private: - LockedWaitQueue< std::shared_ptr< Operation > >* m_queue; + Common::Util::LockedWaitQueue< std::shared_ptr< Operation > >* m_queue; std::shared_ptr< DbWorker > m_worker; std::shared_ptr< Mysql::Connection > m_pConnection; ConnectionInfo& m_connectionInfo; diff --git a/src/common/Database/DbWorker.cpp b/src/common/Database/DbWorker.cpp index 74ee0378..d08f251f 100644 --- a/src/common/Database/DbWorker.cpp +++ b/src/common/Database/DbWorker.cpp @@ -2,7 +2,9 @@ #include "Operation.h" #include "Util/LockedWaitQueue.h" -Sapphire::Db::DbWorker::DbWorker( Sapphire::LockedWaitQueue< std::shared_ptr< Operation > >* newQueue, +using namespace Sapphire::Common; + +Sapphire::Db::DbWorker::DbWorker( Util::LockedWaitQueue< std::shared_ptr< Operation > >* newQueue, DbConnection* pConn ) { m_pConn = pConn; diff --git a/src/common/Database/DbWorker.h b/src/common/Database/DbWorker.h index 13250c19..655ef13f 100644 --- a/src/common/Database/DbWorker.h +++ b/src/common/Database/DbWorker.h @@ -14,12 +14,12 @@ namespace Sapphire::Db class DbWorker { public: - DbWorker( LockedWaitQueue< std::shared_ptr< Operation > >* newQueue, DbConnection* connection ); + DbWorker( Common::Util::LockedWaitQueue< std::shared_ptr< Operation > >* newQueue, DbConnection* connection ); ~DbWorker(); private: - LockedWaitQueue< std::shared_ptr< Operation > >* m_queue; + Common::Util::LockedWaitQueue< std::shared_ptr< Operation > >* m_queue; DbConnection* m_pConn; void workerThread(); diff --git a/src/common/Database/DbWorkerPool.cpp b/src/common/Database/DbWorkerPool.cpp index c9ef3b51..81b9d96d 100644 --- a/src/common/Database/DbWorkerPool.cpp +++ b/src/common/Database/DbWorkerPool.cpp @@ -21,7 +21,7 @@ class PingOperation : public Sapphire::Db::Operation template< class T > Sapphire::Db::DbWorkerPool< T >::DbWorkerPool() : - m_queue( new Sapphire::LockedWaitQueue< std::shared_ptr< Operation > >() ), + m_queue( new Common::Util::LockedWaitQueue< std::shared_ptr< Operation > >() ), m_asyncThreads( 0 ), m_synchThreads( 0 ) { diff --git a/src/common/Database/DbWorkerPool.h b/src/common/Database/DbWorkerPool.h index a29bd3f1..bbc02e46 100644 --- a/src/common/Database/DbWorkerPool.h +++ b/src/common/Database/DbWorkerPool.h @@ -83,7 +83,7 @@ namespace Sapphire::Db const std::string& getDatabaseName() const; - std::unique_ptr< Sapphire::LockedWaitQueue< std::shared_ptr< Operation > > > m_queue; + std::unique_ptr< Common::Util::LockedWaitQueue< std::shared_ptr< Operation > > > m_queue; std::array< std::vector< std::shared_ptr< T > >, IDX_SIZE > m_connections; ConnectionInfo m_connectionInfo; uint8_t m_asyncThreads; diff --git a/src/common/Database/ZoneDbConnection.cpp b/src/common/Database/ZoneDbConnection.cpp index cceea22f..1c4c5a82 100644 --- a/src/common/Database/ZoneDbConnection.cpp +++ b/src/common/Database/ZoneDbConnection.cpp @@ -6,7 +6,7 @@ Sapphire::Db::ZoneDbConnection::ZoneDbConnection( ConnectionInfo& connInfo ) : { } -Sapphire::Db::ZoneDbConnection::ZoneDbConnection( Sapphire::LockedWaitQueue< std::shared_ptr< Operation > >* q, +Sapphire::Db::ZoneDbConnection::ZoneDbConnection( Common::Util::LockedWaitQueue< std::shared_ptr< Operation > >* q, ConnectionInfo& connInfo ) : DbConnection( q, connInfo ) { diff --git a/src/common/Database/ZoneDbConnection.h b/src/common/Database/ZoneDbConnection.h index 93bacc23..8c74bf19 100644 --- a/src/common/Database/ZoneDbConnection.h +++ b/src/common/Database/ZoneDbConnection.h @@ -112,7 +112,7 @@ namespace Sapphire::Db ZoneDbConnection( ConnectionInfo& connInfo ); - ZoneDbConnection( Sapphire::LockedWaitQueue< std::shared_ptr< Operation > >* q, ConnectionInfo& connInfo ); + ZoneDbConnection( Common::Util::LockedWaitQueue< std::shared_ptr< Operation > >* q, ConnectionInfo& connInfo ); ~ZoneDbConnection(); diff --git a/src/common/Forwards.h b/src/common/Forwards.h index 7434f861..1fa810c9 100644 --- a/src/common/Forwards.h +++ b/src/common/Forwards.h @@ -5,12 +5,16 @@ namespace Sapphire { - class ConfigMgr; class Framework; - using ConfigMgrPtr = std::shared_ptr< ConfigMgr >; using FrameworkPtr = std::shared_ptr< Framework >; } +namespace Sapphire::Common +{ + class ConfigMgr; + using ConfigMgrPtr = std::shared_ptr< ConfigMgr >; +} + namespace Sapphire::Network { class Hive; diff --git a/src/common/Network/Acceptor.cpp b/src/common/Network/Acceptor.cpp index ab76398c..43c17d8f 100644 --- a/src/common/Network/Acceptor.cpp +++ b/src/common/Network/Acceptor.cpp @@ -2,7 +2,10 @@ #include "Acceptor.h" #include "Connection.h" -Sapphire::Network::Acceptor::Acceptor( HivePtr hive ) : + +using namespace Sapphire; + +Network::Acceptor::Acceptor( HivePtr hive ) : m_hive( hive ), m_acceptor( hive->getService() ), m_io_strand( hive->getService() ), @@ -10,21 +13,21 @@ Sapphire::Network::Acceptor::Acceptor( HivePtr hive ) : { } -Sapphire::Network::Acceptor::~Acceptor() +Network::Acceptor::~Acceptor() { } -bool Sapphire::Network::Acceptor::onAccept( ConnectionPtr connection, const std::string& host, uint16_t port ) +bool Network::Acceptor::onAccept( ConnectionPtr connection, const std::string& host, uint16_t port ) { return true; } -void Sapphire::Network::Acceptor::onError( const asio::error_code& error ) +void Network::Acceptor::onError( const asio::error_code& error ) { } -void Sapphire::Network::Acceptor::startError( const asio::error_code& error ) +void Network::Acceptor::startError( const asio::error_code& error ) { uint32_t v1 = 1; uint32_t v2 = 0; @@ -37,7 +40,7 @@ void Sapphire::Network::Acceptor::startError( const asio::error_code& error ) } } -void Sapphire::Network::Acceptor::dispatchAccept( ConnectionPtr connection ) +void Network::Acceptor::dispatchAccept( ConnectionPtr connection ) { m_acceptor.async_accept( connection->getSocket(), connection->getStrand().wrap( std::bind( &Acceptor::handleAccept, @@ -46,7 +49,7 @@ void Sapphire::Network::Acceptor::dispatchAccept( ConnectionPtr connection ) connection ) ) ); } -void Sapphire::Network::Acceptor::handleAccept( const asio::error_code& error, ConnectionPtr connection ) +void Network::Acceptor::handleAccept( const asio::error_code& error, ConnectionPtr connection ) { if( error || hasError() || m_hive->hasStopped() ) { @@ -72,17 +75,17 @@ void Sapphire::Network::Acceptor::handleAccept( const asio::error_code& error, C } } -void Sapphire::Network::Acceptor::stop() +void Network::Acceptor::stop() { } -void Sapphire::Network::Acceptor::accept( ConnectionPtr connection ) +void Network::Acceptor::accept( ConnectionPtr connection ) { m_io_strand.post( std::bind( &Acceptor::dispatchAccept, shared_from_this(), connection ) ); } -void Sapphire::Network::Acceptor::listen( const std::string& host, const uint16_t& port ) +void Network::Acceptor::listen( const std::string& host, const uint16_t& port ) { try { @@ -103,17 +106,17 @@ void Sapphire::Network::Acceptor::listen( const std::string& host, const uint16_ } -Sapphire::Network::HivePtr Sapphire::Network::Acceptor::getHive() +Network::HivePtr Network::Acceptor::getHive() { return m_hive; } -asio::ip::tcp::acceptor& Sapphire::Network::Acceptor::getAcceptor() +asio::ip::tcp::acceptor& Network::Acceptor::getAcceptor() { return m_acceptor; } -bool Sapphire::Network::Acceptor::hasError() +bool Network::Acceptor::hasError() { uint32_t v1 = 1; uint32_t v2 = 1; diff --git a/src/common/Network/Connection.cpp b/src/common/Network/Connection.cpp index 21e8bee7..1bc9054a 100644 --- a/src/common/Network/Connection.cpp +++ b/src/common/Network/Connection.cpp @@ -3,7 +3,9 @@ #include #include "Framework.h" -Sapphire::Network::Connection::Connection( HivePtr hive, FrameworkPtr pFw ) : +using namespace Sapphire; + +Network::Connection::Connection( HivePtr hive, FrameworkPtr pFw ) : m_hive( hive ), m_socket( hive->getService() ), m_io_strand( hive->getService() ), @@ -13,11 +15,9 @@ Sapphire::Network::Connection::Connection( HivePtr hive, FrameworkPtr pFw ) : { } -Sapphire::Network::Connection::~Connection() -{ -} +Network::Connection::~Connection() = default; -void Sapphire::Network::Connection::bind( const std::string& ip, uint16_t port ) +void Network::Connection::bind( const std::string& ip, uint16_t port ) { asio::ip::tcp::endpoint endpoint( asio::ip::address::from_string( ip ), port ); m_socket.open( endpoint.protocol() ); @@ -25,7 +25,7 @@ void Sapphire::Network::Connection::bind( const std::string& ip, uint16_t port ) m_socket.bind( endpoint ); } -void Sapphire::Network::Connection::startSend() +void Network::Connection::startSend() { if( !m_pending_sends.empty() ) { @@ -38,7 +38,7 @@ void Sapphire::Network::Connection::startSend() } } -void Sapphire::Network::Connection::startRecv( int32_t total_bytes ) +void Network::Connection::startRecv( int32_t total_bytes ) { if( total_bytes > 0 ) { @@ -61,7 +61,7 @@ void Sapphire::Network::Connection::startRecv( int32_t total_bytes ) } } -void Sapphire::Network::Connection::startError( const asio::error_code& error ) +void Network::Connection::startError( const asio::error_code& error ) { uint32_t v1 = 1; uint32_t v2 = 0; @@ -74,7 +74,7 @@ void Sapphire::Network::Connection::startError( const asio::error_code& error ) } } -void Sapphire::Network::Connection::handleConnect( const asio::error_code& error ) +void Network::Connection::handleConnect( const asio::error_code& error ) { if( error || hasError() || m_hive->hasStopped() ) { @@ -94,8 +94,8 @@ void Sapphire::Network::Connection::handleConnect( const asio::error_code& error } } -void Sapphire::Network::Connection::handleSend( const asio::error_code& error, - std::list< std::vector< uint8_t > >::iterator itr ) +void Network::Connection::handleSend( const asio::error_code& error, + std::list< std::vector< uint8_t > >::iterator itr ) { if( error || hasError() || m_hive->hasStopped() ) { @@ -109,7 +109,7 @@ void Sapphire::Network::Connection::handleSend( const asio::error_code& error, } } -void Sapphire::Network::Connection::handleRecv( const asio::error_code& error, int32_t actual_bytes ) +void Network::Connection::handleRecv( const asio::error_code& error, int32_t actual_bytes ) { if( error || hasError() || m_hive->hasStopped() ) { @@ -128,7 +128,7 @@ void Sapphire::Network::Connection::handleRecv( const asio::error_code& error, i } } -void Sapphire::Network::Connection::dispatchSend( std::vector< uint8_t > buffer ) +void Network::Connection::dispatchSend( std::vector< uint8_t > buffer ) { bool should_start_send = m_pending_sends.empty(); m_pending_sends.push_back( buffer ); @@ -138,7 +138,7 @@ void Sapphire::Network::Connection::dispatchSend( std::vector< uint8_t > buffer } } -void Sapphire::Network::Connection::dispatchRecv( int32_t total_bytes ) +void Network::Connection::dispatchRecv( int32_t total_bytes ) { bool should_start_receive = m_pending_recvs.empty(); m_pending_recvs.push_back( total_bytes ); @@ -149,7 +149,7 @@ void Sapphire::Network::Connection::dispatchRecv( int32_t total_bytes ) } -void Sapphire::Network::Connection::connect( const std::string& host, uint16_t port ) +void Network::Connection::connect( const std::string& host, uint16_t port ) { asio::ip::tcp::resolver resolver( m_hive->getService() ); asio::ip::tcp::resolver::query query( host, std::to_string( port ) ); @@ -160,48 +160,48 @@ void Sapphire::Network::Connection::connect( const std::string& host, uint16_t p } -void Sapphire::Network::Connection::disconnect() +void Network::Connection::disconnect() { onDisconnect(); m_socket.close(); } -void Sapphire::Network::Connection::recv( int32_t total_bytes ) +void Network::Connection::recv( int32_t total_bytes ) { m_io_strand.post( std::bind( &Connection::dispatchRecv, shared_from_this(), total_bytes ) ); } -void Sapphire::Network::Connection::send( const std::vector< uint8_t >& buffer ) +void Network::Connection::send( const std::vector< uint8_t >& buffer ) { m_io_strand.post( std::bind( &Connection::dispatchSend, shared_from_this(), buffer ) ); } -asio::ip::tcp::socket& Sapphire::Network::Connection::getSocket() +asio::ip::tcp::socket& Network::Connection::getSocket() { return m_socket; } -asio::strand& Sapphire::Network::Connection::getStrand() +asio::strand& Network::Connection::getStrand() { return m_io_strand; } -Sapphire::Network::HivePtr Sapphire::Network::Connection::getHive() +Network::HivePtr Network::Connection::getHive() { return m_hive; } -void Sapphire::Network::Connection::setReceiveBufferSize( int32_t size ) +void Network::Connection::setReceiveBufferSize( int32_t size ) { m_receive_buffer_size = size; } -int32_t Sapphire::Network::Connection::getReceiveBufferSize() const +int32_t Network::Connection::getReceiveBufferSize() const { return m_receive_buffer_size; } -bool Sapphire::Network::Connection::hasError() +bool Network::Connection::hasError() { uint32_t v1 = 1; uint32_t v2 = 1; diff --git a/src/common/Network/Connection.h b/src/common/Network/Connection.h index fbfc85c9..ef5c4070 100644 --- a/src/common/Network/Connection.h +++ b/src/common/Network/Connection.h @@ -12,12 +12,6 @@ #include "Acceptor.h" #include -namespace Sapphire -{ - class Framework; - using FrameworkPtr = std::shared_ptr< Framework >; -} - namespace Sapphire::Network { @@ -41,7 +35,7 @@ namespace Sapphire::Network std::list< std::vector< uint8_t > > m_pending_sends; int32_t m_receive_buffer_size; std::atomic< uint32_t > m_error_state; - Sapphire::FrameworkPtr m_pFw; + FrameworkPtr m_pFw; Connection( HivePtr hive, FrameworkPtr pFw ); diff --git a/src/common/Network/GamePacket.h b/src/common/Network/GamePacket.h index f62c08ef..c1c06b76 100644 --- a/src/common/Network/GamePacket.h +++ b/src/common/Network/GamePacket.h @@ -257,7 +257,7 @@ namespace Sapphire::Network::Packets // The IPC type itself. m_ipcHdr.type = static_cast< ServerZoneIpcType >( m_data._ServerIpcType ); - m_ipcHdr.timestamp = Util::getTimeSeconds(); + m_ipcHdr.timestamp = Common::Util::getTimeSeconds(); m_segHdr.size = sizeof( T ) + sizeof( FFXIVARR_IPC_HEADER ) + sizeof( FFXIVARR_PACKET_SEGMENT_HEADER ); }; diff --git a/src/common/Network/GamePacketParser.cpp b/src/common/Network/GamePacketParser.cpp index 6a18b718..b14d2657 100644 --- a/src/common/Network/GamePacketParser.cpp +++ b/src/common/Network/GamePacketParser.cpp @@ -3,9 +3,10 @@ #include // memcpy +using namespace Sapphire; using namespace Sapphire::Network::Packets; -PacketParseResult Sapphire::Network::Packets::getHeader( const std::vector< uint8_t >& buffer, +PacketParseResult Network::Packets::getHeader( const std::vector< uint8_t >& buffer, const uint32_t offset, FFXIVARR_PACKET_HEADER& header ) { @@ -25,7 +26,7 @@ PacketParseResult Sapphire::Network::Packets::getHeader( const std::vector< uint return Success; } -PacketParseResult Sapphire::Network::Packets::getSegmentHeader( const std::vector< uint8_t >& buffer, +PacketParseResult Network::Packets::getSegmentHeader( const std::vector< uint8_t >& buffer, const uint32_t offset, FFXIVARR_PACKET_SEGMENT_HEADER& header ) { @@ -42,7 +43,7 @@ PacketParseResult Sapphire::Network::Packets::getSegmentHeader( const std::vecto return Success; } -PacketParseResult Sapphire::Network::Packets::getPackets( const std::vector< uint8_t >& buffer, +PacketParseResult Network::Packets::getPackets( const std::vector< uint8_t >& buffer, const uint32_t offset, const FFXIVARR_PACKET_HEADER& packetHeader, std::vector< FFXIVARR_PACKET_RAW >& packets ) @@ -81,7 +82,7 @@ PacketParseResult Sapphire::Network::Packets::getPackets( const std::vector< uin return Success; } -PacketParseResult Sapphire::Network::Packets::getPacket( const std::vector< uint8_t >& buffer, const uint32_t offset, +PacketParseResult Network::Packets::getPacket( const std::vector< uint8_t >& buffer, const uint32_t offset, FFXIVARR_PACKET_RAW& packet ) { // Copy segment header @@ -103,7 +104,7 @@ PacketParseResult Sapphire::Network::Packets::getPacket( const std::vector< uint return Success; } -bool Sapphire::Network::Packets::checkHeader( const FFXIVARR_PACKET_HEADER& header ) +bool Network::Packets::checkHeader( const FFXIVARR_PACKET_HEADER& header ) { // Max size of the packet is capped at 1MB for now. if( header.size > 1 * 1024 * 1024 ) @@ -116,7 +117,7 @@ bool Sapphire::Network::Packets::checkHeader( const FFXIVARR_PACKET_HEADER& head return true; } -bool Sapphire::Network::Packets::checkSegmentHeader( const FFXIVARR_PACKET_SEGMENT_HEADER& header ) +bool Network::Packets::checkSegmentHeader( const FFXIVARR_PACKET_SEGMENT_HEADER& header ) { // Max size of individual message is capped at 256KB for now. if( header.size > 256 * 1024 ) diff --git a/src/common/Network/Hive.cpp b/src/common/Network/Hive.cpp index 86460b2d..758c30d3 100644 --- a/src/common/Network/Hive.cpp +++ b/src/common/Network/Hive.cpp @@ -2,41 +2,43 @@ #include #include "Hive.h" +using namespace Sapphire; + //----------------------------------------------------------------------------- -Sapphire::Network::Hive::Hive() : +Network::Hive::Hive() : m_work_ptr( new asio::io_service::work( m_io_service ) ), m_shutdown( 0 ) { } -Sapphire::Network::Hive::~Hive() +Network::Hive::~Hive() { } -asio::io_service& Sapphire::Network::Hive::getService() +asio::io_service& Network::Hive::getService() { return m_io_service; } -bool Sapphire::Network::Hive::hasStopped() +bool Network::Hive::hasStopped() { uint32_t v1 = 1; uint32_t v2 = 1; return m_shutdown.compare_exchange_strong( v1, v2 ); } -void Sapphire::Network::Hive::poll() +void Network::Hive::poll() { m_io_service.poll(); } -void Sapphire::Network::Hive::run() +void Network::Hive::run() { m_io_service.run(); } -void Sapphire::Network::Hive::stop() +void Network::Hive::stop() { uint32_t v1 = 1; uint32_t v2 = 0; @@ -48,7 +50,7 @@ void Sapphire::Network::Hive::stop() } } -void Sapphire::Network::Hive::reset() +void Network::Hive::reset() { uint32_t v1 = 0; uint32_t v2 = 1; diff --git a/src/common/Network/Hive.h b/src/common/Network/Hive.h index c8ea62e5..8ac37328 100644 --- a/src/common/Network/Hive.h +++ b/src/common/Network/Hive.h @@ -5,7 +5,7 @@ #include #include -namespace Sapphire:: Network +namespace Sapphire::Network { class Hive : public std::enable_shared_from_this< Hive > diff --git a/src/common/Network/PacketContainer.cpp b/src/common/Network/PacketContainer.cpp index a61c38c0..0b6fa1b1 100644 --- a/src/common/Network/PacketContainer.cpp +++ b/src/common/Network/PacketContainer.cpp @@ -7,7 +7,9 @@ #include #include -Sapphire::Network::Packets::PacketContainer::PacketContainer( uint32_t segmentTargetOverride ) : +using namespace Sapphire; + +Network::Packets::PacketContainer::PacketContainer( uint32_t segmentTargetOverride ) : m_segmentTargetOverride( segmentTargetOverride ) { memset( &m_ipcHdr, 0, sizeof( FFXIVARR_PACKET_HEADER ) ); @@ -15,12 +17,12 @@ Sapphire::Network::Packets::PacketContainer::PacketContainer( uint32_t segmentTa m_ipcHdr.count = 0; } -Sapphire::Network::Packets::PacketContainer::~PacketContainer() +Network::Packets::PacketContainer::~PacketContainer() { m_entryList.clear(); } -void Sapphire::Network::Packets::PacketContainer::addPacket( Sapphire::Network::Packets::FFXIVPacketBasePtr entry ) +void Network::Packets::PacketContainer::addPacket( Network::Packets::FFXIVPacketBasePtr entry ) { m_entryList.push_back( entry ); @@ -28,7 +30,7 @@ void Sapphire::Network::Packets::PacketContainer::addPacket( Sapphire::Network:: m_ipcHdr.count++; } -void Sapphire::Network::Packets::PacketContainer::fillSendBuffer( std::vector< uint8_t >& sendBuffer ) +void Network::Packets::PacketContainer::fillSendBuffer( std::vector< uint8_t >& sendBuffer ) { std::vector< uint8_t > tempBuffer( m_ipcHdr.size ); memset( &tempBuffer[ 0 ], 0, m_ipcHdr.size ); @@ -67,7 +69,7 @@ void Sapphire::Network::Packets::PacketContainer::fillSendBuffer( std::vector< u } -std::string Sapphire::Network::Packets::PacketContainer::toString() +std::string Network::Packets::PacketContainer::toString() { std::vector< uint8_t > tmpBuffer; @@ -76,7 +78,7 @@ std::string Sapphire::Network::Packets::PacketContainer::toString() std::string str = "\n"; for( uint32_t i = 0; i < m_ipcHdr.size; i++ ) { - str += Util::intToHexString( static_cast< int32_t >( tmpBuffer[ i ] & 0xFF ) ) + " "; + str += Common::Util::intToHexString( static_cast< int32_t >( tmpBuffer[ i ] & 0xFF ) ) + " "; if( ( i + 1 ) % 16 == 0 ) str += "\n"; diff --git a/src/common/Network/PacketDef/Chat/ServerChatDef.h b/src/common/Network/PacketDef/Chat/ServerChatDef.h index 755ad3c8..ce614f7c 100644 --- a/src/common/Network/PacketDef/Chat/ServerChatDef.h +++ b/src/common/Network/PacketDef/Chat/ServerChatDef.h @@ -4,10 +4,8 @@ #include #include -namespace Sapphire { -namespace Network { -namespace Packets { -namespace Server { +namespace Sapphire::Network::Packets::Server +{ /** * Structural representation of the packet sent by the server as response @@ -31,10 +29,7 @@ struct FFXIVIpcTellErrNotFound : FFXIVIpcBasePacket< TellErrNotFound > char receipientName[32]; }; -} /* Server */ -} /* Packets */ -} /* Network */ -} /* Sapphire */ +} /* Sapphire::Common::Network::Packets::Server */ diff --git a/src/common/Network/PacketDef/Lobby/ServerLobbyDef.h b/src/common/Network/PacketDef/Lobby/ServerLobbyDef.h index 57948d4b..811a6e4f 100644 --- a/src/common/Network/PacketDef/Lobby/ServerLobbyDef.h +++ b/src/common/Network/PacketDef/Lobby/ServerLobbyDef.h @@ -4,10 +4,7 @@ #include #include -namespace Sapphire { -namespace Network { -namespace Packets { -namespace Server { +namespace Sapphire::Network::Packets::Server { struct FFXIVIpcRetainerList : FFXIVIpcBasePacket< LobbyRetainerList > @@ -152,7 +149,5 @@ struct FFXIVIpcLobbyError : FFXIVIpcBasePacket< LobbyError > }; } -} -} -} + #endif diff --git a/src/common/Network/PacketDef/Zone/ClientZoneDef.h b/src/common/Network/PacketDef/Zone/ClientZoneDef.h index 3d439dc7..bf19fb7e 100644 --- a/src/common/Network/PacketDef/Zone/ClientZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ClientZoneDef.h @@ -4,10 +4,8 @@ #include #include -namespace Sapphire { -namespace Network { -namespace Packets { -namespace Client { +namespace Sapphire::Network::Packets::Client +{ struct FFXIVIpcGmCommand1 : FFXIVIpcBasePacket< GMCommand1 > @@ -325,9 +323,6 @@ struct FFXIVIpcMarketBoardRequestItemListingInfo : /* 0000 */ uint32_t requestId; }; -} -} -} } #endif //_CORE_NETWORK_PACKETS_ZONE_CLIENT_IPC_H diff --git a/src/common/Util/LockedQueue.h b/src/common/Util/LockedQueue.h index 1e73f4ce..57397b59 100644 --- a/src/common/Util/LockedQueue.h +++ b/src/common/Util/LockedQueue.h @@ -7,7 +7,7 @@ #include #include -namespace Sapphire +namespace Sapphire::Common::Util { template< class T > diff --git a/src/common/Util/LockedWaitQueue.h b/src/common/Util/LockedWaitQueue.h index 122cfd1c..1a1ffdc3 100644 --- a/src/common/Util/LockedWaitQueue.h +++ b/src/common/Util/LockedWaitQueue.h @@ -8,7 +8,7 @@ #include #include -namespace Sapphire +namespace Sapphire::Common::Util { template< typename T > diff --git a/src/common/Util/SpawnIndexAllocator.h b/src/common/Util/SpawnIndexAllocator.h index f03951a3..27003e8f 100644 --- a/src/common/Util/SpawnIndexAllocator.h +++ b/src/common/Util/SpawnIndexAllocator.h @@ -5,7 +5,7 @@ #include #include -namespace Sapphire::Util +namespace Sapphire::Common::Util { template< typename T, typename ActorIdType = uint32_t > diff --git a/src/common/Util/Util.cpp b/src/common/Util/Util.cpp index f443ddf8..d653e29c 100644 --- a/src/common/Util/Util.cpp +++ b/src/common/Util/Util.cpp @@ -5,7 +5,9 @@ #include #include -std::string Sapphire::Util::binaryToHexString( uint8_t* pBinData, uint16_t size ) +using namespace Sapphire::Common; + +std::string Util::binaryToHexString( uint8_t* pBinData, uint16_t size ) { std::string outStr; @@ -17,26 +19,26 @@ std::string Sapphire::Util::binaryToHexString( uint8_t* pBinData, uint16_t size return outStr; } -std::string Sapphire::Util::toLowerCopy( const std::string& inStr ) +std::string Util::toLowerCopy( const std::string& inStr ) { std::string out = inStr; std::transform( inStr.begin(), inStr.end(), out.begin(), [](unsigned char c) -> unsigned char { return ::tolower(c); }); return out; } -void Sapphire::Util::eraseAll( std::string& inOutStr, char remove ) +void Util::eraseAll( std::string& inOutStr, char remove ) { inOutStr.erase( std::remove( inOutStr.begin(), inOutStr.end(), remove ), inOutStr.end() ); } -void Sapphire::Util::eraseAllIn( std::string& inOutStr, std::string& remove ) +void Util::eraseAllIn( std::string& inOutStr, std::string& remove ) { for( auto rem : remove ) inOutStr.erase( std::remove( inOutStr.begin(), inOutStr.end(), rem ), inOutStr.end() ); } -std::string Sapphire::Util::intToHexString( uint64_t intValue, uint8_t width ) +std::string Util::intToHexString( uint64_t intValue, uint8_t width ) { std::string hexStr; @@ -51,7 +53,7 @@ std::string Sapphire::Util::intToHexString( uint64_t intValue, uint8_t width ) return hexStr; } -std::string Sapphire::Util::binaryToHexDump( uint8_t* pBinData, uint16_t size ) +std::string Util::binaryToHexDump( uint8_t* pBinData, uint16_t size ) { int bytesPerLine = 16; constexpr char hexChars[] = "0123456789ABCDEF"; @@ -112,25 +114,25 @@ std::string Sapphire::Util::binaryToHexDump( uint8_t* pBinData, uint16_t size ) } -uint64_t Sapphire::Util::getTimeMs() +uint64_t Util::getTimeMs() { std::chrono::milliseconds epoch = std::chrono::duration_cast< std::chrono::milliseconds > ( std::chrono::system_clock::now().time_since_epoch() ); return epoch.count(); } -uint32_t Sapphire::Util::getTimeSeconds() +uint32_t Util::getTimeSeconds() { auto currClock = std::chrono::system_clock::now(); return std::chrono::time_point_cast< std::chrono::seconds >( currClock ).time_since_epoch().count(); } -uint64_t Sapphire::Util::getEorzeanTimeStamp() +uint64_t Util::getEorzeanTimeStamp() { return static_cast< uint64_t >( getTimeSeconds() * 20.571428571428573f ); } -void Sapphire::Util::valueToFlagByteIndexValue( uint32_t inVal, uint8_t& outVal, uint16_t& outIndex ) +void Util::valueToFlagByteIndexValue( uint32_t inVal, uint8_t& outVal, uint16_t& outIndex ) { uint32_t id = inVal; outIndex = id / 8; diff --git a/src/common/Util/Util.h b/src/common/Util/Util.h index 4c4a5a32..e42dd7ee 100644 --- a/src/common/Util/Util.h +++ b/src/common/Util/Util.h @@ -5,7 +5,7 @@ #include #include -namespace Sapphire::Util +namespace Sapphire::Common::Util { std::string binaryToHexString( uint8_t* pBinData, uint16_t size ); diff --git a/src/common/Util/UtilMath.cpp b/src/common/Util/UtilMath.cpp index f2e8cc2c..ae61e171 100644 --- a/src/common/Util/UtilMath.cpp +++ b/src/common/Util/UtilMath.cpp @@ -1,7 +1,9 @@ #include #include "UtilMath.h" -float Sapphire::Util::distanceSq( float x, float y, float z, float x1, float y1, float z1 ) +using namespace Sapphire::Common; + +float Util::distanceSq( float x, float y, float z, float x1, float y1, float z1 ) { float deltaX = x - x1; float deltaY = y - y1; @@ -10,29 +12,30 @@ float Sapphire::Util::distanceSq( float x, float y, float z, float x1, float y1, return ( deltaX * deltaX + deltaY * deltaY + deltaZ * deltaZ ); } -float Sapphire::Util::distance( float x, float y, float z, float x1, float y1, float z1 ) +float Util::distance( float x, float y, float z, float x1, float y1, float z1 ) { return sqrtf( distanceSq( x, y, z, x1, y1, z1 ) ); } -float Sapphire::Util::distance( const Common::FFXIVARR_POSITION3& pos1, const Common::FFXIVARR_POSITION3& pos2 ) +float Util::distance( const Sapphire::Common::FFXIVARR_POSITION3& pos1, + const Sapphire::Common::FFXIVARR_POSITION3& pos2 ) { return sqrtf( distanceSq( pos1.x, pos1.y, pos1.z, pos2.x, pos2.y, pos2.z ) ); } -float Sapphire::Util::distance2DSq( float x, float y, float x1, float y1 ) +float Util::distance2DSq( float x, float y, float x1, float y1 ) { float deltaX = x - x1; float deltaY = y - y1; return ( deltaX * deltaX + deltaY * deltaY ); } -float Sapphire::Util::distance2D( float x, float y, float x1, float y1 ) +float Util::distance2D( float x, float y, float x1, float y1 ) { return sqrtf( distance2DSq( x, y, x1, y1 ) ); } -float Sapphire::Util::calcAngTo( float x, float y, float x1, float y1 ) +float Util::calcAngTo( float x, float y, float x1, float y1 ) { float dx = x - x1; float dy = y - y1; @@ -46,7 +49,7 @@ float Sapphire::Util::calcAngTo( float x, float y, float x1, float y1 ) } } -float Sapphire::Util::calcAngFrom( float x, float y, float x1, float y1 ) +float Util::calcAngFrom( float x, float y, float x1, float y1 ) { float dx = x - x1; float dy = y - y1; @@ -60,17 +63,17 @@ float Sapphire::Util::calcAngFrom( float x, float y, float x1, float y1 ) } } -uint16_t Sapphire::Util::floatToUInt16( float val ) +uint16_t Util::floatToUInt16( float val ) { return static_cast< uint16_t >( 0x8000 + val * 32.767f ); } -uint16_t Sapphire::Util::floatToUInt16Rot( float val ) +uint16_t Util::floatToUInt16Rot( float val ) { return static_cast< uint16_t >( 0x8000 * ( ( val + PI ) ) / PI ); } -uint8_t Sapphire::Util::floatToUInt8Rot( float val ) +uint8_t Util::floatToUInt8Rot( float val ) { return static_cast< uint8_t >( 0x80 * ( ( val + PI ) ) / PI ); } \ No newline at end of file diff --git a/src/common/Util/UtilMath.h b/src/common/Util/UtilMath.h index 5d34ee92..c35ef6be 100644 --- a/src/common/Util/UtilMath.h +++ b/src/common/Util/UtilMath.h @@ -5,7 +5,7 @@ #define PI 3.14159265358979323846f -namespace Sapphire::Util +namespace Sapphire::Common::Util { float distanceSq( float x, float y, float z, float x1, float y1, float z1 ); diff --git a/src/common/Vector3.cpp b/src/common/Vector3.cpp index b2f7f993..e364fc99 100644 --- a/src/common/Vector3.cpp +++ b/src/common/Vector3.cpp @@ -1,6 +1,8 @@ #include "Vector3.h" -inline bool Sapphire::Common::FFXIVARR_POSITION3::operator == ( const FFXIVARR_POSITION3& target ) const +using namespace Sapphire::Common; + +inline bool FFXIVARR_POSITION3::operator == ( const FFXIVARR_POSITION3& target ) const { return x == target.x && y == target.y && z == target.z; } diff --git a/src/common/Version.cpp.in b/src/common/Version.cpp.in index 9f973861..cd011ae5 100644 --- a/src/common/Version.cpp.in +++ b/src/common/Version.cpp.in @@ -1,10 +1,9 @@ #include "Version.h" -namespace Sapphire { -namespace Version { +namespace Sapphire::Version +{ -const std::string GIT_HASH = "@GIT_SHA1@"; -const std::string VERSION = "@VERSION@"; + const std::string GIT_HASH = "@GIT_SHA1@"; + const std::string VERSION = "@VERSION@"; -} /* Version */ -} /* Sapphire */ +} /* Sapphire::Version */ diff --git a/src/dbm/DbManager.cpp b/src/dbm/DbManager.cpp index 1be6b172..b81790a4 100644 --- a/src/dbm/DbManager.cpp +++ b/src/dbm/DbManager.cpp @@ -17,10 +17,7 @@ DbManager::DbManager( const std::string& host, const std::string& database, cons { } -DbManager::~DbManager() -{ - -} +DbManager::~DbManager() = default; bool DbManager::execute( const std::string& sql ) { diff --git a/src/lobby/Forwards.h b/src/lobby/Forwards.h index 9cc3ac76..1f54bcc7 100644 --- a/src/lobby/Forwards.h +++ b/src/lobby/Forwards.h @@ -13,8 +13,14 @@ return std::make_shared< x >( std::forward< Args >( args ) ... ); }\ typedef std::vector< x > x ## PtrList; namespace Sapphire +{ + TYPE_FORWARD( Framework ); +} + +namespace Sapphire::Lobby { TYPE_FORWARD( LobbySession ); + TYPE_FORWARD( GameConnection ); } namespace Sapphire::Network @@ -22,7 +28,6 @@ namespace Sapphire::Network TYPE_FORWARD( Hive ); TYPE_FORWARD( Acceptor ); TYPE_FORWARD( Connection ); - TYPE_FORWARD( GameConnection ); } namespace Sapphire::Network::Packets diff --git a/src/lobby/GameConnection.cpp b/src/lobby/GameConnection.cpp index 076bb9f6..f531f5c2 100644 --- a/src/lobby/GameConnection.cpp +++ b/src/lobby/GameConnection.cpp @@ -15,30 +15,32 @@ #include "RestConnector.h" #include "LobbySession.h" -extern Sapphire::ServerLobby g_serverLobby; -extern Sapphire::Network::RestConnector g_restConnector; +#include "Forwards.h" -using namespace Sapphire::Common; +using namespace Sapphire; using namespace Sapphire::Network::Packets; using namespace Sapphire::Network::Packets::Server; -Sapphire::Network::GameConnection::GameConnection( Sapphire::Network::HivePtr pHive, - Sapphire::Network::AcceptorPtr pAcceptor, - FrameworkPtr pFw ) : - Connection( pHive, pFw ), +extern Lobby::ServerLobby g_serverLobby; +extern Lobby::RestConnector g_restConnector; + +Lobby::GameConnection::GameConnection( Sapphire::Network::HivePtr pHive, + Sapphire::Network::AcceptorPtr pAcceptor, + FrameworkPtr pFw ) : + Sapphire::Network::Connection( pHive, pFw ), m_pAcceptor( pAcceptor ), m_bEncryptionInitialized( false ) { } -Sapphire::Network::GameConnection::~GameConnection() +Lobby::GameConnection::~GameConnection() { } // overwrite the parents onConnect for our game socket needs -void Sapphire::Network::GameConnection::onAccept( const std::string& host, uint16_t port ) +void Lobby::GameConnection::onAccept( const std::string& host, uint16_t port ) { auto connection = make_GameConnection( m_hive, m_pAcceptor, m_pFw ); m_pAcceptor->accept( connection ); @@ -47,17 +49,17 @@ void Sapphire::Network::GameConnection::onAccept( const std::string& host, uint1 } -void Sapphire::Network::GameConnection::onDisconnect() +void Lobby::GameConnection::onDisconnect() { Logger::debug( "DISCONNECT" ); } -void Sapphire::Network::GameConnection::onRecv( std::vector< uint8_t >& buffer ) +void Lobby::GameConnection::onRecv( std::vector< uint8_t >& buffer ) { m_packets.insert( std::end( m_packets ), std::begin( buffer ), std::end( buffer ) ); // This is assumed packet always start with valid FFXIVARR_PACKET_HEADER for now. - Packets::FFXIVARR_PACKET_HEADER packetHeader{}; - const auto headerResult = Packets::getHeader( m_packets, 0, packetHeader ); + FFXIVARR_PACKET_HEADER packetHeader{}; + const auto headerResult = getHeader( m_packets, 0, packetHeader ); if( headerResult == Incomplete ) return; @@ -70,9 +72,9 @@ void Sapphire::Network::GameConnection::onRecv( std::vector< uint8_t >& buffer ) } // Dissect packet list - std::vector< Packets::FFXIVARR_PACKET_RAW > packetList; - const auto packetResult = Packets::getPackets( m_packets, sizeof( struct FFXIVARR_PACKET_HEADER ), - packetHeader, packetList ); + std::vector< FFXIVARR_PACKET_RAW > packetList; + const auto packetResult = getPackets( m_packets, sizeof( struct FFXIVARR_PACKET_HEADER ), + packetHeader, packetList ); if( packetResult == Incomplete ) return; @@ -90,31 +92,31 @@ void Sapphire::Network::GameConnection::onRecv( std::vector< uint8_t >& buffer ) } -void Sapphire::Network::GameConnection::onError( const asio::error_code& error ) +void Lobby::GameConnection::onError( const asio::error_code& error ) { Logger::info( "GameConnection closed: {0}", error.message() ); } void -Sapphire::Network::GameConnection::sendError( uint64_t sequence, uint32_t errorcode, uint16_t messageId, uint32_t tmpId ) +Lobby::GameConnection::sendError( uint64_t sequence, uint32_t errorcode, uint16_t messageId, uint32_t tmpId ) { auto errorPacket = makeLobbyPacket< FFXIVIpcLobbyError >( tmpId ); errorPacket->data().seq = sequence; errorPacket->data().error_id = errorcode; errorPacket->data().message_id = messageId; - Packets::LobbyPacketContainer pRP( m_encKey ); + LobbyPacketContainer pRP( m_encKey ); pRP.addPacket( errorPacket ); sendPacket( pRP ); } -void Sapphire::Network::GameConnection::getCharList( FFXIVARR_PACKET_RAW& packet, uint32_t tmpId ) +void Lobby::GameConnection::getCharList( FFXIVARR_PACKET_RAW& packet, uint32_t tmpId ) { uint64_t sequence = *reinterpret_cast< uint64_t* >( &packet.data[ 0 ] + 0x10 ); Logger::info( "Sequence [{0}]", sequence ); Logger::info( "[{0}] ReqCharList", m_pSession->getAccountID() ); - Packets::LobbyPacketContainer pRP( m_encKey ); + LobbyPacketContainer pRP( m_encKey ); auto serverListPacket = makeLobbyPacket< FFXIVIpcServerList >( tmpId ); serverListPacket->data().seq = 1; @@ -185,14 +187,14 @@ void Sapphire::Network::GameConnection::getCharList( FFXIVARR_PACKET_RAW& packet charListPacket->data().counter = ( i * 4 ) + 1; charListPacket->data().unknown4 = 128; } - Packets::LobbyPacketContainer pRP( m_encKey ); + LobbyPacketContainer pRP( m_encKey ); pRP.addPacket( charListPacket ); sendPacket( pRP ); } } -void Sapphire::Network::GameConnection::enterWorld( FFXIVARR_PACKET_RAW& packet, uint32_t tmpId ) +void Lobby::GameConnection::enterWorld( FFXIVARR_PACKET_RAW& packet, uint32_t tmpId ) { uint64_t sequence = *reinterpret_cast< uint64_t* >( &packet.data[ 0 ] + 0x10 ); Logger::info( "Sequence [{0}]", sequence ); @@ -221,7 +223,7 @@ void Sapphire::Network::GameConnection::enterWorld( FFXIVARR_PACKET_RAW& packet, Logger::info( "[{0}] Logging in as {1} ({2})", m_pSession->getAccountID(), logInCharName, logInCharId ); - Packets::LobbyPacketContainer pRP( m_encKey ); + LobbyPacketContainer pRP( m_encKey ); auto enterWorldPacket = makeLobbyPacket< FFXIVIpcEnterWorld >( tmpId ); enterWorldPacket->data().contentId = lookupId; @@ -234,7 +236,7 @@ void Sapphire::Network::GameConnection::enterWorld( FFXIVARR_PACKET_RAW& packet, sendPacket( pRP ); } -bool Sapphire::Network::GameConnection::sendServiceAccountList( FFXIVARR_PACKET_RAW& packet, uint32_t tmpId ) +bool Lobby::GameConnection::sendServiceAccountList( FFXIVARR_PACKET_RAW& packet, uint32_t tmpId ) { LobbySessionPtr pSession = g_serverLobby.getSession( ( char* ) &packet.data[ 0 ] + 0x22 ); @@ -259,7 +261,7 @@ bool Sapphire::Network::GameConnection::sendServiceAccountList( FFXIVARR_PACKET_ serviceIdInfoPacket->data().u2 = 0x99; serviceIdInfoPacket->data().serviceAccount[ 0 ].id = 0x002E4A2B; - Packets::LobbyPacketContainer pRP( m_encKey ); + LobbyPacketContainer pRP( m_encKey ); pRP.addPacket( serviceIdInfoPacket ); sendPacket( pRP ); } @@ -273,7 +275,7 @@ bool Sapphire::Network::GameConnection::sendServiceAccountList( FFXIVARR_PACKET_ return false; } -bool Sapphire::Network::GameConnection::createOrModifyChar( FFXIVARR_PACKET_RAW& packet, uint32_t tmpId ) +bool Lobby::GameConnection::createOrModifyChar( FFXIVARR_PACKET_RAW& packet, uint32_t tmpId ) { uint64_t sequence = *reinterpret_cast< uint64_t* >( &packet.data[ 0 ] + 0x10 ); uint8_t type = *reinterpret_cast< uint8_t* >( &packet.data[ 0 ] + 0x29 ); @@ -292,7 +294,7 @@ bool Sapphire::Network::GameConnection::createOrModifyChar( FFXIVARR_PACKET_RAW& Logger::info( "[{0}] Type 1: {1}", m_pSession->getAccountID(), name ); - Packets::LobbyPacketContainer pRP( m_encKey ); + LobbyPacketContainer pRP( m_encKey ); m_pSession->newCharName = name; @@ -323,7 +325,7 @@ bool Sapphire::Network::GameConnection::createOrModifyChar( FFXIVARR_PACKET_RAW& if( g_restConnector.createCharacter( ( char* ) m_pSession->getSessionId(), m_pSession->newCharName, charDetails ) != -1 ) { - Packets::LobbyPacketContainer pRP( m_encKey ); + LobbyPacketContainer pRP( m_encKey ); auto charCreatePacket = makeLobbyPacket< FFXIVIpcCharCreate >( tmpId ); charCreatePacket->data().content_id = newContentId; @@ -365,7 +367,7 @@ bool Sapphire::Network::GameConnection::createOrModifyChar( FFXIVARR_PACKET_RAW& charCreatePacket->data().unknown_7 = 1; charCreatePacket->data().unknown_8 = 1; - Packets::LobbyPacketContainer pRP( m_encKey ); + LobbyPacketContainer pRP( m_encKey ); pRP.addPacket( charCreatePacket ); sendPacket( pRP ); } @@ -381,7 +383,7 @@ bool Sapphire::Network::GameConnection::createOrModifyChar( FFXIVARR_PACKET_RAW& return false; } -void Sapphire::Network::GameConnection::handleGamePacket( Packets::FFXIVARR_PACKET_RAW& packet ) +void Lobby::GameConnection::handleGamePacket( Network::Packets::FFXIVARR_PACKET_RAW& packet ) { uint32_t tmpId = packet.segHdr.target_actor; @@ -419,7 +421,7 @@ void Sapphire::Network::GameConnection::handleGamePacket( Packets::FFXIVARR_PACK } -void Sapphire::Network::GameConnection::sendPacket( Packets::LobbyPacketContainer& pLpc ) +void Lobby::GameConnection::sendPacket( LobbyPacketContainer& pLpc ) { uint16_t size = pLpc.getSize(); uint8_t* dataPtr = pLpc.getRawData( false ); @@ -428,7 +430,7 @@ void Sapphire::Network::GameConnection::sendPacket( Packets::LobbyPacketContaine send( sendBuffer ); } -void Sapphire::Network::GameConnection::sendPackets( Packets::PacketContainer* pPacket ) +void Lobby::GameConnection::sendPackets( Network::Packets::PacketContainer* pPacket ) { std::vector< uint8_t > sendBuffer; @@ -436,14 +438,14 @@ void Sapphire::Network::GameConnection::sendPackets( Packets::PacketContainer* p send( sendBuffer ); } -void Sapphire::Network::GameConnection::sendSinglePacket( FFXIVPacketBasePtr pPacket ) +void Lobby::GameConnection::sendSinglePacket( FFXIVPacketBasePtr pPacket ) { PacketContainer pRP = PacketContainer(); pRP.addPacket( pPacket ); sendPackets( &pRP ); } -void Sapphire::Network::GameConnection::generateEncryptionKey( uint32_t key, const std::string& keyPhrase ) +void Lobby::GameConnection::generateEncryptionKey( uint32_t key, const std::string& keyPhrase ) { memset( m_baseKey, 0, 0x2C ); m_baseKey[ 0 ] = 0x78; @@ -454,11 +456,11 @@ void Sapphire::Network::GameConnection::generateEncryptionKey( uint32_t key, con m_baseKey[ 8 ] = 0xC6; m_baseKey[ 9 ] = 0x11; memcpy( ( char* ) m_baseKey + 0x0C, keyPhrase.c_str(), keyPhrase.size() ); - Sapphire::Util::md5( m_baseKey, m_encKey, 0x2C ); + Common::Util::md5( m_baseKey, m_encKey, 0x2C ); } -void Sapphire::Network::GameConnection::handlePackets( const Sapphire::Network::Packets::FFXIVARR_PACKET_HEADER& ipcHeader, - const std::vector< Sapphire::Network::Packets::FFXIVARR_PACKET_RAW >& packetData ) +void Lobby::GameConnection::handlePackets( const Network::Packets::FFXIVARR_PACKET_HEADER& ipcHeader, + const std::vector< Network::Packets::FFXIVARR_PACKET_RAW >& packetData ) { for( auto inPacket : packetData ) diff --git a/src/lobby/GameConnection.h b/src/lobby/GameConnection.h index 6bcb7122..fbed9386 100644 --- a/src/lobby/GameConnection.h +++ b/src/lobby/GameConnection.h @@ -16,10 +16,10 @@ #define DECLARE_HANDLER( x ) void x( Packets::GamePacketPtr pInPacket, Entity::PlayerPtr pPlayer ) -namespace Sapphire::Network +namespace Sapphire::Lobby { - class GameConnection : public Connection + class GameConnection : public Network::Connection { private: @@ -32,16 +32,16 @@ namespace Sapphire::Network bool m_bEncryptionInitialized; - AcceptorPtr m_pAcceptor; + Network::AcceptorPtr m_pAcceptor; LobbySessionPtr m_pSession; - LockedQueue< Packets::GamePacketPtr > m_inQueue; - LockedQueue< Packets::GamePacketPtr > m_outQueue; + Common::Util::LockedQueue< Network::Packets::GamePacketPtr > m_inQueue; + Common::Util::LockedQueue< Network::Packets::GamePacketPtr > m_outQueue; std::vector< uint8_t > m_packets; public: - GameConnection( HivePtr pHive, AcceptorPtr pAcceptor, FrameworkPtr pFw ); + GameConnection( Network::HivePtr pHive, Network::AcceptorPtr pAcceptor, FrameworkPtr pFw ); ~GameConnection(); @@ -58,26 +58,26 @@ namespace Sapphire::Network void sendError( uint64_t sequence, uint32_t errorcode, uint16_t messageId, uint32_t tmpId ); - void getCharList( Packets::FFXIVARR_PACKET_RAW& packet, uint32_t tmpId ); + void getCharList( Network::Packets::FFXIVARR_PACKET_RAW& packet, uint32_t tmpId ); - void enterWorld( Packets::FFXIVARR_PACKET_RAW& packet, uint32_t tmpId ); + void enterWorld( Network::Packets::FFXIVARR_PACKET_RAW& packet, uint32_t tmpId ); - bool sendServiceAccountList( Packets::FFXIVARR_PACKET_RAW& packet, uint32_t tmpId ); + bool sendServiceAccountList( Network::Packets::FFXIVARR_PACKET_RAW& packet, uint32_t tmpId ); - bool createOrModifyChar( Packets::FFXIVARR_PACKET_RAW& packet, uint32_t tmpId ); + bool createOrModifyChar( Network::Packets::FFXIVARR_PACKET_RAW& packet, uint32_t tmpId ); - void handlePackets( const Packets::FFXIVARR_PACKET_HEADER& ipcHeader, - const std::vector< Packets::FFXIVARR_PACKET_RAW >& packetData ); + void handlePackets( const Network::Packets::FFXIVARR_PACKET_HEADER& ipcHeader, + const std::vector< Network::Packets::FFXIVARR_PACKET_RAW >& packetData ); - void handleGamePacket( Packets::FFXIVARR_PACKET_RAW& pPacket ); + void handleGamePacket( Network::Packets::FFXIVARR_PACKET_RAW& pPacket ); - void handlePacket( Packets::FFXIVPacketBasePtr pPacket ); + void handlePacket( Network::Packets::FFXIVPacketBasePtr pPacket ); - void sendPackets( Packets::PacketContainer* pPacket ); + void sendPackets( Network::Packets::PacketContainer* pPacket ); - void sendPacket( Packets::LobbyPacketContainer& pLpc ); + void sendPacket( Network::Packets::LobbyPacketContainer& pLpc ); - void sendSinglePacket( Packets::FFXIVPacketBasePtr pPacket ); + void sendSinglePacket( Network::Packets::FFXIVPacketBasePtr pPacket ); }; diff --git a/src/lobby/LobbyPacketContainer.cpp b/src/lobby/LobbyPacketContainer.cpp index 2d217436..fcd4e459 100644 --- a/src/lobby/LobbyPacketContainer.cpp +++ b/src/lobby/LobbyPacketContainer.cpp @@ -4,10 +4,11 @@ #include #include +using namespace Sapphire; using namespace Sapphire::Common; using namespace Sapphire::Network::Packets; -Sapphire::Network::Packets::LobbyPacketContainer::LobbyPacketContainer( uint8_t* encKey ) +LobbyPacketContainer::LobbyPacketContainer( uint8_t* encKey ) { memset( &m_header, 0, sizeof( Sapphire::Network::Packets::FFXIVARR_PACKET_HEADER ) ); m_header.size = sizeof( Sapphire::Network::Packets::FFXIVARR_PACKET_HEADER ); @@ -17,12 +18,12 @@ Sapphire::Network::Packets::LobbyPacketContainer::LobbyPacketContainer( uint8_t* memset( m_dataBuf, 0, 0x1570 ); } -Sapphire::Network::Packets::LobbyPacketContainer::~LobbyPacketContainer() +LobbyPacketContainer::~LobbyPacketContainer() { m_entryList.clear(); } -void Sapphire::Network::Packets::LobbyPacketContainer::addPacket( FFXIVPacketBasePtr pEntry ) +void LobbyPacketContainer::addPacket( FFXIVPacketBasePtr pEntry ) { memcpy( m_dataBuf + m_header.size, &pEntry->getData()[ 0 ], pEntry->getSize() ); @@ -38,17 +39,17 @@ void Sapphire::Network::Packets::LobbyPacketContainer::addPacket( FFXIVPacketBas m_header.count++; } -uint16_t Sapphire::Network::Packets::LobbyPacketContainer::getSize() const +uint16_t LobbyPacketContainer::getSize() const { return m_header.size; } -uint8_t* Sapphire::Network::Packets::LobbyPacketContainer::getRawData( bool addstuff ) +uint8_t* LobbyPacketContainer::getRawData( bool addstuff ) { if( addstuff ) { m_header.unknown_0 = 0xff41a05252; - m_header.timestamp = Sapphire::Util::getTimeMs(); + m_header.timestamp = Common::Util::getTimeMs(); } memcpy( m_dataBuf, &m_header, sizeof( Sapphire::Network::Packets::FFXIVARR_PACKET_HEADER ) ); return m_dataBuf; diff --git a/src/lobby/LobbyPacketContainer.h b/src/lobby/LobbyPacketContainer.h index 9f40ef93..0ac3d0b5 100644 --- a/src/lobby/LobbyPacketContainer.h +++ b/src/lobby/LobbyPacketContainer.h @@ -12,7 +12,7 @@ namespace Sapphire::Network::Packets { - using FFXIVPacketBasePtr = std::shared_ptr< FFXIVPacketBase >; + using FFXIVPacketBasePtr = std::shared_ptr< Sapphire::Network::Packets::FFXIVPacketBase >; class LobbyPacketContainer { diff --git a/src/lobby/LobbySession.cpp b/src/lobby/LobbySession.cpp index 4cdd58b8..dc30fae2 100644 --- a/src/lobby/LobbySession.cpp +++ b/src/lobby/LobbySession.cpp @@ -1,6 +1,7 @@ #include "LobbySession.h" -namespace Sapphire { +using namespace Sapphire::Lobby; + LobbySession::LobbySession( void ) { //setSocket(NULL); @@ -11,5 +12,4 @@ LobbySession::~LobbySession( void ) { } -} diff --git a/src/lobby/LobbySession.h b/src/lobby/LobbySession.h index 95eeb5f8..66a77c27 100644 --- a/src/lobby/LobbySession.h +++ b/src/lobby/LobbySession.h @@ -7,7 +7,7 @@ #include #include -namespace Sapphire +namespace Sapphire::Lobby { class LobbySession diff --git a/src/lobby/RestConnector.cpp b/src/lobby/RestConnector.cpp index 94c988f0..a8ee459f 100644 --- a/src/lobby/RestConnector.cpp +++ b/src/lobby/RestConnector.cpp @@ -8,19 +8,21 @@ #include +using namespace Sapphire; + typedef std::vector< std::tuple< std::string, uint32_t, uint64_t, std::string > > CharList; -Sapphire::Network::RestConnector::RestConnector() +Lobby::RestConnector::RestConnector() { } -Sapphire::Network::RestConnector::~RestConnector() +Lobby::RestConnector::~RestConnector() { } -HttpResponse Sapphire::Network::RestConnector::requestApi( std::string endpoint, std::string data ) +HttpResponse Lobby::RestConnector::requestApi( std::string endpoint, std::string data ) { HttpClient client( restHost ); @@ -39,7 +41,7 @@ HttpResponse Sapphire::Network::RestConnector::requestApi( std::string endpoint, return r; } -Sapphire::LobbySessionPtr Sapphire::Network::RestConnector::getSession( char* sId ) +Lobby::LobbySessionPtr Lobby::RestConnector::getSession( char* sId ) { std::string json_string = "{\"sId\": \"" + std::string( sId ) + "\",\"secret\": \"" + serverSecret + "\"}"; @@ -65,7 +67,7 @@ Sapphire::LobbySessionPtr Sapphire::Network::RestConnector::getSession( char* sI if( content.find( "invalid" ) == std::string::npos ) { - LobbySessionPtr pSession( new Sapphire::LobbySession() ); + LobbySessionPtr pSession( new Lobby::LobbySession() ); pSession->setAccountID( json["result"].get< uint32_t >() ); pSession->setSessionId( ( uint8_t* ) sId ); return pSession; @@ -81,7 +83,7 @@ Sapphire::LobbySessionPtr Sapphire::Network::RestConnector::getSession( char* sI } } -bool Sapphire::Network::RestConnector::checkNameTaken( std::string name ) +bool Lobby::RestConnector::checkNameTaken( std::string name ) { std::string json_string = "{\"name\": \"" + name + "\",\"secret\": \"" + serverSecret + "\"}"; @@ -115,7 +117,7 @@ bool Sapphire::Network::RestConnector::checkNameTaken( std::string name ) } } -uint32_t Sapphire::Network::RestConnector::getNextCharId() +uint32_t Lobby::RestConnector::getNextCharId() { std::string json_string = "{\"secret\": \"" + serverSecret + "\"}"; @@ -154,7 +156,7 @@ uint32_t Sapphire::Network::RestConnector::getNextCharId() } } -uint64_t Sapphire::Network::RestConnector::getNextContentId() +uint64_t Lobby::RestConnector::getNextContentId() { std::string json_string = "{\"secret\": \"" + serverSecret + "\"}"; @@ -193,7 +195,7 @@ uint64_t Sapphire::Network::RestConnector::getNextContentId() } } -CharList Sapphire::Network::RestConnector::getCharList( char* sId ) +CharList Lobby::RestConnector::getCharList( char* sId ) { std::string json_string = "{\"sId\": \"" + std::string( sId, 56 ) + "\",\"secret\": \"" + serverSecret + "\"}"; @@ -249,7 +251,7 @@ CharList Sapphire::Network::RestConnector::getCharList( char* sId ) } } -bool Sapphire::Network::RestConnector::deleteCharacter( char* sId, std::string name ) +bool Lobby::RestConnector::deleteCharacter( char* sId, std::string name ) { std::string json_string = "{\"sId\": \"" + std::string( sId, 56 ) + "\",\"secret\": \"" + serverSecret + "\",\"name\": \"" + name + "\"}"; @@ -283,11 +285,11 @@ bool Sapphire::Network::RestConnector::deleteCharacter( char* sId, std::string n } } -int Sapphire::Network::RestConnector::createCharacter( char* sId, std::string name, std::string infoJson ) +int Lobby::RestConnector::createCharacter( char* sId, std::string name, std::string infoJson ) { std::string json_string = "{\"sId\": \"" + std::string( sId, 56 ) + "\",\"secret\": \"" + serverSecret + "\",\"name\": \"" + name + - "\",\"infoJson\": \"" + Sapphire::Util::base64Encode( ( uint8_t* ) infoJson.c_str(), infoJson.length() ) + "\"}"; + "\",\"infoJson\": \"" + Common::Util::base64Encode( ( uint8_t* ) infoJson.c_str(), infoJson.length() ) + "\"}"; HttpResponse r = requestApi( "createCharacter", json_string ); diff --git a/src/lobby/RestConnector.h b/src/lobby/RestConnector.h index b8c2935c..f361416c 100644 --- a/src/lobby/RestConnector.h +++ b/src/lobby/RestConnector.h @@ -15,7 +15,7 @@ namespace Sapphire class Session; } -namespace Sapphire::Network +namespace Sapphire::Lobby { class LobbySession; diff --git a/src/lobby/ServerLobby.cpp b/src/lobby/ServerLobby.cpp index 9d243624..b85380c9 100644 --- a/src/lobby/ServerLobby.cpp +++ b/src/lobby/ServerLobby.cpp @@ -21,9 +21,11 @@ #include -Sapphire::Network::RestConnector g_restConnector; +using namespace Sapphire; -namespace Sapphire +Sapphire::Lobby::RestConnector g_restConnector; + +namespace Sapphire::Lobby { @@ -31,7 +33,7 @@ namespace Sapphire m_configPath( configPath ), m_numConnections( 0 ) { - m_pConfig = std::make_shared< ConfigMgr >(); + m_pConfig = std::make_shared< Sapphire::Common::ConfigMgr >(); } LobbySessionPtr ServerLobby::getSession( char* sessionId ) @@ -63,15 +65,15 @@ namespace Sapphire Logger::setLogLevel( m_config.global.general.logLevel ); - auto pFw = std::make_shared< Framework >(); - Network::HivePtr hive( new Network::Hive() ); - Network::addServerToHive< Network::GameConnection >( m_ip, m_port, hive, pFw ); + auto pFw = make_Framework(); + auto hive = Network::make_Hive(); + Network::addServerToHive< GameConnection >( m_ip, m_port, hive, pFw ); Logger::info( "Lobby server running on {0}:{1}", m_ip, m_port ); std::vector< std::thread > threadGroup; - threadGroup.emplace_back( std::bind( &Network::Hive::run, hive.get() ) ); + threadGroup.emplace_back( std::bind( &Sapphire::Network::Hive::run, hive.get() ) ); for( auto& thread : threadGroup ) if( thread.joinable() ) diff --git a/src/lobby/ServerLobby.h b/src/lobby/ServerLobby.h index 99e091ef..c258257a 100644 --- a/src/lobby/ServerLobby.h +++ b/src/lobby/ServerLobby.h @@ -9,10 +9,14 @@ const std::string LOBBY_VERSION = "0.0.5"; -namespace Sapphire +namespace Sapphire::Common +{ + class ConfigMgr; +} + +namespace Sapphire::Lobby { class LobbySession; - class ConfigMgr; using LobbySessionMap = std::map< std::string, LobbySessionPtr >; @@ -29,7 +33,7 @@ namespace Sapphire uint16_t m_port; std::string m_ip; - std::shared_ptr< ConfigMgr > m_pConfig; + std::shared_ptr< Sapphire::Common::ConfigMgr > m_pConfig; public: ServerLobby( const std::string& configPath ); diff --git a/src/lobby/client_http.hpp b/src/lobby/client_http.hpp index fc30d950..f22cb8d2 100644 --- a/src/lobby/client_http.hpp +++ b/src/lobby/client_http.hpp @@ -17,16 +17,16 @@ class case_insensitive_equals { public: bool operator()(const std::string &key1, const std::string &key2) const { - return Sapphire::Util::toLowerCopy( key1 ) == Sapphire::Util::toLowerCopy( key2 ); + return Sapphire::Common::Util::toLowerCopy( key1 ) == Sapphire::Common::Util::toLowerCopy( key2 ); } }; class case_insensitive_hash { public: - size_t operator()( const std::string &key ) const + size_t operator()( const std::string &key ) const { std::size_t seed=0; for( auto &c : key ) - Sapphire::Util::hashCombine< char >( seed, std::tolower( c ) ); + Sapphire::Common::Util::hashCombine< char >( seed, std::tolower( c ) ); return seed; } }; diff --git a/src/lobby/mainLobbyServer.cpp b/src/lobby/mainLobbyServer.cpp index 957604c8..eb3c7653 100644 --- a/src/lobby/mainLobbyServer.cpp +++ b/src/lobby/mainLobbyServer.cpp @@ -4,7 +4,7 @@ Sapphire::Common::Util::CrashHandler crashHandler; -Sapphire::ServerLobby g_serverLobby( "lobby.ini" ); +Sapphire::Lobby::ServerLobby g_serverLobby( "lobby.ini" ); int main( int32_t argc, char* argv[] ) { diff --git a/src/scripts/action/common/ActionReturn6.cpp b/src/scripts/action/common/ActionReturn6.cpp index 9831c7e3..aedb0a38 100644 --- a/src/scripts/action/common/ActionReturn6.cpp +++ b/src/scripts/action/common/ActionReturn6.cpp @@ -12,7 +12,7 @@ public: { } - void onExecute( Sapphire::Action::Action& action ) override + void onExecute( Sapphire::World::Action::Action& action ) override { if( !action.getSourceChara()->isPlayer() ) return; diff --git a/src/scripts/action/common/ActionSprint3.cpp b/src/scripts/action/common/ActionSprint3.cpp index 0067dcac..133cbb2e 100644 --- a/src/scripts/action/common/ActionSprint3.cpp +++ b/src/scripts/action/common/ActionSprint3.cpp @@ -11,7 +11,7 @@ public: { } - void onExecute( Sapphire::Action::Action& action ) override + void onExecute( Sapphire::World::Action::Action& action ) override { auto sourceChara = action.getSourceChara(); diff --git a/src/scripts/action/common/ActionTeleport5.cpp b/src/scripts/action/common/ActionTeleport5.cpp index e08afda6..1a2fcd77 100644 --- a/src/scripts/action/common/ActionTeleport5.cpp +++ b/src/scripts/action/common/ActionTeleport5.cpp @@ -14,7 +14,7 @@ public: { } - void onExecute( Sapphire::Action::Action& action ) override + void onExecute( Sapphire::World::Action::Action& action ) override { auto player = action.getSourceChara()->getAsPlayer(); diff --git a/src/scripts/action/playeractions/archer/ActionHeavyShot97.cpp b/src/scripts/action/playeractions/archer/ActionHeavyShot97.cpp deleted file mode 100644 index 882d4549..00000000 --- a/src/scripts/action/playeractions/archer/ActionHeavyShot97.cpp +++ /dev/null @@ -1,23 +0,0 @@ -#include