~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

Linux Cross Reference
Tina6/tina-libs/tina/file/fileTs_snd_rcv.c

Version: ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /**********
  2  * 
  3  * Copyright (c) 2003, Division of Imaging Science and Biomedical Engineering,
  4  * University of Manchester, UK.  All rights reserved.
  5  * 
  6  * Redistribution and use in source and binary forms, with or without modification, 
  7  * are permitted provided that the following conditions are met:
  8  * 
  9  *   . Redistributions of source code must retain the above copyright notice, 
 10  *     this list of conditions and the following disclaimer.
 11  *    
 12  *   . Redistributions in binary form must reproduce the above copyright notice,
 13  *     this list of conditions and the following disclaimer in the documentation 
 14  *     and/or other materials provided with the distribution.
 15  * 
 16  *   . Neither the name of the University of Manchester nor the names of its
 17  *     contributors may be used to endorse or promote products derived from this 
 18  *     software without specific prior written permission.
 19  * 
 20  * 
 21  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 
 22  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 
 23  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 
 24  * ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 
 25  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 
 26  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 
 27  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 28  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 
 29  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
 30  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
 31  * POSSIBILITY OF SUCH DAMAGE.
 32  *
 33  **********
 34  * 
 35  * Program :    TINA
 36  * File    :  $Source: /home/tina/cvs/tina-libs/tina/file/fileTs_snd_rcv.c,v $
 37  * Date    :  $Date: 2005/01/23 19:10:21 $
 38  * Version :  $Revision: 1.3 $
 39  * CVS Id  :  $Id: fileTs_snd_rcv.c,v 1.3 2005/01/23 19:10:21 paul Exp $
 40  *
 41  * Author  :  Legacy TINA
 42  *
 43  * Notes :
 44  *
 45  * functions to send and receive TINA data structures
 46  * via sockets
 47  * 
 48  *********
 49 */
 50 
 51 #include "fileTs_snd_rcv.h"
 52 
 53 #if HAVE_CONFIG_H
 54   #include <config.h>
 55 #endif
 56 
 57 #include <stdio.h>
 58 #include <time.h>
 59 #include <string.h>
 60 #include <unistd.h>
 61 #include <tina/sys/sysDef.h>
 62 #include <tina/file/file_TsDef.h>
 63 #include <tina/file/fileTs_deserialise.h>
 64 #include <tina/file/fileTs_io.h>
 65 #include <tina/file/fileTs_save_load.h>
 66 #include <tina/file/fileTs_serialise.h>
 67 
 68 
 69 int ts_swrite(void *data, int fd)
 70 {
 71         List *s = NULL;
 72         char header[64];
 73         int count;
 74 
 75         if (!fd)
 76                 return 0;
 77         sprintf(header, "Tina Structure Data. Version %s\n", ts_version_get());
 78         write(fd, (void *) header, 64);
 79         s = ts_serialise_gen(s, data);
 80         count = ts_serialise_end();
 81         swrite_ts(fd, s, count);
 82 
 83         return 1;
 84 }
 85 
 86 
 87 int ts_sread(void **dp, int fd)
 88 {
 89         List *s = NULL;
 90         int count;
 91         char header[64];
 92         char version[25];
 93 
 94         if (!fd)
 95                 return 0;
 96 
 97         if (read(fd, header, 64) != 64)
 98         {
 99                 *(dp) = NULL;
100                 return 0;
101         }
102 
103         if (sscanf(header, "Tina Structure Data. Version %s\n", version) != 1)
104         {
105                 *(dp) = NULL;
106                 return 0;
107         }
108 
109         s = sread_ts(fd, &count);
110 
111         if (strcmp(version, ts_version_get()))
112                 ts_upgrade_data(s, version);
113         s = ts_deserialise_gen(s, dp);
114 
115         return 1;
116 }
117 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

This page was automatically generated by the LXR engine.
Visit the LXR main site for more information.