00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #ifndef MbsLmdStruct
00017 #define MbsLmdStruct
00018
00019 #include <stdio.h>
00020
00021 #include "sMbs.h"
00022
00023 #ifndef FILEONLY
00024 #include "f_stccomm.h"
00025 #endif
00026
00027 #define LMD__SUCCESS 0
00028 #define LMD__FAILURE 1
00029 #define LMD__CLOSE_ERR 3
00030 #define GETLMD__NOFILE 2
00031 #define GETLMD__NOLMDFILE 4
00032 #define GETLMD__EOFILE 5
00033 #define GETLMD__NOMORE 6
00034 #define GETLMD__NOBUFFER 7
00035 #define GETLMD__TOOBIG 8
00036 #define GETLMD__OUTOF_RANGE 9
00037 #define GETLMD__SIZE_ERROR 10
00038 #define LMD__TIMEOUT 50
00039 #define PUTLMD__FILE_EXIST 101
00040 #define PUTLMD__TOOBIG 102
00041 #define PUTLMD__OPEN_ERR 103
00042 #define PUTLMD__EXCEED 104
00043 #define PORT__TRANS 6000
00044 #define PORT__STREAM 6002
00045
00046 typedef struct
00047 {
00048 FILE *fFile;
00049 int16_t *pBuffer;
00050 uint32_t iBufferWords;
00051 uint32_t iLeftWords;
00052 uint32_t iInternHeader;
00053 uint32_t iInternBuffer;
00054 uint32_t iElements;
00055 uint64_t iBytes;
00056 char cFile[512];
00057 uint32_t iSwap;
00058 uint32_t iVerbose;
00059 char *cHeader;
00060 uint32_t *pOffset4;
00061 lmdoff_t *pOffset8;
00062 lmdoff_t oTableOffset;
00063 uint32_t iOffsetSize;
00064 uint32_t iOffsetEntries;
00065 sMbsFileHeader *pMbsFileHeader;
00066 sMbsHeader *pMbsHeader;
00067 struct s_tcpcomm *pTCP;
00068 uint32_t iTCP;
00069 uint32_t iPort;
00070 uint32_t iTcpTimeout;
00071 } sLmdControl;
00072
00073 sLmdControl * fLmdAllocateControl();
00074 uint32_t fLmdPutOpen(sLmdControl*,char*,sMbsFileHeader*,uint32_t,uint32_t,uint32_t,uint32_t);
00075 uint32_t fLmdPutElement(sLmdControl*,sMbsHeader*);
00076 uint32_t fLmdPutBuffer(sLmdControl*, sMbsHeader*,uint32_t);
00077 uint32_t fLmdPutClose(sLmdControl*);
00078 #ifndef FILEONLY
00079 uint32_t fLmdConnectMbs(sLmdControl*,char*,uint32_t,uint32_t*);
00080 uint32_t fLmdInitMbs(sLmdControl*,char*,uint32_t,uint32_t,uint32_t,uint32_t,uint32_t);
00081 uint32_t fLmdGetMbsBuffer(sLmdControl*,sMbsBufferHeader*,uint32_t,uint32_t*,uint32_t*);
00082 uint32_t fLmdGetMbsEvent(sLmdControl*,sMbsHeader**);
00083 uint32_t fLmdCloseMbs(sLmdControl*);
00084 #endif
00085 uint32_t fLmdGetOpen(sLmdControl*,char*,sMbsFileHeader*,uint32_t,uint32_t);
00086 uint32_t fLmdGetBuffer(sLmdControl*,sMbsHeader*,uint32_t,uint32_t*,uint32_t*);
00087 int32_t fLmdReadBuffer(sLmdControl*,char*,uint32_t);
00088 uint32_t fLmdGetElement(sLmdControl*,uint32_t,sMbsHeader**);
00089 uint32_t fLmdGetClose(sLmdControl*);
00090 void fLmdPrintBufferHeader(uint32_t,sMbsBufferHeader*);
00091 void fLmdPrintFileHeader(uint32_t,sMbsFileHeader*);
00092 void fLmdPrintHeader(uint32_t,sMbsHeader*);
00093 void fLmdPrintEvent(uint32_t,sMbsEventHeader*);
00094 void fLmdPrintControl(uint32_t,sLmdControl*);
00095 void fLmdVerbose(sLmdControl*,uint32_t);
00096 void fLmdSwap4(uint32_t*,uint32_t);
00097 void fLmdSwap8(uint64_t*,uint32_t);
00098 void fLmdSetWrittenEndian(sLmdControl *,uint32_t);
00099 uint32_t fLmdGetWrittenEndian(sLmdControl *);
00100 uint32_t fLmdGetSwap(sLmdControl *);
00101 uint64_t fLmdGetBytesWritten(sLmdControl *);
00102
00103 #endif
00104
00105