Using _GNUC_ wrapper, if needed I can added in a more robust configure time check for the specific header, but that seemed overkill for just this check.
Added udplibrary - consider making this an external dependency
Add basic application loop and a ServiceContainer class.
Added basic registrar service
Clang format
Rename RegistrarService to RegistrarNode
Add serialization helpers
Process GetChatServer message
Add tools for streaming binary data to output
Move Connection management into NodeClient
Refactored NodeClient to be the layer between the application and the udp library that handles tasks specific to translating from one system to the other
Abstracted common bits of the node class out to a reusable base for the gateway as well.
Added stub classes for gateway node and clients
Add missing OnTick call
Added SetApiVersion handler and related messages
Use :: to prevent the overload selected by argument dependent lookup from being used
Enable C++14 building on gcc/clang
Add missing header
Iterator returned by remove_if should not be a ref
Added start of ChatAvatarService
Add serialization support directly for strongly typed enums
Make sending message calls more concise
Add stubs for getting avatars from the online list and from persistent storage
Add SQLite3 dependency
Fixed variable name regression in last commit
Make param for SendMessage const
Tweak network message logging
Removed ServiceContainer, each Node instance serves as its own "service container"
Remove unused file
Open database connection in GatewayNode to pass to services that might need it.
GetPersistedAvatarByNameAndAddress implemented
Refactored class to return boost::optional from "Find" member functions.
Move result codes enum to its own header as it will be included in other locations.
Handle LoginAvatar messages
Added missing include
Fixed compile error on gcc
Use optional avatar arguments for network messages where an avatar might not exist due to an error
Added simple sql script for creating the necessary table structure.
Move init_database.sql to extras
Add a travis-ci file
Added newline to end of file
Changed min required cmake version
Modern C++ compiler support on travis-ci
Disable clang for now (issue on travis-ci end)
Missed disabling the llvm toolchain
Add the travis-ci build badge to the README, which also serves as the project landing page
Added a notes on the dependencies for swgchat and simple build instructions.
Added ChatRoom and related service class for managing rooms.
Added GetRoomSummaries request/response messages and related handler.
Added create table statement for room data
Load chat room data from persistent storage
Support room creation and persistence
Minor tweaks to room address handling
Added GetRoom request/response messages and handler
Added EnterRoom request/response and handler
Build the application configuration from command line, config file or both. Command line settings take precidence over those in the config file.
Adds dependency on boost::program_options
Use trusty
Reset state when servers reconnect
Added logger support via easyloggingpp, a header-only logger.
Updated places that were using cout for logging to use the logger.
Moved all external code to an "externals" directory.
Renamed SendMessage to prevent pita clashes when windows headers get included.
Create verbose logs with unique filenames on each run.
Moved the logger_config option to a commandline only option
Added LOGOUTAVATAR request/response messages and handler
Added SETAVATARATTRIBUTES request/response messages and handler
Added stub classes for persistent message handling
Added GETPERSISTENTHEADERS request message and handler stub
Add a table for persistent message storage
Add handler for GetPersistentHeaders
Add messages and handlers for sending/getting/updating persistent messages
Fix isset check for avatar
Adding initial Contact management
Added support for friend/ignore list management
Add a response callback message to notify recipients of mail they have a new message
Remove the ContactService, manage friends/ignore list within the related avatar
Send FRIENDLOGIN update messages
Removed contact.hpp header, fixed cyclic dependency with ChatAvatar
Send updates on avatar logout
Only send non-deleted message headers.
Send update messages to the appropriately connected server.
fix compile issue in currently unused template
Added instant message support
Testing travis-ci with clang once more as the llvm apt repo is now back online
Uncommented clang-3.7 package
Adding libc++ and libc++abi packages
Disabling clang building for now, will need to devise a solution for building the boost dependency with clang as well before enabling again
Added implementations for a number of room related messages.
Handle add/remove banned - will add persistence for the banned/admin/moderator lists shortly
Handle room chat. Initial work on room moderation/attribute management
Added support for destroying rooms
Message sending tweaks
Prevent sending redundant messages to a game server that has already
received the update.
Implement the leave room handler
Added add/remove moderator handlers
Added descriptive comment for this member func
Specified unique columns and foreign keys
Handle storing moderator/banned lists
Cleanup of the EnterRoom handler
Avatar that creates a room is also a moderator
Restructure projects for testing
Moved all code not relating to the app lifetime to a library so it can
be easily linked to for testing
In addition, the initial setup for tests using the Catch library was
created
Add a general handler to orchestrate the request/response process. This pulls all the duplicate code for setup/teardown/message handling leaving the message handlers to be simpler and easier to take in.
Moving each request/response/handler set to its own compilation unit to make it easier to find and read them.
Moved LogoutAvatar to its own compilation unit
Moved CreateRoom to its own compilation unit
Moved DestroyRoom to its own compilation unit
Moved SendInstantMessage to own compilation unit
Also added a basic info log for each incoming request received.
Moved SendRoomMessage to its own compilation unit
Moved AddFriend handling to its own compilation unit
Moved RemoveFriend handling to its own compilation unit
Moved FriendStatus handling to its own compilation unit
Moved AddIgnore handling to its own compilation unit
Moved RemoveIgnore to its own compilation unit
Moved EnterRoom handling to its own compilation unit
Moved LeaveRoom handling to its own compilation unit
Move AddModerator to its own compilation unit
Moved RemoveModerator to its own compilation unit
Moved add/remove banned handlers to own compilation unit
Move Add/Remove invite handlers to own compilation unit
Move GetRoom handler to own compilation unit
Moved GetRoomSummaries handler to own compilation unit
Moved persistent message handlers to own compilation unit
Moved IgnoreStatus to own compilation unit
Move SetApiVersion handler to own compilation unit
Moved GetAnyAvatar and SetAvatarAttributes handlers to own compilation units
Moving remaining messages to own compilation units
Moved request/response enums to the ChatEnum header
Fix typename issue
Fixed source grouping helper
Load up a galaxies rooms when system user logs in
Use stringstreams vs static array
As more rooms and more players are added, the buffer holding the
serialized data needs to be able to expand accordingly, this fix
addresses that
throw appropriate exceptions from the message service
ChatAvatar tracks rooms they are in now
LogoutAvatar now removes avatar from all rooms they are joined to currently.
Add appropriate checks for managing the room
String version of error codes are now logged instead of just integer codes
Implement kick avatar
Fixes potential crash when the vector of rooms is resized (could invalidate pointers into the container)
fix for persistent message oob storage
Support for destroying avatars
Fixed unsigned/signed mismatch
Support failoverreloginavatar
Replace wstring usage (which has a base type of wchar_t that is OS specific) with u16string which has a base type of uchar16_t that is guaranteed to be 16bit, exactly the size needed by the SOE protocol.
Fix issue with streaming u16string types
Remove udplibrary source from codebase
Ignore the udplibrary dir if it exists