00001 /** 00002 * \file SingletonContainerSet.h 00003 * \brief Store a set of SingletonContainers 00004 * 00005 * This file is generated by a script (core/tools/make-container). 00006 * Do not edit directly. 00007 * 00008 * Copyright 2007-2010 IMP Inventors. All rights reserved. 00009 */ 00010 00011 #ifndef IMPCONTAINER_SINGLETON_CONTAINER_SET_H 00012 #define IMPCONTAINER_SINGLETON_CONTAINER_SET_H 00013 00014 #include "container_config.h" 00015 #include <IMP/SingletonContainer.h> 00016 #include <IMP/container_macros.h> 00017 00018 IMPCONTAINER_BEGIN_NAMESPACE 00019 00020 //! Stores a set of SingletonContainers 00021 /** The input sets must be disjoint. This can change if there is 00022 demand for it. 00023 00024 \usesconstraint 00025 */ 00026 class IMPCONTAINEREXPORT SingletonContainerSet 00027 : public SingletonContainer 00028 { 00029 // to not have added and removed 00030 SingletonContainerSet(bool); 00031 public: 00032 //! Construct and empty set 00033 SingletonContainerSet(std::string name="SingletonContainerSet %1%"); 00034 00035 SingletonContainerSet(const SingletonContainers &in, 00036 std::string name="SingletonContainerSet %1%"); 00037 00038 IMP_SINGLETON_CONTAINER(SingletonContainerSet); 00039 /** @name Methods to control the nested container 00040 00041 This container merges a set of nested containers. To add 00042 or remove nested containers, use the methods below. 00043 */ 00044 /**@{*/ 00045 IMP_LIST(public, SingletonContainer, singleton_container, 00046 SingletonContainer*, SingletonContainers); 00047 /**@}*/ 00048 00049 static SingletonContainerSet *create_untracked_container() { 00050 SingletonContainerSet *lsc = new SingletonContainerSet(false); 00051 return lsc; 00052 } 00053 }; 00054 00055 00056 IMPCONTAINER_END_NAMESPACE 00057 00058 #endif /* IMPCONTAINER_SINGLETON_CONTAINER_SET_H */