home *** CD-ROM | disk | FTP | other *** search
- /* Reverse a string using Adhesive object 2 which in turn uses object 3.
- Note we know nothing about object 3 in this program.
- */
-
- #include <stdlib.h>
- #include <stdio.h>
- #include <string.h>
- #include "h.kernel"
- #include "h.Adhesive"
-
- /* procedure from object 2 to reverse string */
- void stringSimpleReverse(char *string);
-
- /* external request table */
- extern Adhesive_Request cahg_need_ObjectsNeeded;
-
- /* our user handle */
- Adhesive_User userHandle=NULL;
-
- static void checkErr(_kernel_oserror *err)
- { /* does nothing if passed a zero pointer
- else displays error and does not return
- */
- if (err) {
- fprintf(stderr,"Error: %x %s\n",err->errnum,err->errmess);
- exit(EXIT_FAILURE);
- }
- }
-
-
- static void deRegister(void)
- {
- checkErr(adhesive_Deregister(&userHandle));
- }
-
-
- int main()
- {
- Adhesive_UserInfo info;
- char buff[256];
-
- info.flags=0;
- info.name="C User";
-
- /* setup atexit handler to ensure we always deregister */
- atexit(deRegister);
-
- /* register with Adhesive */
- checkErr(adhesive_Register(&userHandle,&info));
-
- /* request objects */
- checkErr(adhesive_Request(&userHandle,&cahg_need_ObjectsNeeded));
-
- /* copy string into writeable buffer */
- strcpy(buff,"this is a test");
-
- /* reverse string using requested object */
- printf("Original string: %s\n",buff);
- stringSimpleReverse(buff);
- printf("Reversed string: %s\n",buff);
-
- return EXIT_SUCCESS;
- }
-
-