Discussion:
rapi2 api
Mark Ellis
2009-07-28 21:47:40 UTC
Permalink
David, in case you don't follow the svn commits I thought I'd give you a
heads up on this.

I recently committed a new api to librapi2 based on David Eriksson's
suggestion of using the MS rapi2 api. It's definitely not finished, but
it does work. In particular most of the utility functions don't work,
reference counting is dodgy, and the error codes need some work, but all
of the previously implemented session functions should be fine. If you
want to give it a go you'll need the svn of libsynce as well.

The attached program should give you the idea. Let me know what you
think.

Mark
Guido Diepen
2009-07-29 07:01:50 UTC
Permalink
Hi Mark,

Could you please explain a bit more what the effect of this would be when
I would like to work on implementing some more of the functionality (for
example databases, which are still not supported AFAIK for wm5+ devices).

Furthermore, do all current programs have to be rewritten, or is this just
an additional interface?

Kind regards,

Guido Diepen
Post by Mark Ellis
David, in case you don't follow the svn commits I thought I'd give you a
heads up on this.
I recently committed a new api to librapi2 based on David Eriksson's
suggestion of using the MS rapi2 api. It's definitely not finished, but
it does work. In particular most of the utility functions don't work,
reference counting is dodgy, and the error codes need some work, but all
of the previously implemented session functions should be fine. If you
want to give it a go you'll need the svn of libsynce as well.
The attached program should give you the idea. Let me know what you
think.
Mark
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008
30-Day
trial. Simplify your report design, integration and deployment - and focus
on
what you do best, core application coding. Discover what's new with
Crystal Reports now.
http://p.sf.net/sfu/bobj-july_______________________________________________
SynCE-Devel mailing list
https://lists.sourceforge.net/lists/listinfo/synce-devel
Mark Ellis
2009-07-29 20:22:37 UTC
Permalink
Post by Guido Diepen
Hi Mark,
Could you please explain a bit more what the effect of this would be when
I would like to work on implementing some more of the functionality (for
example databases, which are still not supported AFAIK for wm5+ devices).
Furthermore, do all current programs have to be rewritten, or is this just
an additional interface?
Kind regards,
Guido Diepen
Firstly, it's a completely separate interface, nothing else needs to be
rewritten, though a lot of things will probably benefit over time if
they were.

We were fortunate enough for the existing library to translate very
easily to the new api, and while the structure has changed a bit, I
mostly did that to make it all clearer.

The main points to keep in mind are that what used to be
rapi_indirection.c, where the public functions called the appropriate
WM2003 or WM5 operations, is now rapi_api.c; and the directories that
contain the version specific operations, that used to be called rapi and
rapi2, are now backend_ops_1 and backend_ops_2. Implementing functions
is exactly the same, put the code in the skeleton func in the backend
directory, and rename in appropriate places from NotImplemented... to
the function name etc.

