IMP logo
IMP Reference Guide  2.17.0
The Integrative Modeling Platform
object_macros.h File Reference

Helper macros for implementing IMP Objects. More...

#include <IMP/kernel_config.h>
#include "doxygen_macros.h"
#include "ref_counted_macros.h"
#include "Vector.h"
#include "Pointer.h"
#include "WeakPointer.h"
#include "SetLogState.h"
+ Include dependency graph for object_macros.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define IMP_GENERIC_OBJECT(Name, lcname, targument, carguments, cparguments)
 Typedefs a default instantiation for a generic (templated) object. More...
 
#define IMP_NEW(Typename, varname, args)   IMP::Pointer<Typename> varname(new Typename args)
 Declare a ref counted pointer to a new object. More...
 
#define IMP_OBJECT_METHODS(Name)
 Define the basic things needed by any Object. More...
 
#define IMP_OBJECTS(Name, PluralName)
 Define the types for storing lists of object pointers. More...
 

Detailed Description

Helper macros for implementing IMP Objects.

Copyright 2007-2022 IMP Inventors. All rights reserved.

Definition in file object_macros.h.

Macro Definition Documentation

#define IMP_GENERIC_OBJECT (   Name,
  lcname,
  targument,
  carguments,
  cparguments 
)

Typedefs a default instantiation for a generic (templated) object.

Define type [Name] to be an an instantiation of of Generic[Name] with template targument, and a function create_[lcname]() that generates a newly allocated object of type [Name], taking parameters [crguments] and internally paassing [cparguments] to the constructor.

Note
doxygen documentatio prior to this macro will be applied to the type definition

Definition at line 60 of file object_macros.h.

#define IMP_NEW (   Typename,
  varname,
  args 
)    IMP::Pointer<Typename> varname(new Typename args)

Declare a ref counted pointer to a new object.

Parameters
[in]TypenameThe namespace qualified type being declared
[in]varnameThe name for the ref counted pointer
[in]argsThe arguments to the constructor, or () if there are none. Please read the documentation for IMP::Pointer before using.
Examples:
core/simple.cpp.

Definition at line 74 of file object_macros.h.

#define IMP_OBJECT_METHODS (   Name)

Define the basic things needed by any Object.

This defines

Definition at line 25 of file object_macros.h.

#define IMP_OBJECTS (   Name,
  PluralName 
)

Define the types for storing lists of object pointers.

The macro defines the types PluralName and PluralNameTemp, which are vectors of either reference-counting or non reference-counting pointers to Name objects, respectively. PluralName should be Names unless the English spelling is different.

Definition at line 44 of file object_macros.h.