Pārlūkot izejas kodu

towards making Persistent xml like

Alexander Freytag 11 gadi atpakaļ
vecāks
revīzija
6f99f131ef
1 mainītis faili ar 29 papildinājumiem un 0 dzēšanām
  1. 29 0
      core/basics/Persistent.h

+ 29 - 0
core/basics/Persistent.h

@@ -126,6 +126,35 @@ class Persistent {
     {
       save ( s, format );
     }
+    
+    virtual inline std::string createStartTag( const std::string & s_varName ) const 
+    {
+      return "<" + s_varName + ">";
+    }
+    
+    virtual inline std::string createEndTag( const std::string & s_varName ) const 
+    {
+      return "</" + s_varName + ">";
+    }
+    
+    virtual inline std::string removeStartTag( const std::string & s_varName ) const 
+    {
+      std::cerr << "removeStartTag of string " << s_varName << " with size " << s_varName.length() << std::endl;
+      return s_varName.substr( 1, s_varName.length() -2 );
+    }
+    
+    virtual inline std::string removeEndTag( const std::string & s_varName ) const 
+    {
+      return s_varName.substr( 2, s_varName.length() -3 );
+    }
+    
+    virtual inline bool isEndTag( const std::string & s_varName,  const std::string & s_matchingVarName ) const 
+    {
+      return (    ( s_varName.length() > 3 ) &&   // min length
+                  ( s_varName.substr( 0, 2 ).compare( "</" ) == 0 ) &&  // proper beginning of an end-tag
+                  ( removeEndTag(s_varName).compare(s_matchingVarName) == 0 ) // end tag matches given section name
+             );
+    }    
 
 };