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