Esempio n. 1
0
	bool Database::GetChatrooms(const User &Owner, std::vector<Chatroom> &Out)
	{
		Out.clear();
		const std::string Query = "SELECT * FROM Chatroom WHERE OwnerUsername = :OwnerUsername";

		Statement s;
		if (s.Prepare(Inner, Query))
			return false;

		if (!s.Bind(":OwnerUsername", Owner.Username))
			return false;

		bool MoreData = true;
		while (MoreData)
		{
			if (!s.Step(MoreData))
				return false;

			Chatroom c;
			if (!_GetChatroom(s, c))
				return false;
			Out.push_back(c);
		}

		return true;
	}
Esempio n. 2
0
	bool Database::GetChatrooms(const Server &Host, std::vector<Chatroom> &Out)
	{
		Out.clear();
		const std::string Query = "SELECT * FROM Chatroom WHERE ServerIP = :ServerIP' AND ServerPort = :ServerPort AND ServerFamily = :ServerFamily";

		Statement s;
		if (s.Prepare(Inner, Query))
			return false;

		if (!s.Bind(":ServerIP", Host.Address.GetPrintableIP()) || !s.Bind(":ServerPort", Host.Address.Port) || !s.Bind(":ServerFamily", Host.Address.Family))
			return false;

		bool MoreData = true;
		while (MoreData)
		{
			if (!s.Step(MoreData))
				return false;

			Chatroom c;
			if (!_GetChatroom(s, c))
				return false;
			Out.push_back(c);
		}

		return true;
	}
Esempio n. 3
0
	bool Database::GetUser(const std::string &Username, User &Out)
	{
		const std::string Query = "SELECT * FROM User WHERE Username = :Username";

		Statement s;
		if (!s.Prepare(Inner, Query))
			return false;

		if (!s.Bind(":Username", Username.c_str()))
			return false;

		if (!s.Step())
			return false;

		if (!_GetUser(s, Out))
			return false;

		return true;
	}
Esempio n. 4
0
	bool Database::GetChatroom(const std::string &Name, Chatroom &Out)
	{
		const std::string Query = "SELECT * FROM Chatroom WHERE Name = :Name";

		Statement s;
		if (!s.Prepare(Inner, Query))
			return false;

		if (!s.Bind(":Name", Name))
			return false;

		if (!s.Step())
			return false;

		if (!_GetChatroom(s, Out))
			return false;

		return true;
	}
Esempio n. 5
0
	bool Database::GetServer(const Net::Address Address, Server &Out)
	{
		const std::string Query = "SELECT * FROM Server WHERE Family = :Family AND IP = :IP AND Port = :Port";

		Statement s;
		if (!s.Prepare(Inner, Query))
			return false;

		if (!s.Bind(":Family", Address.Family) || !s.Bind(":IP", Address.GetPrintableIP()) || !s.Bind(":Port", Address.Port))
			return false;

		if (!s.Step())
			return false;

		if (!_GetServer(s, Out))
			return false;

		return true;
	}
Esempio n. 6
0
	bool Database::GetUsers(std::vector<User> &Users)
	{
		Users.clear();
		const std::string Query = "SELECT * FROM User";

		Statement s;
		if (!s.Prepare(Inner, Query))
			return false;

		bool MoreData = true;
		while (MoreData)
		{
			if (!s.Step(MoreData))
				return false;

			User u;
			if (!_GetUser(s, u))
				return false;
			Users.push_back(u);
		}

		return true;
	}
Esempio n. 7
0
	bool Database::GetChatrooms(std::vector<Chatroom> &Chatrooms)
	{
		Chatrooms.clear();
		const std::string Query = "SELECT * FROM Chatroom";

		Statement s;
		if (s.Prepare(Inner, Query))
			return false;

		bool MoreData = true;
		while (MoreData)
		{
			if (!s.Step(MoreData))
				return false;

			Chatroom c;
			if (!_GetChatroom(s, c))
				return false;
			Chatrooms.push_back(c);
		}

		return true;
	}
Esempio n. 8
0
	bool Database::GetServers(std::vector<Server> &Servers)
	{
		Servers.clear();
		const std::string Query = "SELECT * FROM Server";

		Statement s;
		if (!s.Prepare(Inner, Query))
			return false;

		bool MoreData = true;
		while (MoreData)
		{
			if (!s.Step(MoreData))
				return false;

			Server Out;
			if (!_GetServer(s, Out))
				return false;
			Servers.push_back(Out);
		}

		return true;
	}