//   
//   Project Name:        Kratos       
//   Last Modified by:    $Author: anonymous $
//   Date:                $Date: 2008-12-10 18:45:27 $
//   Revision:            $Revision: 1.2 $
//
//


#if !defined(KRATOS_KRATOS_APPLICATIONNAME_APPLICATION_H_INCLUDED )
#define  KRATOS_KRATOS_APPLICATIONNAME_APPLICATION_H_INCLUDED

// Doxygen description for this application

///@defgroup ApplicationNameApplication Kratos ApplicationName Application
///@brief Short description of the application.
/// Detailed description of the application.

// System includes
#include <string>
#include <iostream> 


// External includes 


// Project includes
#include "includes/define.h"
#include "includes/kratos_application.h"


namespace Kratos
{
  ///@addtogroup ApplicationNameApplication
  ///@{

  ///@name Kratos Globals
  ///@{ 
  
  // Variables definition 
  // KRATOS_DEFINE_VARIABLE(type, VARIABLE_NAEM );
  

  ///@} 
  ///@name Type Definitions
  ///@{ 
  
  ///@} 
  ///@name  Enum's
  ///@{
      
  ///@}
  ///@name  Functions 
  ///@{
      
  ///@}
  ///@name Kratos Classes
  ///@{
  
  /// Short class definition.
  /** Detail class definition.
  */
  class KratosApplicationNameApplication : public KratosApplication
    {
    public:
      ///@name Type Definitions
      ///@{
      
      /// Pointer definition of KratosApplicationNameApplication
      KRATOS_CLASS_POINTER_DEFINITION(KratosApplicationNameApplication);
  
      ///@}
      ///@name Life Cycle 
      ///@{ 
      
      /// Default constructor.
      KratosApplicationNameApplication(){}

      /// Destructor.
      virtual ~KratosApplicationNameApplication(){}
      

      ///@}
      ///@name Operators 
      ///@{
      
      
      ///@}
      ///@name Operations
      ///@{

      virtual void Register();
	
      
      
      ///@}
      ///@name Access
      ///@{ 
      
      
      ///@}
      ///@name Inquiry
      ///@{
      
      
      ///@}      
      ///@name Input and output
      ///@{

      /// Turn back information as a string.
      virtual std::string Info() const
      {
	return "KratosApplicationNameApplication";
      }
      
      /// Print information about this object.
      virtual void PrintInfo(std::ostream& rOStream) const
      {
	rOStream << Info();
      }

      /// Print object's data.
      virtual void PrintData(std::ostream& rOStream) const
      {
      }
      
            
      ///@}      
      ///@name Friends
      ///@{
      
            
      ///@}
      
    protected:
      ///@name Protected static Member Variables 
      ///@{ 
        
        
      ///@} 
      ///@name Protected member Variables 
      ///@{ 
        
        
      ///@} 
      ///@name Protected Operators
      ///@{ 
        
        
      ///@} 
      ///@name Protected Operations
      ///@{ 
        
        
      ///@} 
      ///@name Protected  Access 
      ///@{ 
        
        
      ///@}      
      ///@name Protected Inquiry 
      ///@{ 
        
        
      ///@}    
      ///@name Protected LifeCycle 
      ///@{ 
      
            
      ///@}
      
    private:
      ///@name Static Member Variables 
      ///@{ 
      

      // Static references for elements and conditions
//       static const ApplicationElement  msApplicationElement; 
//       static const ApplicationCondition  msApplicationCondition; 
        
      ///@} 
      ///@name Member Variables 
      ///@{ 
        
        
      ///@} 
      ///@name Private Operators
      ///@{ 
        
        
      ///@} 
      ///@name Private Operations
      ///@{ 
        
        
      ///@} 
      ///@name Private  Access 
      ///@{ 
        
        
      ///@}    
      ///@name Private Inquiry 
      ///@{ 
        
        
      ///@}    
      ///@name Un accessible methods 
      ///@{ 
      
      /// Assignment operator.
      KratosApplicationNameApplication& operator=(KratosApplicationNameApplication const& rOther);

      /// Copy constructor.
      KratosApplicationNameApplication(KratosApplicationNameApplication const& rOther);

        
      ///@}    
        
    }; // Class KratosApplicationNameApplication 

  ///@} 
  

  ///@name Type Definitions       
  ///@{ 
  
  
  ///@} 
  ///@name Input and output 
  ///@{ 
        
  ///@}

  ///@} addtogroup block
  
  
}  // namespace Kratos.

#endif // KRATOS_KRATOS_APPLICATIONNAME_APPLICATION_H_INCLUDED  defined 


