20#include "aeongames/Utilities.hpp"
26 std::size_t extpos = aFilePath.find_last_of (
"/\\" );
27 extpos = ( extpos == std::string::npos ) ? 0 : extpos;
28 extpos = aFilePath.find_first_of (
'.', extpos );
29 if ( extpos != std::string::npos )
31 std::string extension = aFilePath.substr ( extpos );
32 std::transform ( extension.begin(), extension.end(), extension.begin(), tolower );
40 struct stat stat_buffer {};
41 return ( ::stat ( aFilePath.c_str(), &stat_buffer ) == 0 ) ? true :
false;
46 mShortOption{aShortOption},
47 mLongOption{aLongOption},
48 mUserData{aUserData} {};
49 OptionHandler::~OptionHandler() =
default;
64 mHandler ( aArgument, aUserData );
69 for (
int i = 0; i < argc; ++i )
71 if ( argv[i][0] ==
'-' )
74 if ( argv[i][1] ==
'-' )
77 handler = std::find_if ( aOptionHandler, aOptionHandler + aOptionHandlerCount,
86 handler = std::find_if ( aOptionHandler, aOptionHandler + aOptionHandlerCount,
92 if ( handler && handler != ( aOptionHandler + aOptionHandlerCount ) )
94 char* argument = ( ( i + 1 ) < argc ) ? ( argv[i + 1][0] !=
'-' ) ? argv[i + 1] : nullptr :
nullptr;
Command-line option handler.
DLL void * GetUserData() const
Get the user data pointer.
DLL const char * GetLongOption() const
Get the long option string.
DLL const char GetShortOption() const
Get the short option character.
DLL void operator()(const char *aArgument, void *aUserData) const
Invoke the handler callback.
DLL OptionHandler(const char aShortOption, const char *aLongOption, void(*aHandler)(const char *, void *), void *aUserData=nullptr)
Construct an OptionHandler.
<- This is here just for the literals
DLL void ProcessOpts(int argc, char *argv[], const OptionHandler *aOptionHandler, size_t aOptionHandlerCount)
Process command-line options.
DLL bool FileExists(const std::string &aFilePath)
Check whether a file exists at the given path.
DLL const std::string GetFileExtension(const std::string &aFilePath)
Extract the file extension from a file path.