/*! 
*   \file  UtilitiesWeb.h
*   \brief Declares class to hold utility methods.
*    
*   \details  
*   Utilities provides support for downloading images, hash, etx. 
*
*   \date      November 3, 2011
*   \copyright eBay Research Labs.
*/

#pragma once

#include <string>
#include <list>
#include <vector>
#include <ctime>
#include "boost/filesystem.hpp"   // Includes all needed Boost.Filesystem declarations

void   Tokenize(std::string &str, const char* separator, std::vector<std::string> &vecTokens);

bool         ConvertMSTString2EpochTime(const std::string &strTime, time_t &epochTime, time_t defaultTime=0);
std::string  ConvertEpochTime2MSTString(time_t dateTime);

typedef std::vector < boost::filesystem::path > FilePathList;
typedef std::vector < std::pair < std::string, boost::filesystem::path > > FilePathRecList;

void GetSubdirectories(boost::filesystem::path rootDir,  FilePathRecList  &subdirList);
void GetFilesInDirectory(boost::filesystem::path rootDir, FilePathList &fileList, std::string extension);

boost::filesystem::path hiddenName(const boost::filesystem::path& src);
boost::filesystem::path unhiddenName(const boost::filesystem::path& src);
boost::filesystem::path touchName(const boost::filesystem::path& src, const std::string& instance);

extern int getNumericSiteID(const std::string&);
extern std::string getStringSiteID(int);


