From: Alex P. <pes...@ma...> - 2011-05-23 12:23:50
|
On 05/23/11 16:16, Adriano dos Santos Fernandes wrote: > All, > > I'll first start with no code and examples, but I wrote a small > framework to better write our API classes. > > First lets say the problems we're having. Usage of the API classes, > while is still low, are already becoming messy, specially related to the > status vector. > > There are status vector initialized in some places and not touched in > another ones. > > While the code was being written to be C++ friendly, again due to status > vector it's not. > > In the external engines (with the Error object), I used a way so the > error object would be constructed directly in the call and throw when > necessary when being destroy. See RaiseError class. We know this is bad > practice, and I had some problems with it while changing the Jaybird part. > > What the "framework" do is a way to define interfaces with some > preprocessor code, adding some functionalities. > > It creates Wrapper classes that has no status vector and do the > necessary throws. In the same way, it allows our code to be written to > throw instead of setting properties on status objects. > > As a bonus, it generates C structs with "vtable" pointers allowing C to > call the API. > > Also, using the preprocessor or some (say sed, awk, etc) tool, someone > may be able to "automatically" create bindings for others languages. > > Comments? Interesting and useful. |