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
StaticVectorFor.h )
set( common_SOURCES
FileName.cpp
String.cpp )
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 @@
/* See Copyright Notice in tnl/Copyright */
#pragma once
#pragma once
#include <TNL/String.h>
......@@ -70,13 +70,12 @@ class FileName
/// Creates particular file name using \e fileNameBase, \e digitsCount,
/// \e index and \e extension.
String getFileName();
protected:
String fileNameBase, extension, distributedSystemNodeId;
int index, digitsCount;
};
} // namespace TNL
......
......@@ -8,10 +8,64 @@
/* See Copyright Notice in tnl/Copyright */
#pragma once
#include <sstream>
#include <iomanip>
#include <TNL/FileName.h>
#include <TNL/String.h>
#include <TNL/Math.h>
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 >
void
FileName::
......@@ -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
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