00001
00007 #ifndef __LOCATION_RESOLUTION_GENIE_H__
00008 #define __LOCATION_RESOLUTION_GENIE_H__
00009
00010 #include "Event.H"
00011
00013 #define ZIP_URL_SIZE 128
00014
00016 #define POST_ZIP_DATA_SIZE 16
00017
00019 #define POST_ADDRESS_ADD_DATA 32
00020
00022 #define HTML_LINE_LENGTH 1024
00023
00025 #define BASE_FROM_ZIP_URL "http://zip4.usps.com/zip4/zcl_3_results.jsp"
00026
00027 #define BASE_TO_ZIP_URL "http://zip4.usps.com/zip4/zcl_0_results.jsp"
00028
00033 class LocationResolutionGenie {
00034
00035 public:
00036
00037 LocationResolutionGenie();
00038 ~LocationResolutionGenie();
00039
00047 bool locate(Event* event);
00048
00049 private:
00050
00051
00052 bool parseCityState(FILE* page, char * eventCity, char * eventState);
00053 bool getCityState(Event* event);
00054 bool calcZip(Event* event);
00055 bool checkAlternativeCities(char*str, size_t len, FILE* page, char* eventCity);
00056
00057 };
00058
00059 #endif