cmodelchange.h

00001 //==========================================================================
00002 //  CMODELCHANGE.H - part of
00003 //                     OMNeT++/OMNEST
00004 //            Discrete System Simulation in C++
00005 //
00006 //
00007 //==========================================================================
00008 
00009 /*--------------------------------------------------------------*
00010   Copyright (C) 1992-2008 Andras Varga
00011   Copyright (C) 2006-2008 OpenSim Ltd.
00012 
00013   This file is distributed WITHOUT ANY WARRANTY. See the file
00014   `license' for details on this and other legal matters.
00015 *--------------------------------------------------------------*/
00016 
00017 #ifndef __CMODELCHANGE_H
00018 #define __CMODELCHANGE_H
00019 
00020 #include "cobject.h"
00021 
00022 NAMESPACE_BEGIN
00023 
00055 SIM_API extern simsignal_t PRE_MODEL_CHANGE;
00056 
00101 SIM_API extern simsignal_t POST_MODEL_CHANGE;
00102 
00109 class SIM_API cModelChangeNotification : public cObject, noncopyable
00110 {
00111 };
00112 
00119 class SIM_API cPreModuleAddNotification : public cModelChangeNotification
00120 {
00121   public:
00122     cModuleType *moduleType;  
00123     const char *moduleName;   
00124     cModule *parentModule;    
00125     int vectorSize;           
00126     int index;                
00127 };
00128 
00137 class SIM_API cPostModuleAddNotification : public cModelChangeNotification
00138 {
00139   public:
00140     cModule *module;          
00141 };
00142 
00150 class SIM_API cPreModuleDeleteNotification : public cModelChangeNotification
00151 {
00152   public:
00153     cModule *module;          
00154 };
00155 
00165 class SIM_API cPostModuleDeleteNotification : public cModelChangeNotification
00166 {
00167   public:
00168     cModule *module;          
00169     int moduleId;             
00170     cModuleType *moduleType;  
00171     const char *moduleName;   
00172     cModule *parentModule;    
00173     int vectorSize;           
00174     int index;                
00175 };
00176 
00183 class SIM_API cPreModuleReparentNotification : public cModelChangeNotification
00184 {
00185   public:
00186     cModule *module;          
00187     cModule *newParentModule; 
00188 };
00189 
00195 class SIM_API cPostModuleReparentNotification : public cModelChangeNotification
00196 {
00197   public:
00198     cModule *module;          
00199     cModule *oldParentModule; 
00200 };
00201 
00216 class SIM_API cPreGateAddNotification : public cModelChangeNotification
00217 {
00218   public:
00219     cModule *module;          
00220     const char *gateName;     
00221     cGate::Type gateType;     
00222     bool isVector;            
00223 };
00224 
00239 class SIM_API cPostGateAddNotification : public cModelChangeNotification
00240 {
00241   public:
00242     cModule *module;          
00243     const char *gateName;     
00244 };
00245 
00257 class SIM_API cPreGateDeleteNotification : public cModelChangeNotification
00258 {
00259   public:
00260     cModule *module;          
00261     const char *gateName;     
00262 };
00263 
00277 class SIM_API cPostGateDeleteNotification : public cModelChangeNotification
00278 {
00279   public:
00280     cModule *module;          
00281     const char *gateName;     
00282     cGate::Type gateType;     
00283     bool isVector;            
00284     int vectorSize;           
00285 };
00286 
00295 class SIM_API cPreGateVectorResizeNotification : public cModelChangeNotification
00296 {
00297   public:
00298     cModule *module;          
00299     const char *gateName;     
00300     int newSize;              
00301 };
00302 
00311 class SIM_API cPostGateVectorResizeNotification : public cModelChangeNotification
00312 {
00313   public:
00314     cModule *module;          
00315     const char *gateName;     
00316     int oldSize;              
00317 };
00318 
00329 class SIM_API cPreGateConnectNotification : public cModelChangeNotification
00330 {
00331   public:
00332     cGate *gate;              
00333     cGate *targetGate;        
00334     cChannel *channel;        
00335 };
00336 
00348 class SIM_API cPostGateConnectNotification : public cModelChangeNotification
00349 {
00350   public:
00351     cGate *gate;              
00352 };
00353 
00366 class SIM_API cPreGateDisconnectNotification : public cModelChangeNotification
00367 {
00368   public:
00369     cGate *gate;              
00370 };
00371 
00383 class SIM_API cPostGateDisconnectNotification : public cModelChangeNotification
00384 {
00385   public:
00386     cGate *gate;              
00387     cGate *targetGate;        
00388     cChannel *channel;        
00389 };
00390 
00408 class SIM_API cPathChangeNotification : public cModelChangeNotification
00409 {
00410   public:
00411     cGate *pathStartGate;     
00412     cGate *pathEndGate;       
00413     cGate *changedGate;       
00414 };
00415 
00424 class SIM_API cPrePathCreateNotification : public cPathChangeNotification { };
00425 
00434 class SIM_API cPostPathCreateNotification : public cPathChangeNotification { };
00435 
00444 class SIM_API cPrePathCutNotification : public cPathChangeNotification { };
00445 
00454 class SIM_API cPostPathCutNotification : public cPathChangeNotification { };
00455 
00462 class SIM_API cPreParameterChangeNotification : public cModelChangeNotification
00463 {
00464   public:
00465     cPar *par;                
00466 };
00467 
00474 class SIM_API cPostParameterChangeNotification : public cModelChangeNotification
00475 {
00476   public:
00477     cPar *par;                
00478 };
00479 
00485 class SIM_API cPreDisplayStringChangeNotification : public cModelChangeNotification
00486 {
00487   public:
00488     cDisplayString *displayString;  
00489 };
00490 
00496 class SIM_API cPostDisplayStringChangeNotification : public cModelChangeNotification
00497 {
00498   public:
00499     cDisplayString *displayString;  
00500 };
00501 
00502 NAMESPACE_END
00503 
00504 #endif
00505 
Generated on Tue Dec 2 11:16:27 2014 for OMNeT++ Simulation Library by  doxygen 1.6.3