Develop Biology
The language of life
SiteMacros.h File Reference
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define BIO_INSERTION_SITE_FUNCTION_BODY(functionName, toInsert)
 
#define BIO_LOCALIZATION_SITE_FUNCTION_BODY(functionName, toExtract)
 
#define BIO_SITE(functionName)
 
#define BIO_SITE_FUNCTION(perspective, site, type, function, typeTuple, argTuple)
 
#define BIO_SITE_FUNCTION_BODY(functionName, type)
 

Macro Definition Documentation

◆ BIO_INSERTION_SITE_FUNCTION_BODY

#define BIO_INSERTION_SITE_FUNCTION_BODY (   functionName,
  toInsert 
)
Value:
functionName##InsertionSite, \
::bio::InsertionSitePerspective::Instance(), \
::bio::Site) \
BIO_SITE_FUNCTION(InsertionSitePerspective, functionName##InsertionSite, toInsert, AddImplementation, (toInsert), (NULL))
#define BIO_ID_FUNCTION_BODY(functionName, perspective, dimension)

To make defining Sites easier, use this macro to define the function body of your Site Function(). This will assign a value to a string that is identical to your FunctionName e.g. InsertionSitePerspective::Instance().GetNameFromId(Value()) would give "Value". This will also help you define the required insertion method (chemical::Excitation*) required for using your Site. REMINDER: Your Site Function()s should be in the ::bio::site namespace.

Definition at line 62 of file SiteMacros.h.

◆ BIO_LOCALIZATION_SITE_FUNCTION_BODY

#define BIO_LOCALIZATION_SITE_FUNCTION_BODY (   functionName,
  toExtract 
)
Value:
functionName##LocalizationSite, \
::bio::LocalizationSitePerspective::Instance(), \
::bio::Site) \
BIO_SITE_FUNCTION(LocalizationSitePerspective, functionName##LocalizationSite, toExtract, GetByNameImplementation, (Name), (NULL))
const char * Name
Definition: Types.h:46

To make defining Sites easier, use this macro to define the function body of your Site Function(). This will assign a value to a string that is identical to your FunctionName e.g. LocalizationSitePerspective::Instance().GetNameFromId(Value()) would give "Value". This will also help you define the required extraction method (chemical::Excitation*) required for accessing your Site. REMINDER: Your Site Function()s should be in the ::bio::site namespace.

Definition at line 49 of file SiteMacros.h.

◆ BIO_SITE

#define BIO_SITE (   functionName)
Value:
namespace site { \
Site functionName(); \
}

Ease of use method for declaring all kinds of sites at once.

Definition at line 72 of file SiteMacros.h.

◆ BIO_SITE_FUNCTION

#define BIO_SITE_FUNCTION (   perspective,
  site,
  type,
  function,
  typeTuple,
  argTuple 
)
Value:
bool g_##site##Registered = \
::bio::perspective::Instance().AssociateType( \
g_##site, \
( \
type, \
BIO_EXPAND_TUPLE typeTuple \
)( \
BIO_EXPAND_TUPLE argTuple \
) \
)->AsWave() \
);
#define BIO_EXCITATION_CLASS(wave, ret,...)
#define BIO_EXPAND_TUPLE(...)
Definition: Macros.h:49

This is not for you.

Definition at line 27 of file SiteMacros.h.

◆ BIO_SITE_FUNCTION_BODY

#define BIO_SITE_FUNCTION_BODY (   functionName,
  type 
)
Value:
namespace site { \
BIO_LOCALIZATION_SITE_FUNCTION_BODY(functionName, type) \
BIO_INSERTION_SITE_FUNCTION_BODY(functionName, type) \
}

Ease of use method of defining all kinds of sites at once.

Definition at line 80 of file SiteMacros.h.