<commit_before>// @(#)root/reflex:$Name:  $:$Id: Pointer.h,v 1.7 2006/06/28 10:43:05 roiser Exp $
// Author: <NAME> 2004

// Copyright CERN, CH-1211 Geneva 23, 2004-2006, All rights reserved.
//
// Permission to use, copy, modify, and distribute this software for any
// purpose is hereby granted without fee, provided that this copyright and
// permissions notice appear in all copies and derivatives.
//
// This software is provided "as is" without express or implied warranty.

#ifndef ROOT_Reflex_Pointer
#define ROOT_Reflex_Pointer

// Include files
#include "Reflex/TypeBase.h"
#include "Reflex/Type.h"

namespace ROOT {
   namespace Reflex {

      // forward declarations

      /**
       * @class Pointer Pointer.h Reflex/Pointer.h
       * @author <NAME>
       * @date 24/11/2003
       * @ingroup Ref
       */
      class Pointer : public TypeBase {
      public:

         /** default constructor */
         Pointer( const Type & pointerType, 
                  const std::type_info & ti );

         /** destructor */
         virtual ~Pointer() {}


         /**
          * Name will return the fully qualified Name of the pointer At
          * @param  typedefexp expand typedefs or not
          * @return fully qualified Name of pointer At
          */
         std::string Name( unsigned int mod = 0 ) const;


         /**
          * At will return a pointer to the At the pointer points to.
          * @return pointer to Type of MemberAt et. al.
          */
         Type ToType( unsigned int mod ) const;


         /** static funtion that composes the typename */
         static std::string BuildTypeName( const Type & pointerType,
                                           unsigned int mod = SCOPED | QUALIFIED );

      private:

         /**
          * pointer to the Type the Pointer points to
          * @label pointer At
          * @link aggregationByValue
          * @supplierCardinality 1
          * @clientCardinality 1
          */
         Type fPointerType;

      }; // class Pointer
   } //namespace Reflex
} //namespace ROOT


//-------------------------------------------------------------------------------
inline ROOT::Reflex::Type ROOT::Reflex::Pointer::ToType( unsigned int mod ) const {
//-------------------------------------------------------------------------------
   if ( 0 != ( mod & ( RAW | R ))) return fPointerType.ToType( mod );
   if ( 0 != ( mod & ( FINAL | F))) return *this;
   return fPointerType;
}

#endif // ROOT_Reflex_Pointer

<commit_msg>rolling back a previous commit about final types - breaks the tests. These functions will be rewritten anyway<commit_after>// @(#)root/reflex:$Name:  $:$Id: Pointer.h,v 1.8 2006/06/29 17:43:29 pcanal Exp $
// Author: <NAME> 2004

// Copyright CERN, CH-1211 <NAME>3, 2004-2006, All rights reserved.
//
// Permission to use, copy, modify, and distribute this software for any
// purpose is hereby granted without fee, provided that this copyright and
// permissions notice appear in all copies and derivatives.
//
// This software is provided "as is" without express or implied warranty.

#ifndef ROOT_Reflex_Pointer
#define ROOT_Reflex_Pointer

// Include files
#include "Reflex/TypeBase.h"
#include "Reflex/Type.h"

namespace ROOT {
   namespace Reflex {

      // forward declarations

      /**
       * @class Pointer Pointer.h Reflex/Pointer.h
       * @author <NAME>
       * @date 24/11/2003
       * @ingroup Ref
       */
      class Pointer : public TypeBase {
      public:

         /** default constructor */
         Pointer( const Type & pointerType, 
                  const std::type_info & ti );

         /** destructor */
         virtual ~Pointer() {}


         /**
          * Name will return the fully qualified Name of the pointer At
          * @param  typedefexp expand typedefs or not
          * @return fully qualified Name of pointer At
          */
         std::string Name( unsigned int mod = 0 ) const;


         /**
          * At will return a pointer to the At the pointer points to.
          * @return pointer to Type of MemberAt et. al.
          */
         Type ToType( unsigned int mod ) const;


         /** static funtion that composes the typename */
         static std::string BuildTypeName( const Type & pointerType,
                                           unsigned int mod = SCOPED | QUALIFIED );

      private:

         /**
          * pointer to the Type the Pointer points to
          * @label pointer At
          * @link aggregationByValue
          * @supplierCardinality 1
          * @clientCardinality 1
          */
         Type fPointerType;

      }; // class Pointer
   } //namespace Reflex
} //namespace ROOT


//-------------------------------------------------------------------------------
inline ROOT::Reflex::Type ROOT::Reflex::Pointer::ToType( unsigned int mod ) const {
//-------------------------------------------------------------------------------
   if ( 0 != ( mod & ( RAW | R ))) return fPointerType.ToType( mod );
   return fPointerType;
}

#endif // ROOT_Reflex_Pointer


{'fraction_non_alphanumeric': 0.15517920441118552, 'fraction_numerical': 0.01811736904293029, 'mean_word_length': 1.6773853452820242, 'pattern_counts': {'":': 0, '<': 8, '<?xml version=': 0, '>': 8, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 4, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4186203', 'n_tokens_mistral': 1401, 'n_tokens_neox': 1271, 'n_words': 470}