Atlas Game Manager
A game manager for f95 and dlsite written in c++
Loading...
Searching...
No Matches
QueryBuilder.hpp File Reference
#include <string>
#include "core/logging/logging.hpp"
#include "core/system.hpp"

Go to the source code of this file.

Macros

#define ATLAS_QUERYBUILDER_HPP
 

Enumerations

enum  SortOrder { Name , Creator , Engine , Time }
 

Functions

std::string_view trimSpaces (std::string_view str)
 
std::string parseBytesize (std::string_view str)
 
std::string generateQuery (const std::string str, const SortOrder order, const bool asc)
 
std::pair< std::string_view, std::string_view > seperateNamespace (const std::string_view str)
 
std::string processString (std::string_view str_view)
 
std::string escape (std::string_view str)
 
std::string orderToStr (const SortOrder order)
 
std::string_view extractUntilNext (std::string_view &str)
 Extracts characters until reaching a grouping operator or namespace or system tag.
 

Macro Definition Documentation

◆ ATLAS_QUERYBUILDER_HPP

#define ATLAS_QUERYBUILDER_HPP

Enumeration Type Documentation

◆ SortOrder

enum SortOrder

@ page SearchParsing Searching In order to understand the basics of searching one concept has to be developed. The concept of namespace:subsection. Namespaces allow for the search parser to very easily determine what specific sections of text are. All strings must have a valid namespace. Lacking one is considered undefined behaviour. A full list of all the namespaces and what they do can be found in the Namespace List section and a list of valid operators in the Operator List section

@ anchor NamespaceParsingList The following is a list of all valid namespaces currently implemented.

Name Description Example Required Atlas version
system System specific tags that are used for more complicate searches. See SystemParsingList for all the valid subsections system:filesize v1.0.0
title Searches for a specific title title:Haremon v1.0.0
creator Searches for a specific creator/developer creator:TsunAmie v1.0.0
version Searches for a specific version text version:v1.0 v1.0.0

@ anchor SystemParsingList The following is a list of all valid system: subtags

Name Description Example What it does
filesize Searches for a specific filesize (End in B, K, M, G or T) system:filesize > 5G searches for all games that have a total size of above 5GB

@ anchor OperatorParsingList Operator List

Symbol Description Example What it does
& And title:Haremon & creator:TsunAmie Searches for all records with the title Haremon AND creator TsunAmie
| Or title:Haremon | creator:TsunAmie Searches for all records with the title Haremon OR creator TsunAmie
! Not !title:Haremon Searches for all records with the title NOT being Haremon
() Group system:filesize > 5G & (title:FirstGame | title:SecondGame) Searches for all titles with the name FirstGame or SecondGame that also have a filesize above 5GB
Enumerator
Name 
Creator 
Engine 
Time 

Function Documentation

◆ escape()

std::string escape ( std::string_view str)

◆ extractUntilNext()

std::string_view extractUntilNext ( std::string_view & str)

Extracts characters until reaching a grouping operator or namespace or system tag.

◆ generateQuery()

std::string generateQuery ( const std::string str,
const SortOrder order,
const bool asc )

◆ orderToStr()

std::string orderToStr ( const SortOrder order)

◆ parseBytesize()

std::string parseBytesize ( std::string_view str)

◆ processString()

std::string processString ( std::string_view str_view)

◆ seperateNamespace()

std::pair< std::string_view, std::string_view > seperateNamespace ( const std::string_view str)

◆ trimSpaces()

std::string_view trimSpaces ( std::string_view str)