First Post Disclaimer: I have no formal education and have never read any formal text on programming practices. This said I have a small personal library on totally non related subjects and includes such great titles as L.G. Wade Jr's Organic Chemistry and an English translation of Albert Messiahs Quantum Mechanics(I estimate my capability in the involved mathematics to be achieved in the next three years.) Please forgive me if I am reiterating anything that is obvious and well presented as if it is my own or am using improper terminology or am completely wrong!
My present Lemma to the greater problem of creating generic pathways to resolve resource management is held within INetVar*. This issue has most definitely been my priority in the development of Duality thus far. It has surprisingly been the largest factor in upholding the development of actual tools as the infrastructure continues to be up heaved on a daily basis. The argument here is on the approach and is in my opinion likened to the CISC vs. RISC debate. I see two possible approaches to communicating between all resources globally and without the use of globals. One is to pass around the resource managers interface and load it up with a good many 'resolve this functions'; adding as required. Another I see is the umbrella variable which can be routed and parsed as required. Enter INetVar*; My present Lemma to the greater problem of creating generic pathways to resolve resource management is held within INetVar*.
Intermissive statement: "I see the umbrella variable in combination with natural language parsing as a stepping stone into a new method of programming, one which will open up the avenues to better AI!"
With that statement I would like to note that Duality is being built from the ground up with the intention of being robust and preferably self aware(like Dreamcast but like not!)
At present I am not even considering the actual implementation of a natural language parser and am strictly adhering to the use of enums and maps. I guess the issue of greatest concern with this system is its expense. My present work flow for passing data looks something like:
- new variable header description
- new variable subresource description
- null INetVar* Var interface
- CreateVariableTypeX(&Var, &header, &subresource);
- pass INetVar* to communications pipeline
Based on the header the recipient can QueryInterface the IBaseVarSubres* through appropriate subresource types to find the correct one; or return S_FALSE which ever comes first. Based on the contained subresource handling can be further refined. This is pretty expensive when the alternative is considered. An example of the later being ResourceManager->ContainedModulesRenderers->IntanceModule(&BaseRendererModule); yays. I see the main issues with the latter being a need to constantly update interfaces with new functions boo and a level of organization which begs for bugs.
So to make an extremely long story extremely short and without posting any relevant code I leave you with this, it's thinking!