All the backend implementations (apart from RapiInvoke with a stream,
but that's another game entirely), now get the RapiContext to use as
their first arguement, and shouldn't use context_current, but that's the
most significant change.

That would be great if you did the database functions, I did start but
didn't get very far at all.

Mark
Post by Guido Diepen
Post by Mark Ellis
David, in case you don't follow the svn commits I thought I'd give you a
heads up on this.
I recently committed a new api to librapi2 based on David Eriksson's
suggestion of using the MS rapi2 api. It's definitely not finished, but
it does work. In particular most of the utility functions don't work,
reference counting is dodgy, and the error codes need some work, but all
of the previously implemented session functions should be fine. If you
want to give it a go you'll need the svn of libsynce as well.
The attached program should give you the idea. Let me know what you
think.
Mark
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008
30-Day
trial. Simplify your report design, integration and deployment - and focus
on
what you do best, core application coding. Discover what's new with
Crystal Reports now.
http://p.sf.net/sfu/bobj-july_______________________________________________
SynCE-Devel mailing list
https://lists.sourceforge.net/lists/listinfo/synce-devel
David Richardson
2009-08-06 22:09:10 UTC
Permalink
Hey Mark,
Sorry for the delayed response. We've been busy with blackhat/defcon stuff.

This really looks awesome. It solves some other problems that I was solving
in hacky ways too (namely device enumeration)! This will speed up our
automated testing by a factor of # of devices. I hope I can find some free
time in the next few weeks to work in these changes and report some exact
results to you guys.

I do want to note that we here at Flexilis are planning on open sourcing
this automated testing tool that allows scripted gui testing and deploying
unit tests to hundreds of devices across multiple platforms (android, winmo,
etc) sometime in the near future.

I'm really impressed Mark, thanks a lot!

-David Richardson
Flexilis
Post by Mark Ellis
Post by Guido Diepen
Hi Mark,
Could you please explain a bit more what the effect of this would be when
I would like to work on implementing some more of the functionality (for
example databases, which are still not supported AFAIK for wm5+ devices).
Furthermore, do all current programs have to be rewritten, or is this
just
Post by Guido Diepen
an additional interface?
Kind regards,
Guido Diepen
Firstly, it's a completely separate interface, nothing else needs to be
rewritten, though a lot of things will probably benefit over time if
they were.
We were fortunate enough for the existing library to translate very
easily to the new api, and while the structure has changed a bit, I
mostly did that to make it all clearer.
The main points to keep in mind are that what used to be
rapi_indirection.c, where the public functions called the appropriate
WM2003 or WM5 operations, is now rapi_api.c; and the directories that
contain the version specific operations, that used to be called rapi and
rapi2, are now backend_ops_1 and backend_ops_2. Implementing functions
is exactly the same, put the code in the skeleton func in the backend
directory, and rename in appropriate places from NotImplemented... to
the function name etc.
All the backend implementations (apart from RapiInvoke with a stream,
but that's another game entirely), now get the RapiContext to use as
their first arguement, and shouldn't use context_current, but that's the
most significant change.
That would be great if you did the database functions, I did start but
didn't get very far at all.
Mark
Post by Guido Diepen
Post by Mark Ellis
David, in case you don't follow the svn commits I thought I'd give you
a
Post by Guido Diepen
Post by Mark Ellis
heads up on this.
I recently committed a new api to librapi2 based on David Eriksson's
suggestion of using the MS rapi2 api. It's definitely not finished, but
it does work. In particular most of the utility functions don't work,
reference counting is dodgy, and the error codes need some work, but
all
Post by Guido Diepen
Post by Mark Ellis
of the previously implemented session functions should be fine. If you
want to give it a go you'll need the svn of libsynce as well.
The attached program should give you the idea. Let me know what you
think.
Mark
------------------------------------------------------------------------------
Post by Guido Diepen
Post by Mark Ellis
Let Crystal Reports handle the reporting - Free Crystal Reports 2008
30-Day
trial. Simplify your report design, integration and deployment - and
focus
Post by Guido Diepen
Post by Mark Ellis
on
what you do best, core application coding. Discover what's new with
Crystal Reports now.
http://p.sf.net/sfu/bobj-july_______________________________________________
Post by Guido Diepen
Post by Mark Ellis
SynCE-Devel mailing list
https://lists.sourceforge.net/lists/listinfo/synce-devel
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus
on
what you do best, core application coding. Discover what's new with
Crystal Reports now. http://p.sf.net/sfu/bobj-july
_______________________________________________
SynCE-Devel mailing list
https://lists.sourceforge.net/lists/listinfo/synce-devel
Mark Ellis
2009-08-08 09:44:00 UTC
Permalink
Post by David Richardson
Hey Mark,
Sorry for the delayed response. We've been busy with blackhat/defcon stuff.
This really looks awesome. It solves some other problems that I was
solving in hacky ways too (namely device enumeration)! This will
speed up our automated testing by a factor of # of devices. I hope I
can find some free time in the next few weeks to work in these changes
and report some exact results to you guys.
Glad you like it. While I'm a bit busy at the moment, I'll be adding and
tweaking so keep an eye on svn.

For a while there I thought MS had come up with quite a good api, if
actually terribly documented. Of course I was wrong, for one thing it
doesn't deal at all with the password / locked status of a device, oh
well :)
Post by David Richardson
I do want to note that we here at Flexilis are planning on open
sourcing this automated testing tool that allows scripted gui testing
and deploying unit tests to hundreds of devices across multiple
platforms (android, winmo, etc) sometime in the near future.
I'm really impressed Mark, thanks a lot!
-David Richardson
Flexilis
Post by Guido Diepen
Hi Mark,
Could you please explain a bit more what the effect of this
would be when
Post by Guido Diepen
I would like to work on implementing some more of the
functionality (for
Post by Guido Diepen
example databases, which are still not supported AFAIK for
wm5+ devices).
Post by Guido Diepen
Furthermore, do all current programs have to be rewritten,
or is this just
Post by Guido Diepen
an additional interface?
Kind regards,
Guido Diepen
Firstly, it's a completely separate interface, nothing else needs to be
rewritten, though a lot of things will probably benefit over time if
they were.
We were fortunate enough for the existing library to translate very
easily to the new api, and while the structure has changed a bit, I
mostly did that to make it all clearer.
The main points to keep in mind are that what used to be
rapi_indirection.c, where the public functions called the appropriate
WM2003 or WM5 operations, is now rapi_api.c; and the
directories that
contain the version specific operations, that used to be called rapi and
rapi2, are now backend_ops_1 and backend_ops_2. Implementing functions
is exactly the same, put the code in the skeleton func in the backend
directory, and rename in appropriate places from
NotImplemented... to
the function name etc.
All the backend implementations (apart from RapiInvoke with a stream,
but that's another game entirely), now get the RapiContext to use as
their first arguement, and shouldn't use context_current, but that's the
most significant change.
That would be great if you did the database functions, I did start but
didn't get very far at all.
Mark
Post by Guido Diepen
Post by Mark Ellis
David, in case you don't follow the svn commits I thought
I'd give you a
Post by Guido Diepen
Post by Mark Ellis
heads up on this.
I recently committed a new api to librapi2 based on David
Eriksson's
Post by Guido Diepen
Post by Mark Ellis
suggestion of using the MS rapi2 api. It's definitely not
finished, but
Post by Guido Diepen
Post by Mark Ellis
it does work. In particular most of the utility functions
don't work,
Post by Guido Diepen
Post by Mark Ellis
reference counting is dodgy, and the error codes need some
work, but all
Post by Guido Diepen
Post by Mark Ellis
of the previously implemented session functions should be
fine. If you
Post by Guido Diepen
Post by Mark Ellis
want to give it a go you'll need the svn of libsynce as
well.
Post by Guido Diepen
Post by Mark Ellis
The attached program should give you the idea. Let me know
what you
Post by Guido Diepen
Post by Mark Ellis
think.
Mark
------------------------------------------------------------------------------
Post by Guido Diepen
Post by Mark Ellis
Let Crystal Reports handle the reporting - Free Crystal
Reports 2008
Post by Guido Diepen
Post by Mark Ellis
30-Day
trial. Simplify your report design, integration and
deployment - and focus
Post by Guido Diepen
Post by Mark Ellis
on
what you do best, core application coding. Discover what's
new with
Post by Guido Diepen
Post by Mark Ellis
Crystal Reports now.
http://p.sf.net/sfu/bobj-july_______________________________________________
Post by Guido Diepen
Post by Mark Ellis
SynCE-Devel mailing list
https://lists.sourceforge.net/lists/listinfo/synce-devel
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment
- and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now. http://p.sf.net/sfu/bobj-july
_______________________________________________
SynCE-Devel mailing list
https://lists.sourceforge.net/lists/listinfo/synce-devel
Loading...