<commit_before>/*
 * Jamoma Foundation
 * Copyright © 2008, <NAME>
 *
 * License: This code is licensed under the terms of the "New BSD License"
 * http://creativecommons.org/licenses/BSD/
 */

#ifndef __TT_FOUNDATION_H__
#define __TT_FOUNDATION_H__

#define TTFOUNDATION_VERSION_STRING "0.6"

#include "TTBase.h"
#include "TTString.h"
#include "TTThread.h"
#include "TTFifo.h"
#include "TTSymbolCache.h"
#include "TTValueCache.h"
#include "TTNodeLib.h"


/*
	If we could do virtual static methods then we would.  But we can't.
	So enforce the static register() and instantiate() methods we will use the macros to
	define our classes.

	This also enforces the protection of the constructor and destructor methods so that they
	cannot be manipulated directly.
 */

	/** This MACRO needs some more Doxygen comments		
		@ingroup macros
	*/
#define TT_OBJECT_CONSTRUCTOR \
	TTObjectBasePtr thisTTClass :: instantiate (TTSymbol& name, TTValue& arguments) {return new thisTTClass (arguments);} \
	\
	extern "C" void thisTTClass :: registerClass () {TTClassRegister( thisTTClassName, thisTTClassTags, thisTTClass :: instantiate );} \
	\
	thisTTClass :: thisTTClass (TTValue& arguments) : TTDataObjectBase(arguments)

	/** This MACRO needs some more Doxygen comments		
		@ingroup macros
	*/
#define TT_BASE_OBJECT_CONSTRUCTOR \
	TTObjectBasePtr thisTTClass :: instantiate (TTSymbol& name, TTValue& arguments) {return new thisTTClass (arguments);} \
	\
	extern "C" void thisTTClass :: registerClass () {TTClassRegister( thisTTClassName, thisTTClassTags, thisTTClass :: instantiate );} \
	\
	thisTTClass :: thisTTClass (TTValue& arguments) : TTObjectBase(arguments)

	/** This MACRO needs some more Doxygen comments		
		@ingroup macros
	*/<commit_msg>Doxygen: tagging some items with TODO<commit_after>/*
 * Jamoma Foundation
 * Copyright © 2008, <NAME>
 *
 * License: This code is licensed under the terms of the "New BSD License"
 * http://creativecommons.org/licenses/BSD/
 */

#ifndef __TT_FOUNDATION_H__
#define __TT_FOUNDATION_H__

#define TTFOUNDATION_VERSION_STRING "0.6"

#include "TTBase.h"
#include "TTString.h"
#include "TTThread.h"
#include "TTFifo.h"
#include "TTSymbolCache.h"
#include "TTValueCache.h"
#include "TTNodeLib.h"


/*
	If we could do virtual static methods then we would.  But we can't.
	So enforce the static register() and instantiate() methods we will use the macros to
	define our classes.

	This also enforces the protection of the constructor and destructor methods so that they
	cannot be manipulated directly.
 */

	/** TODO Doxygen: need more comments here	
		@ingroup macros
	*/
#define TT_OBJECT_CONSTRUCTOR \
	TTObjectBasePtr thisTTClass :: instantiate (TTSymbol& name, TTValue& arguments) {return new thisTTClass (arguments);} \
	\
	extern "C" void thisTTClass :: registerClass () {TTClassRegister( thisTTClassName, thisTTClassTags, thisTTClass :: instantiate );} \
	\
	thisTTClass :: thisTTClass (TTValue& arguments) : TTDataObjectBase(arguments)

	/** TODO Doxygen: need more comments here	
		@ingroup macros
	*/
#define TT_BASE_OBJECT_CONSTRUCTOR \
	TTObjectBasePtr thisTTClass :: instantiate (TTSymbol& name, TTValue& arguments) {return new thisTTClass (arguments);} \
	\
	extern "C" void thisTTClass :: registerClass () {TTClassRegister( thisTTClassName, thisTTClassTags, thisTTClass :: instantiate );} \
	\
	thisTTClass :: thisTTClass (TTValue& arguments) : TTObjectBase(arguments)

	/** TODO Doxygen: need more comments here	
		@ingroup macros
	*/
{'fraction_non_alphanumeric': 0.10043041606886657, 'fraction_numerical': 0.003443328550932568, 'mean_word_length': 4.848993288590604, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3736349', 'n_tokens_mistral': 1158, 'n_tokens_neox': 1068, 'n_words': 350}