71 lines
2.7 KiB
C++
71 lines
2.7 KiB
C++
/*
|
|
* Copyright (c) 2014, Oculus VR, Inc.
|
|
* All rights reserved.
|
|
*
|
|
* This source code is licensed under the BSD-style license found in the
|
|
* LICENSE file in the root directory of this source tree. An additional grant
|
|
* of patent rights can be found in the PATENTS file in the same directory.
|
|
*
|
|
*/
|
|
|
|
/// \file
|
|
/// \brief Contains RakNetCommandParser , used to send commands to an instance of RakPeer
|
|
///
|
|
|
|
#include "NativeFeatureIncludes.hpp"
|
|
#if _RAKNET_SUPPORT_RakNetCommandParser==1
|
|
|
|
#ifndef __RAKNET_COMMAND_PARSER
|
|
#define __RAKNET_COMMAND_PARSER
|
|
|
|
#include "CommandParserInterface.hpp"
|
|
#include "Export.hpp"
|
|
|
|
namespace RakNet
|
|
{
|
|
class RakPeerInterface;
|
|
|
|
/// \brief This allows a console client to call most of the functions in RakPeer
|
|
class RAK_DLL_EXPORT RakNetCommandParser : public CommandParserInterface
|
|
{
|
|
public:
|
|
// GetInstance() and DestroyInstance(instance*)
|
|
STATIC_FACTORY_DECLARATIONS(RakNetCommandParser)
|
|
|
|
RakNetCommandParser();
|
|
~RakNetCommandParser();
|
|
|
|
/// Given \a command with parameters \a parameterList , do whatever processing you wish.
|
|
/// \param[in] command The command to process
|
|
/// \param[in] numParameters How many parameters were passed along with the command
|
|
/// \param[in] parameterList The list of parameters. parameterList[0] is the first parameter and so on.
|
|
/// \param[in] transport The transport interface we can use to write to
|
|
/// \param[in] systemAddress The player that sent this command.
|
|
/// \param[in] originalString The string that was actually sent over the network, in case you want to do your own parsing
|
|
bool OnCommand(const char *command, unsigned numParameters, char **parameterList, TransportInterface *transport, const SystemAddress &systemAddress, const char *originalString);
|
|
|
|
/// You are responsible for overriding this function and returning a static string, which will identifier your parser.
|
|
/// This should return a static string
|
|
/// \return The name that you return.
|
|
const char *GetName(void) const;
|
|
|
|
/// A callback for when you are expected to send a brief description of your parser to \a systemAddress
|
|
/// \param[in] transport The transport interface we can use to write to
|
|
/// \param[in] systemAddress The player that requested help.
|
|
void SendHelp(TransportInterface *transport, const SystemAddress &systemAddress);
|
|
|
|
/// Records the instance of RakPeer to perform the desired commands on
|
|
/// \param[in] rakPeer The RakPeer instance, or a derived class (e.g. RakPeer or RakPeer)
|
|
void SetRakPeerInterface(RakNet::RakPeerInterface *rakPeer);
|
|
protected:
|
|
|
|
/// Which instance of RakPeer we are working on. Set from SetRakPeerInterface()
|
|
RakPeerInterface *peer;
|
|
};
|
|
|
|
} // namespace RakNet
|
|
|
|
#endif
|
|
|
|
#endif // _RAKNET_SUPPORT_*
|