#pragma once #include #include class DiffCmd { public: DiffCmd(); ~DiffCmd(); /** * Append parameter to cmd params **/ void add(const std::string ¶m); /** * file to pass to execvp to construct executable path from PATH or ./ **/ std::string getFile() const; /** * get args to pass to execvp **/ std::deque getArgv() const; /** * lazy-compute char*argv[] from File &a and File &b **/ char **computeArgv(const std::deque &inputFiles); /** * Hash string **/ static unsigned long long hashString(const std::string &s); private: std::deque argv; char **allocatedArgv; };