-#ifndef __CPEXTENSIONS__UTILITY__H__
-#define __CPEXTENSIONS__UTILITY__H__
+#ifndef __cpExtensions__Utility__h__
+#define __cpExtensions__Utility__h__
-#include <cpExtensions/Config.h>
#include <chrono>
#include <cstring>
#include <fstream>
-#include <iostream>
#include <string>
+#include <cpExtensions/Config.h>
// -------------------------------------------------------------------------
-#ifdef cpExtensions_SYS_WINDOWS
-# define cpExtensions_STRTOK( A, B, N ) strtok_s( A, B, N )
-#else // cpExtensions_SYS_WINDOWS
-# define cpExtensions_STRTOK( A, B, N ) std::strtok( A, B )
-#endif // cpExtensions_SYS_WINDOWS
+#ifdef cpExtensions_OS_Windows
+# define cpExtensions_STRTOK( A, B, N ) strtok_s( A, B, N )
+# define cpExtensions_SPRINTF( B, S, O ) sprintf_s( B, S, "%s", O );
+#else // cpExtensions_OS_Windows
+# define cpExtensions_STRTOK( A, B, N ) std::strtok( A, B )
+# define cpExtensions_SPRINTF( B, S, O ) std::sprintf( B, "%s", O );
+#endif // cpExtensions_OS_Windows
// -------------------------------------------------------------------------
-#define cpExtensions_CHRONO \
- std::chrono::duration_cast< std::chrono::milliseconds >( \
- std::chrono::system_clock::now( ).time_since_epoch( ) \
+#define cpExtensions_CHRONO \
+ std::chrono::duration_cast< std::chrono::milliseconds >( \
+ std::chrono::system_clock::now( ).time_since_epoch( ) \
).count( )
// -------------------------------------------------------------------------
// -----------------------------------------------------------------------
inline bool IsPathSeparator( char c )
{
-#ifdef cpExtensions_SYS_WINDOWS
- return( c == '\\' || c == cpExtensions_PATH_SEPARATOR );
-#else // cpExtensions_SYS_WINDOWS
+#ifdef cpExtensions_OS_Windows
+ return( c == '/' || c == cpExtensions_PATH_SEPARATOR );
+#else // cpExtensions_OS_Windows
return( c == cpExtensions_PATH_SEPARATOR );
-#endif // cpExtensions_SYS_WINDOWS
+#endif // cpExtensions_OS_Windows
}
// -----------------------------------------------------------------------
// -----------------------------------------------------------------------
template< class _TTokens >
- inline void TokenizeString(
+ inline void Tokenize(
_TTokens& tokens, const std::string& str, const std::string& delims
)
{
}
// -----------------------------------------------------------------------
- inline std::string ReplaceString(
+ inline std::string Replace(
const std::string& str, const std::string& sub, const std::string& nsub
)
{
}
// -----------------------------------------------------------------------
- inline bool ReadFileIntoBuffer(
- std::string& buffer, const std::string& fname
- )
+ inline bool Read( std::string& buffer, const std::string& fname )
{
buffer = "";
std::ifstream file_stream( fname.c_str( ) );
return( true );
}
+ // -----------------------------------------------------------------------
+ inline bool Write( const std::string& buffer, const std::string& fname )
+ {
+ std::ofstream file_stream( fname.c_str( ), std::ofstream::binary );
+ if( !file_stream )
+ return( false );
+ file_stream.write( buffer.c_str( ), buffer.size( ) );
+ return( true );
+ }
+
// -----------------------------------------------------------------------
inline std::string CanonicalPath( const std::string& path )
{
std::string ret = "";
-#ifdef cpExtensions_SYS_WINDOWS
+#ifdef cpExtensions_OS_Windows
TCHAR buffer[ 4096 ] = TEXT( "" );
TCHAR** lppPart = { NULL };
GetFullPathName( path.c_str( ), 4096, buffer, lppPart );
ret = std::string( buffer );
-#else // cpExtensions_SYS_WINDOWS
+#else // cpExtensions_OS_Windows
char* canonical_path = realpath( path.c_str( ), NULL );
if( canonical_path != NULL )
{
free( canonical_path );
} // fi
-#endif // cpExtensions_SYS_WINDOWS
+#endif // cpExtensions_OS_Windows
return( ret );
}
} // ecapseman
-#endif // __CPEXTENSIONS__UTILITY__H__
+#endif // __cpExtensions__Utility__h__
// eof - $RCSfile$