0023483: Use appropriate type for handling integer time
authoromy <omy@opencascade.com>
Thu, 24 Jan 2013 07:27:45 +0000 (11:27 +0400)
committerabv <abv@opencascade.com>
Fri, 25 Jan 2013 12:04:00 +0000 (16:04 +0400)
Introduced new cdl-friendly Standard_Time alias to time_t type.

12 files changed:
src/Dynamic/Dynamic_FuzzyDefinitionsDictionary.cdl
src/Dynamic/Dynamic_MethodDefinitionsDictionary.cdl
src/Materials/Materials_MaterialsDictionary.cdl
src/Standard/FILES
src/Standard/Standard.cdl
src/Standard/Standard_Time.cxx [new file with mode: 0644]
src/Standard/Standard_Time.hxx [new file with mode: 0644]
src/Standard/Standard_TypeDef.hxx
src/Units/Units_Lexicon.cdl
src/Units/Units_UnitsDictionary.cdl
src/Units/Units_UnitsDictionary.cxx
src/Units/Units_UnitsLexicon.cdl

index 8d3ebf1..1507c99 100755 (executable)
@@ -128,7 +128,7 @@ is
 fields
 
     thefilename                   : HAsciiString               from TCollection;
-    thetime                       : Integer from Standard                                ;
-    thesequenceoffuzzydefinitions : SequenceOfFuzzyDefinitions from Dynamic    ;
+    thetime                       : Time                       from Standard;
+    thesequenceoffuzzydefinitions : SequenceOfFuzzyDefinitions from Dynamic;
 
 end FuzzyDefinitionsDictionary;
index a5e9f61..ef79cc3 100755 (executable)
@@ -136,7 +136,7 @@ is
 fields
 
     thefilename                    : HAsciiString                from TCollection;
-    thetime                        : Integer from Standard                                ;
-    thesequenceofmethoddefinitions : SequenceOfMethodDefinitions from Dynamic    ;
+    thetime                        : Time                        from Standard;
+    thesequenceofmethoddefinitions : SequenceOfMethodDefinitions from Dynamic;
 
 end MethodDefinitionsDictionary;
index 4b015d0..ff76058 100755 (executable)
@@ -29,7 +29,7 @@ inherits
     Transient
     
 uses
-    OStream           from  Standard,
+    OStream           from Standard,
     HAsciiString      from TCollection,
     MaterialsSequence from Materials,
     Material          from Materials
@@ -85,7 +85,7 @@ is
 fields
 
     thefilename          : HAsciiString from TCollection;
-    thetime              : Integer from Standard;
+    thetime              : Time from Standard;
     thematerialssequence : MaterialsSequence from Materials;
 
 end MaterialsDictionary;
index e72a0ce..39b374a 100755 (executable)
@@ -49,6 +49,8 @@ Standard_ShortReal.cxx
 Standard_ShortReal.hxx
 Standard_Stream.hxx
 Standard_String.hxx
+Standard_Time.cxx
+Standard_Time.hxx
 Standard_Transient.hxx
 Standard_Transient_proto.hxx
 Standard_TypeDef.hxx
index f2ce388..ac188dd 100755 (executable)
@@ -73,15 +73,15 @@ is
     class AncestorIterator;
     
     deferred class Storable ;
-       primitive Boolean      inherits Storable;
-       primitive Character    inherits Storable;
+        primitive Boolean      inherits Storable;
+        primitive Character    inherits Storable;
         primitive ExtCharacter inherits Storable;
         primitive Integer      inherits Storable;
-       primitive Byte         inherits Storable;
+        primitive Byte         inherits Storable;
         primitive Real         inherits Storable;
         primitive ShortReal    inherits Storable;
-       
-       primitive OId          inherits Storable;
+        primitive Time         inherits Storable;
+        primitive OId          inherits Storable;
 
        deferred class Persistent ; -- inherits Storable
        class GUID;     -- inherits Storable
