I am designing a server client architecture in Symbian platform and it seems to get overly complicated.
Basically I have 1. my application 2. Third party application and 3. agenda database, looks like I also need 4. agenda observer and 5. message relay server
And all should work seamlesly together, both in S60 and S80.
This is the way I am thinking about doing it:
The application (1) will start a CServer object (5) which will relay messages, and it will give it a callback reference. Can normal class pointers can be passed through CSession interfaces?
The application will register an agenda observer (4), which will in StartObserving function open a session into the server (5) too and pass a callback pointer to the CServer object.
The third party application (2) will open a session into CServer object (5) and pass a callback object into it.
Now when an event comes to agenda observer (4) from agenda DB (3), it invokes FooEvent in the server session (5), and the server will call all callback pointers it has to relay the message.
Any way of reducing the number of different executables? Can agenda observer (4) and 'message distributor' (5) be combined into single dll? Is it possible to pass pointers between different executables through dll interfaces? What kind of thread safeguards should I use for communication between processes?