InspIRCd  3.0
Public Member Functions | List of all members
irc::tokenstream Class Reference

#include <hashcomp.h>

Public Member Functions

 tokenstream (const std::string &msg, size_t start=0, size_t end=std::string::npos)
 
std::string & GetMessage ()
 
bool GetMiddle (std::string &token)
 
bool GetTrailing (std::string &token)
 

Detailed Description

irc::tokenstream reads a string formatted as per RFC1459 and RFC2812. It will split the string into 'tokens' each containing one parameter from the string. For instance, if it is instantiated with the string: "PRIVMSG #test :foo bar baz qux" then each successive call to tokenstream::GetToken() will return "PRIVMSG", "#test", "foo bar baz qux", "". Note that if the whole string starts with a colon this is not taken to mean the string is all one parameter, and the first item in the list will be ":item". This is to allow for parsing 'source' fields from data.

Constructor & Destructor Documentation

◆ tokenstream()

irc::tokenstream::tokenstream ( const std::string &  msg,
size_t  start = 0,
size_t  end = std::string::npos 
)

Create a tokenstream and fill it with the provided data.

Member Function Documentation

◆ GetMessage()

std::string& irc::tokenstream::GetMessage ( )
inline

Retrieves the underlying message.

◆ GetMiddle()

bool irc::tokenstream::GetMiddle ( std::string &  token)

Retrieve the next <middle> token in the token stream.

Parameters
tokenThe next token available, or an empty string if none remain.
Returns
True if tokens are left to be read, false if the last token was just retrieved.

◆ GetTrailing()

bool irc::tokenstream::GetTrailing ( std::string &  token)

Retrieve the next <trailing> token in the token stream.

Parameters
tokenThe next token available, or an empty string if none remain.
Returns
True if tokens are left to be read, false if the last token was just retrieved.

The documentation for this class was generated from the following files: