#include <ip2cparser.h>
Classes | |
class | ConstructorDestructorParserStateSetter |
Sets states for IP2C when being constructed and destructed. More... | |
class | ParsingThread |
Signals | |
void | parsingFinished (bool bSuccess) |
A signal emitted when parser finishes its job. More... | |
Public Member Functions | |
IP2CParser (IP2C *pTargetDatabase) | |
IP2C * | ip2c () const |
Retrieves the IP2C database this parser operates on. More... | |
bool | isParsing () const |
For multi-threading purposes. If this is true it is not recommended to delete this object nor the underlying IP2C database. More... | |
bool | readDatabase (const QString &filePath) |
void | readDatabaseThreaded (const QString &filePath) |
Protected Types | |
typedef QHash< QString, QList < IP2C::IP2CData > > | Countries |
typedef QHash< QString, QList < IP2C::IP2CData > >::const_iterator | CountriesConstIt |
typedef QHash< QString, QList < IP2C::IP2CData > >::iterator | CountriesIt |
Protected Slots | |
void | parsingThreadFinished () |
Protected Member Functions | |
bool | convertAndSaveDatabase (QByteArray &downloadedData, const QString &outFilePath) |
void | convertCountriesIntoBinaryData (const Countries &countries, QByteArray &output) |
bool | doReadDatabase (const QString &filePath) |
bool | readDatabaseVersion1 (const QByteArray &dataArray) |
bool | readDatabaseVersion2 (const QByteArray &dataArray) |
void | readTextDatabase (QByteArray &textDatabase, Countries &countries) |
Protected Attributes | |
bool | bIsParsing |
ParsingThread * | currentParsingThread |
IP2C * | pTargetDatabase |
Database to which the IP2C parser will save the data it retrieves from IP2C file. More... | |
QMutex | thisLock |
Class accepts text database from: http://software77.net/geo-ip The first time the text database is read it is compacted into a smaller format and stored on the drive.
Compacted database file format, version 1: (all strings are null terminated) Header:
Block repeated until EOF:
Compacted database file format, version 2: (all strings are null terminated) Header:
Block repeated until EOF:
Definition at line 81 of file ip2cparser.h.
|
protected |
Key value is the abbreviation of the country name.
Definition at line 148 of file ip2cparser.h.
|
protected |
Converts downloaded text database to a compacted binary file. The name of the new file is IP2C::file.
Definition at line 40 of file ip2cparser.cpp.
|
protected |
Converts previously created by readTextDatabase() countries hash table into an output data that can be saved into a file.
Definition at line 64 of file ip2cparser.cpp.
|
inline |
Retrieves the IP2C database this parser operates on.
Definition at line 91 of file ip2cparser.h.
|
inline |
For multi-threading purposes. If this is true it is not recommended to delete this object nor the underlying IP2C database.
Definition at line 97 of file ip2cparser.h.
|
signal |
A signal emitted when parser finishes its job.
It is not safe to delete IP2CParser object after readDatabase() call and before this signal is emitted.
|
protected |
Called by convertAndSaveDatabase().
textDatabase | - contents of the file, this will be modified by this function. | |
[out] | countries | - returned hash table of countries. |
Definition at line 300 of file ip2cparser.cpp.
|
protected |
Database to which the IP2C parser will save the data it retrieves from IP2C file.
Since IP2CParser is prepared to work in a separate thread it is not advised to delete the IP2C object before parsing is complete.
Definition at line 162 of file ip2cparser.h.