Created
May 22, 2024 21:38
-
-
Save nathan130200/9f3c3773552d27b507c35849120661c6 to your computer and use it in GitHub Desktop.
JID parser & management.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include "jid.h" | |
#include "xmpp.h" | |
#include <sstream> | |
using namespace std; | |
Jid::Jid() | |
{ | |
} | |
Jid::Jid(const std::string& str) | |
{ | |
size_t at = str.find('@'); | |
size_t slash = str.find('/'); | |
if (at == string::npos && slash == string::npos) | |
_domain = str; | |
else | |
{ | |
if (at != string::npos) | |
_local = str.substr(0, at); | |
if (slash == string::npos) | |
_domain = str.substr(at + 1); | |
else | |
{ | |
_domain = str.substr(at + 1, (slash - 1) - at); | |
_resource = str.substr(slash + 1); | |
} | |
} | |
} | |
Jid::Jid(const string local, const string domain, const string resource) : | |
_local(local), | |
_domain(domain), | |
_resource(resource) | |
{ | |
} | |
Jid::Jid(const char* local, const char* domain, const char* resource) : | |
_local(local), | |
_domain(domain), | |
_resource(resource) | |
{ | |
} | |
const string Jid::toString() | |
{ | |
stringstream out; | |
if (!_local.empty()) | |
out << _local << "@"; | |
out << _domain; | |
if (!_resource.empty()) | |
out << "/" << _resource; | |
return out.str(); | |
} | |
const string Jid::local() { return _local; } | |
const string Jid::domain() { return _domain; } | |
const string Jid::resource() { return _resource; } | |
void Jid::setLocal(const string local) { _local = local; } | |
void Jid::setDomain(const string domain) { _domain = domain; } | |
void Jid::setResource(const string resource) { _resource = resource; } | |
void Jid::setLocal(const char* local) { _local = local; } | |
void Jid::setDomain(const char* domain) { _domain = domain; } | |
void Jid::setResource(const char* resource) { _resource = resource; } |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#pragma once | |
#include <string> | |
class Jid | |
{ | |
private: | |
std::string _local; | |
std::string _domain; | |
std::string _resource; | |
public: | |
Jid(); | |
Jid(const std::string& str); | |
Jid(const std::string local, const std::string domain, const std::string resource); | |
Jid(const char* local, const char* domain, const char* resource); | |
~Jid() = default; | |
const std::string local(); | |
const std::string domain(); | |
const std::string resource(); | |
void setLocal(const std::string value); | |
void setDomain(const std::string value); | |
void setResource(const std::string value); | |
void setLocal(const char* value); | |
void setDomain(const char* value); | |
void setResource(const char* value); | |
const std::string toString(); | |
}; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment