src/Samples/SampleNullModule.h

説明を見る。
00001 // 
00002 // Copyright (c) 2005-2008 Kenichi Watanabe.
00003 // Copyright (c) 2005-2008 Yasuhiro Watari.
00004 // Copyright (c) 2005-2008 Hironori Ichibayashi.
00005 // Copyright (c) 2008-2009 Kazuo Horio.
00006 // Copyright (c) 2009-2013 Naruki Kurata.
00007 // Copyright (c) 2005-2013 Ryota Shioya.
00008 // Copyright (c) 2005-2013 Masahiro Goshima.
00009 // 
00010 // This software is provided 'as-is', without any express or implied
00011 // warranty. In no event will the authors be held liable for any damages
00012 // arising from the use of this software.
00013 // 
00014 // Permission is granted to anyone to use this software for any purpose,
00015 // including commercial applications, and to alter it and redistribute it
00016 // freely, subject to the following restrictions:
00017 // 
00018 // 1. The origin of this software must not be misrepresented; you must not
00019 // claim that you wrote the original software. If you use this software
00020 // in a product, an acknowledgment in the product documentation would be
00021 // appreciated but is not required.
00022 // 
00023 // 2. Altered source versions must be plainly marked as such, and must not be
00024 // misrepresented as being the original software.
00025 // 
00026 // 3. This notice may not be removed or altered from any source
00027 // distribution.
00028 // 
00029 // 
00030 
00031 
00032 //
00033 // This is a sample null class to demonstrate how to implement a 
00034 // minimum module. You can activate this class by defining USE_SAMPLE_NULL.
00035 //
00036 
00037 #ifndef SAMPLES_SAMPLE_NULL_H
00038 #define SAMPLES_SAMPLE_NULL_H
00039 
00040 // USE_SAMPLE_NULL is referred in 'User/UserResourceMap.h' and 'User/UserInit.h'.
00041 //#define USE_SAMPLE_NULL 1
00042 
00043 
00044 
00045 #include "Sim/Foundation/Resource/ResourceNode.h"
00046 
00047 // All Onikiri classes are placed in a 'Onikiri' namespace.
00048 namespace Onikiri
00049 {
00050     // All modules must inherit PhysicalResourceNode.
00051     class SampleNull : public PhysicalResourceNode
00052     {
00053     public:
00054 
00055         SampleNull(){};
00056         virtual ~SampleNull(){};
00057 
00058         // Initialize and Finalize must be implemented.
00059         virtual void Initialize( InitPhase phase )
00060         {
00061             if( phase == INIT_PRE_CONNECTION ){
00062                 // After constructing and before object connection.
00063                 // LoadParam() must be called in this phase or later.
00064                 LoadParam();
00065             }
00066             else if ( phase == INIT_POST_CONNECTION ){
00067                 // After connection
00068             }
00069             g_env.Print( "SampleNull::Initialize is called.\n" );
00070         }
00071         virtual void Finalize()
00072         {
00073             // ReleaseParam must be called in Finalize.
00074             ReleaseParam();
00075             g_env.Print( "SampleNull::Finalize() is called.\n" );
00076         };
00077 
00078         // Parameter & resource map.
00079         // These contents in this map are bound to the below XML.
00080         // Binding is defined in 'User/UserResourceMap.h' and 'User/UserInit.h'.
00081         BEGIN_PARAM_MAP("")
00082             BEGIN_PARAM_PATH( GetParamPath() )
00083             END_PARAM_PATH()
00084             BEGIN_PARAM_PATH( GetResultPath() )
00085             END_PARAM_PATH()
00086         END_PARAM_MAP()
00087 
00088         BEGIN_RESOURCE_MAP()
00089         END_RESOURCE_MAP()
00090     };
00091 
00092 #ifdef USE_SAMPLE_NULL
00093     // Default parameters and connections for SampleNull.
00094     // This XML overwrite XML in DefaultParam.xml partially.
00095     static const char g_sampleNullParam[] = "       \n\
00096                                                     \n\
00097     <?xml version='1.0' encoding='UTF-8'?>          \n\
00098     <Session>                                       \n\
00099       <Simulator>                                   \n\
00100         <Configurations>                            \n\
00101           <DefaultConfiguration>                    \n\
00102                                                     \n\
00103             <Structure>                             \n\
00104               <Copy>                                \n\
00105                 <SampleNull                         \n\
00106                   Count = 'CoreCount'               \n\
00107                   Name  = 'sampleNull'              \n\
00108                 />                                  \n\
00109               </Copy>                               \n\
00110             </Structure>                            \n\
00111                                                     \n\
00112             <Parameter>                             \n\
00113               <SampleNull                           \n\
00114                 Name  = 'sampleNull'                \n\
00115               />                                    \n\
00116             </Parameter>                            \n\
00117           </DefaultConfiguration>                   \n\
00118         </Configurations>                           \n\
00119       </Simulator>                                  \n\
00120     </Session>                                      \n\
00121     ";
00122 
00123 #endif  // #ifdef USE_SAMPLE_NULL
00124 
00125 }
00126 
00127 #endif  // #ifndef SAMPLES_SAMPLE_NULL_H

Onikiri2に対してTue Jun 18 14:34:22 2013に生成されました。  doxygen 1.4.7