RJLRef: $CASE/04s522/statusAJLopez040809Fdbk.txt > From ajlopez@cs.uml.edu Mon Aug 9 22:13:51 2004 > Subject: Project works fine (SetUp Phase and Run Phase) > > Good evening, Dr. Lechner! > > The project is working pretty good, even though the source code I have is > not 100% accurate. I would like to show you what I've done. We just need > to set a meeting. We can meet Thur around 530M. I need to go to NH from Westford 215PM, return about 515 estimated. You do not specify the new or revised .dat and .c/.h files that are produced by setup and compiled or consumed by run phase? Please reply ASAP and give me those file names. Your revised programs must be state-model-driven. The example code can onlybe hand-tailored to fit the application by modifying StateModelCreateCompletely() and its friend functions which are based on the quoted state transition event string initializations. > > I said "not 100% ac-curated" because the Setup phase doesn't generate the > same archive that we worked with in our last meeting (HominidDB.dat). I > think the source code is not the one which generates that archive, instead > it generates a smaller one. > > The main change to the Setup phase is switching from function address to > function index, and function array. The main change in the Run phase > is executing function calls with the function pointer array. > > I also made some changes to my initial source code -when I realized how > olcarch files, and pr_util files work-. And, of course, I have some > question to make in order to improve what I did: > > One is that I have to create different function arrays in order to keep > different states. So, I must check which array to use. In this case, I > create HDFunctTbl, and HLFunctTbl, and I check if STcurr->ActName == "l". > It's not a great way to work. > I suppose you mean different arrays for different State Models? Note there are two levels of complexity: (1) One func ptr array per SM-table-row and one SM-table-row per AC-row and its subclass (HD or HL in this example). (2) One func ptr array per SM-table-row and MULTIPLE State Models (SM-rows) per Active Class AC (like bde, which has one SM per method and multiple methods per class: cd $RL/src; grep '(switch\(state\))' *ops.cc (bendptops.cc captionops.cc graphops.cc linkops.cc nodeops.cc textops.cc) I mentioned multiple SM-rows per AC-row before. It has to do with sub-models called from a top-level class model for behavior. E.g., the left-side OOMenu in bde calls sub-machines for create/delete/resize/restyle/move methods for most drawable object classes in the bde schema. I haven't decided whether this state model tree (like a pop-up menu tree) requires more than one SM per AC. One URL that is fundamental but not specific to this question is to a paper by parrt@#usfca.edu: Enforcing Strict Model-View Separation in Template Engines. I have a .pdf copy. > I have some other, but I think it's better ask you during our meeting. > > You can check how the program works. There is a folder setup having the > LCPsetup.exe generating HominidDB.exe. It needs a parameter (--setup) in > order to work. And there is a Run executable file LCPmain (at the > executable folder) reading the HominidDB.dat file. > Surely you mean generating HominidDB.c/.h not .exe? gcc generates the latter. > To be sure that the program works the same that the one we check, I update > the old HomonidDB.dat file. I changed function address by array index, > and all output is exactly the same. > You don't say how the new event dispatcher was modified for run phase? you don't say how two Makefiles handle separate compilation of setup and run phases? > I hope you'd spent a nice vacation. > > Alfredo Lopez >