From 4428aeed15fdc980115ac54b21c41418ca88f540 Mon Sep 17 00:00:00 2001 From: Henry Date: Sun, 14 Jul 2013 23:14:08 +0100 Subject: [PATCH] IOobject: Add support for group name .group() returns the group name of the object otherwise null groupName(name, group) returns the constructed group name (currently name.group) --- src/OpenFOAM/db/IOobject/IOobject.C | 15 +++++++++++++++ src/OpenFOAM/db/IOobject/IOobject.H | 7 +++++++ src/OpenFOAM/db/IOobject/IOobjectI.H | 14 ++++++++++++++ 3 files changed, 36 insertions(+) diff --git a/src/OpenFOAM/db/IOobject/IOobject.C b/src/OpenFOAM/db/IOobject/IOobject.C index a603a76dd9..74844aea82 100644 --- a/src/OpenFOAM/db/IOobject/IOobject.C +++ b/src/OpenFOAM/db/IOobject/IOobject.C @@ -243,6 +243,21 @@ const Foam::fileName& Foam::IOobject::caseName() const } +Foam::word Foam::IOobject::group() const +{ + word::size_type i = name_.find_last_of('.'); + + if (i == word::npos || i == 0) + { + return word::null; + } + else + { + return name_.substr(i+1, word::npos); + } +} + + const Foam::fileName& Foam::IOobject::rootPath() const { return time().rootPath(); diff --git a/src/OpenFOAM/db/IOobject/IOobject.H b/src/OpenFOAM/db/IOobject/IOobject.H index 7b9d73ee28..098819d5ca 100644 --- a/src/OpenFOAM/db/IOobject/IOobject.H +++ b/src/OpenFOAM/db/IOobject/IOobject.H @@ -154,6 +154,7 @@ private: //- IOobject state objectState objState_; + protected: // Protected Member Functions @@ -187,6 +188,9 @@ public: word& name ); + template + static inline word groupName(Name name, const word& group); + // Constructors @@ -313,6 +317,9 @@ public: // Path components + //- Return group (extension part of name) + word group() const; + const fileName& rootPath() const; const fileName& caseName() const; diff --git a/src/OpenFOAM/db/IOobject/IOobjectI.H b/src/OpenFOAM/db/IOobject/IOobjectI.H index ea0d65508e..ed831092aa 100644 --- a/src/OpenFOAM/db/IOobject/IOobjectI.H +++ b/src/OpenFOAM/db/IOobject/IOobjectI.H @@ -27,6 +27,20 @@ License // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // +template +inline Foam::word Foam::IOobject::groupName(Name name, const word& group) +{ + if (group != word::null) + { + return name + ('.' + group); + } + else + { + return name; + } +} + + template inline Stream& Foam::IOobject::writeBanner(Stream& os, bool noHint) {