Reducing header overuse, non-inlining selected methods (CPPOST-35).
[shibboleth/cpp-opensaml.git] / saml / RootObject.h
index bbdc215..2c79f64 100644 (file)
@@ -1,5 +1,5 @@
 /*
- *  Copyright 2001-2007 Internet2
+ *  Copyright 2001-2009 Internet2
  * 
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
 /**
  * @file saml/RootObject.h
  * 
- * Base class for SAML objects at the root of core schemas 
+ * Base class for SAML objects at the root of core schemas.
  */
 
 #ifndef __saml_root_h__
 #define __saml_root_h__
 
 #include <saml/signature/SignableObject.h>
-#include <xmltooling/util/DateTime.h>
+
+namespace xmltooling {
+    class XMLTOOL_API DateTime;
+};
 
 namespace opensaml {
 
@@ -32,19 +35,10 @@ namespace opensaml {
      * Base class for SAML objects at the root of core schemas.
      * Root objects are signable, and have message identifiers and timestamps.
      */
-    class SAML_API RootObject : public virtual SignableObject
+    class SAML_API RootObject : public SignableObject
     {
     public:
-        virtual ~RootObject() {}
-
-        /**
-         * Indicates whether the object is an assertion.
-         * 
-         * @return true iff the object is an assertion 
-         */
-        virtual bool isAssertion() const {
-            return false;
-        }
+        virtual ~RootObject();
 
         /**
          * Returns the unique SAML ID of the object.
@@ -68,7 +62,7 @@ namespace opensaml {
         virtual time_t getIssueInstantEpoch() const=0;
 
     protected:
-        RootObject() {}
+        RootObject();
     };
 
 };