Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members | Related Pages | Examples

DataReading.cpp

    /*00*/ #include <whiptk/whip_toolkit.h>
           class My_Class;
           WT_Result my_open (WT_File &file);
           WT_Result my_close (WT_File &file);
           WT_Result my_read (WT_File &file, int desired_bytes, int &
    /*05*/                    bytes_read, void * buffer);
           WT_Result my_seek (WT_File &file, int distance, int &amount_seeked);
           WT_Result my_process_polyline (WT_Polyline &polyline, WT_File &file);


    /*10*/ void read_whip ( My_Class *my_stuff ) {
             WT_File  my_file;
             WT_Result result;

             my_file.set_stream_open_action (my_open);
    /*15*/   my_file.set_stream_close_action(my_close);
             my_file.set_stream_read_action (my_read);
             my_file.set_stream_seek_action (my_seek);

             my_file.set_filename("testfile.w2d");
    /*20*/   my_file.set_file_mode(WT_File::File_Read);
             my_file.open();

             my_file.heuristics().set_user_data(my_stuff);
             my_file.set_polyline_action(my_process_polyline);
    /*25*/   do {
               result = my_file.process_next_object();
             } while (result == WT_Result::Success);

             my_file.close();
    /*30*/ }

           #include <stdio.h>

           WT_Result my_open (WT_File &file)
    /*35*/ {
             FILE * fp = fopen(file.filename().ascii(), "rb");
             file.set_stream_user_data(fp);
             return WT_Result::Success;
           }
    /*40*/
           WT_Result my_close (WT_File &file)
           {
             FILE * fp = (FILE *) file.stream_user_data();
             fclose (fp);
    /*45*/   file.set_stream_user_data(WD_Null);
             return WT_Result::Success;
           }

           WT_Result my_read (WT_File &file, int desired_bytes, int &bytes_read, void * buffer)
    /*50*/ {
             FILE * fp = (FILE *) file.stream_user_data();
             if (feof(fp))
               return WT_Result::End_Of_File_Error;

    /*55*/   bytes_read = (int) fread(buffer, sizeof(WT_Byte), desired_bytes, fp);
             if (!bytes_read)
               return WT_Result::Unknown_File_Read_Error;

             return WT_Result::Success;
    /*60*/ }

           WT_Result my_seek(WT_File &file, int distance, int &amount_seeked)
           {
             if (fseek((FILE *)file.stream_user_data(), distance, SEEK_CUR) == 0)
    /*65*/   {
               amount_seeked = distance;
               return WT_Result::Success;
             }
             else
    /*70*/   {
               amount_seeked = 0;
               return WT_Result::End_Of_File_Error;
             }
           }
    /*75*/
           WT_Result my_process_polyline (WT_Polyline &polyline, WT_File &file)
           {
             My_Class * my_stuff = (My_Class*) file.heuristics().user_data();
             int color_index = file.rendition().color().index();
    /*80*/
             //my_stuff->add_to_my_display_list (color_index,
             //                                 polyline.count(), polyline.points());
             return WT_Result::Success;
           }

Generated on Mon May 9 23:16:54 2005 for Autodesk DWF Toolkit by  doxygen 1.4.1