Finished the subscription service and with that also concluded the implementation of the high-level push service interface: IPushService. I also knocked out the acknowledgement service and placeholders for the content provider notification and authentication services.
This means that all the major parts of the SDK have now been ported!
Now I am looking at parameter validation, type-safe exception types, Enterprise Library logging support and fully documenting the source to ensure the SDK is nice, robust and easy to debug/maintain.
I will then look at making the comms logic asynchronous and seeing how far up the call chain that work goes – perhaps IPapService and IPushService will go from synchronous to async APIs – I certainly hope so!
Finally I will start a Push Plus evaluation so that the advanced functional support can be fully tested.
At that point I will upload the solution to CodePlex for consideration by the community.
The low-level push API code is complete with support added for RIM specific messages.
The next layer (IPapService) which exposes a low-level facade that can send messages and return responses together with a listener that can called by the push service itself is now complete.
Layer three is next. This is a terribly complex layer and contains the majority of the SDK.
Thankfully it is split into manageable segments.
IPushApplicationService and it’s repository has been completed – although additional validation is still required.
IPushCountService and it’s repository has been completed – this was an easy one…
IPushRequestService and IPushRequestDetailService and the associated repositories have been completed.
IPushStatsService and IPushStatsBatchUpdaterService together the the stats repository are fully implemented – a tricky little devil but now implemented according to the SDK documentation.
So far so good – next I tried to write the IPushService code and realised that I really need the subscription service support before it will make sense! So the ISubscriptionService is now being looked at – this is a very wide interface so will take a day or two to write.
Obviously on the way to implementing subscription I will also implement ISubscriptionQueryService needed to talk to the BlackBerry infrastructure however unlike the Java API, I will reuse the PAP service to handle the message routing…
Last up will be acknowledgement support and providing the hooks necessary for SDK users’ to utilise inbound data.
Clearly once this code is done I will be getting a Push Plus experimental key and putting the code through its paces to see if the subscription, acknowledgements and request storage code works as expected – that will be fun…