diff --git a/src/Standard/Standard_Time.cxx b/src/Standard/Standard_Time.cxx
new file mode 100644 (file)
index 0000000..f125d3e
--- /dev/null
@@ -0,0 +1,27 @@
+// Copyright (c) 2013 OPEN CASCADE SAS
+//
+// The content of this file is subject to the Open CASCADE Technology Public
+// License Version 6.5 (the "License"). You may not use the content of this file
+// except in compliance with the License. Please obtain a copy of the License
+// at http://www.opencascade.org and read it completely before using this file.
+//
+// The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
+// main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
+//
+// The Original Code and all software distributed under the License is
+// distributed on an "AS IS" basis, without warranty of any kind, and the
+// Initial Developer hereby disclaims all such warranties, including without
+// limitation, any warranties of merchantability, fitness for a particular
+// purpose or non-infringement. Please see the License for the specific terms
+// and conditions governing the rights and limitations under the License.
+
+#include <Standard_Time.hxx>
+#include <Standard_ConstructionError.hxx>
+
+const Handle_Standard_Type& Standard_Time_Type_()
+{
+  static Handle_Standard_Type _aType =
+    new Standard_Type ("Standard_Time", sizeof(Standard_Time), 0, NULL);
+
+  return _aType;
+}
diff --git a/src/Standard/Standard_Time.hxx b/src/Standard/Standard_Time.hxx
new file mode 100644 (file)
index 0000000..fbf5fe6
--- /dev/null
@@ -0,0 +1,43 @@
+// Copyright (c) 2013 OPEN CASCADE SAS
+//
+// The content of this file is subject to the Open CASCADE Technology Public
+// License Version 6.5 (the "License"). You may not use the content of this file
+// except in compliance with the License. Please obtain a copy of the License
+// at http://www.opencascade.org and read it completely before using this file.
+//
+// The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
+// main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
+//
+// The Original Code and all software distributed under the License is
+// distributed on an "AS IS" basis, without warranty of any kind, and the
+// Initial Developer hereby disclaims all such warranties, including without
+// limitation, any warranties of merchantability, fitness for a particular
+// purpose or non-infringement. Please see the License for the specific terms
+// and conditions governing the rights and limitations under the License.
+
+#ifndef _Standard_Time_HeaderFile
+#define _Standard_Time_HeaderFile
+
+#ifndef _Standard_TypeDef_HeaderFile
+#include <Standard_TypeDef.hxx>
+#endif
+
+class Handle_Standard_Type;
+
+__Standard_API const Handle_Standard_Type& Standard_Time_Type_();
+
+// ===============================================
+// Methods from Standard_Entity class which are redefined:  
+//    - IsEqual
+// ===============================================
+
+// ------------------------------------------------------------------
+// IsEqual : Returns Standard_True if two time values are equal
+// ------------------------------------------------------------------
+inline Standard_Boolean IsEqual (const Standard_Time theOne,
+                                 const Standard_Time theTwo)
+{
+  return theOne == theTwo;
+}
+
+#endif
index 3921840..44bad4c 100755 (executable)
@@ -21,6 +21,7 @@
 #define _Standard_TypeDef_HeaderFile
 
 #include <stddef.h>
+#include <ctime>
 
 #define Standard_False (Standard_Boolean)0
 #define Standard_True  (Standard_Boolean)1
@@ -42,5 +43,6 @@ typedef size_t Standard_Size;
 typedef const char*  Standard_CString;
 typedef const short* Standard_ExtString;
 
-#endif
+typedef std::time_t Standard_Time;
 
+#endif
index 6153f65..8f5129c 100755 (executable)
@@ -105,7 +105,7 @@ is
 fields
 
     thefilename         : HAsciiString from TCollection;
-    thetime             : Integer;
+    thetime             : Time from Standard;
     thesequenceoftokens : TokensSequence from Units;
 
 end Lexicon;
index 1e9419e..28151fa 100755 (executable)
@@ -111,7 +111,7 @@ is
 fields
 
     thefilename           : HAsciiString from TCollection;
-    thetime               : Integer;
+    thetime               : Time from Standard;
     thequantitiessequence : QuantitiesSequence from Units;
 
 end UnitsDictionary;
index ccd7744..53c2e0d 100755 (executable)
@@ -110,7 +110,7 @@ void Units_UnitsDictionary::Creates(const Standard_CString afilename)
   thefilename = new TCollection_HAsciiString(afilename);
 
   struct stat buf;
-  if(!stat(afilename,&buf)) thetime = (Standard_Integer)buf.st_ctime;
+  if(!stat(afilename,&buf)) thetime = buf.st_ctime;
 
   thequantitiessequence = new Units_QuantitiesSequence();
   
index 751d663..4147efe 100755 (executable)
@@ -85,6 +85,6 @@ is
 fields
 
     thefilename     : HAsciiString from TCollection;
-    thetime         : Integer;
+    thetime         : Time from Standard;
 
 end UnitsLexicon;