Skip to content
Snippets Groups Projects
Commit 32c75310 authored by Jakub Klinkovský's avatar Jakub Klinkovský
Browse files

Moved stuff from FileName.cpp to FileName.hpp

parent 7d1069bb
No related branches found
No related tags found
1 merge request!22Header only
...@@ -39,7 +39,6 @@ set( headers ...@@ -39,7 +39,6 @@ set( headers
StaticVectorFor.h ) StaticVectorFor.h )
set( common_SOURCES set( common_SOURCES
FileName.cpp
String.cpp ) String.cpp )
set( tnl_SOURCES ${tnl_config_SOURCES} set( tnl_SOURCES ${tnl_config_SOURCES}
......
/***************************************************************************
FileName.cpp - description
-------------------
begin : 2007/06/18
copyright : (C) 2007 by Tomas Oberhuber
email : tomas.oberhuber@fjfi.cvut.cz
***************************************************************************/
/* See Copyright Notice in tnl/Copyright */
#include <sstream>
#include <iomanip>
#include <cstring>
#include <cstdlib>
#include <TNL/FileName.h>
#include <TNL/String.h>
#include <TNL/Math.h>
namespace TNL {
FileName::FileName()
: index( 0 ), digitsCount( 5 )
{
}
FileName::FileName( const String& fileNameBase )
: fileNameBase( fileNameBase ),
index( 0 ),
digitsCount( 5 )
{
}
FileName::FileName( const String& fileNameBase,
const String& extension )
: fileNameBase( fileNameBase ),
extension( extension ),
index( 0 ),
digitsCount( 5 )
{
}
void FileName::setFileNameBase( const String& fileNameBase )
{
this->fileNameBase = fileNameBase;
}
void FileName::setExtension( const String& extension )
{
this->extension = extension;
}
void FileName::setIndex( const int index )
{
this->index = index;
}
void FileName::setDigitsCount( const int digitsCount )
{
this->digitsCount = digitsCount;
}
void FileName::setDistributedSystemNodeId( int nodeId )
{
this->distributedSystemNodeId = "-";
this->distributedSystemNodeId += convertToString( nodeId );
}
String FileName::getFileName()
{
std::stringstream stream;
stream << this->fileNameBase
<< std::setw( this->digitsCount )
<< std::setfill( '0' )
<< this->index
<< this->distributedSystemNodeId
<< "." << this->extension;
return String( stream.str().data() );
}
String getFileExtension( const String fileName )
{
int size = fileName. getLength();
int i = 1;
while( fileName. getString()[ size - i ] != '.' && size > i ) i ++ ;
String result;
result.setString( fileName. getString(), size - i + 1 );
return result;
}
void removeFileExtension( String& fileName )
{
int size = fileName. getLength();
int i = 1;
while( fileName. getString()[ size - i ] != '.' && size > i ) i ++ ;
fileName. setString( fileName. getString(), 0, i );
}
} // namespace TNL
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
/* See Copyright Notice in tnl/Copyright */ /* See Copyright Notice in tnl/Copyright */
#pragma once #pragma once
#include <TNL/String.h> #include <TNL/String.h>
...@@ -70,13 +70,12 @@ class FileName ...@@ -70,13 +70,12 @@ class FileName
/// Creates particular file name using \e fileNameBase, \e digitsCount, /// Creates particular file name using \e fileNameBase, \e digitsCount,
/// \e index and \e extension. /// \e index and \e extension.
String getFileName(); String getFileName();
protected: protected:
String fileNameBase, extension, distributedSystemNodeId; String fileNameBase, extension, distributedSystemNodeId;
int index, digitsCount; int index, digitsCount;
}; };
} // namespace TNL } // namespace TNL
......
...@@ -8,10 +8,64 @@ ...@@ -8,10 +8,64 @@
/* See Copyright Notice in tnl/Copyright */ /* See Copyright Notice in tnl/Copyright */
#pragma once
#include <sstream>
#include <iomanip>
#include <TNL/FileName.h> #include <TNL/FileName.h>
#include <TNL/String.h>
#include <TNL/Math.h>
namespace TNL { namespace TNL {
inline FileName::FileName()
: index( 0 ), digitsCount( 5 )
{
}
inline FileName::FileName( const String& fileNameBase )
: fileNameBase( fileNameBase ),
index( 0 ),
digitsCount( 5 )
{
}
inline FileName::FileName( const String& fileNameBase,
const String& extension )
: fileNameBase( fileNameBase ),
extension( extension ),
index( 0 ),
digitsCount( 5 )
{
}
inline void FileName::setFileNameBase( const String& fileNameBase )
{
this->fileNameBase = fileNameBase;
}
inline void FileName::setExtension( const String& extension )
{
this->extension = extension;
}
inline void FileName::setIndex( const int index )
{
this->index = index;
}
inline void FileName::setDigitsCount( const int digitsCount )
{
this->digitsCount = digitsCount;
}
inline void FileName::setDistributedSystemNodeId( int nodeId )
{
this->distributedSystemNodeId = "-";
this->distributedSystemNodeId += convertToString( nodeId );
}
template< typename Coordinates > template< typename Coordinates >
void void
FileName:: FileName::
...@@ -26,4 +80,34 @@ setDistributedSystemNodeId( const Coordinates& nodeId ) ...@@ -26,4 +80,34 @@ setDistributedSystemNodeId( const Coordinates& nodeId )
} }
} }
inline String FileName::getFileName()
{
std::stringstream stream;
stream << this->fileNameBase
<< std::setw( this->digitsCount )
<< std::setfill( '0' )
<< this->index
<< this->distributedSystemNodeId
<< "." << this->extension;
return String( stream.str().data() );
}
inline String getFileExtension( const String fileName )
{
int size = fileName. getLength();
int i = 1;
while( fileName. getString()[ size - i ] != '.' && size > i ) i ++ ;
String result;
result.setString( fileName. getString(), size - i + 1 );
return result;
}
inline void removeFileExtension( String& fileName )
{
int size = fileName. getLength();
int i = 1;
while( fileName. getString()[ size - i ] != '.' && size > i ) i ++ ;
fileName. setString( fileName. getString(), 0, i );
}
} // namespace TNL } // namespace TNL
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment