00001
00002
00003
00004
00005 #ifndef __FILTERDATA_H
00006 #define __FILTERDATA_H
00007
00008 #include "FilterDev.h"
00009 #include <Task/Task.h>
00010 #include "Ports.h"
00011 #include "constants.h"
00012 #ifdef VOID_INST
00013 #include "Instrumentation.h"
00014 #endif
00015 #ifdef VOID_TRACER
00016 #include <Tracer/tracer.h>
00017 #include "tracingdefs.h"
00018 #endif
00019
00020
00021 typedef struct _LibData_ {
00022 char name[MAX_LNAME_LENGTH+1];
00023 void *libHandler;
00024 initialize_t *init;
00025 process_t *process;
00026 finalize_t *finalize;
00027 } LibData;
00028
00029
00030
00031 typedef struct __FilterData__{
00032 int id;
00033 char name[MAX_FNAME_LENGTH +1];
00034 char hostName[MAX_HNAME_LENGTH + 1];
00035 int memory;
00036 int numLocalInstances;
00037 int numInstances;
00038 int tids[MAXINSTANCES];
00039 int myRank;
00040 int numInputPorts, numOutputPorts;
00041 int numInportsAdded, numOutportsAdded;
00042 InputPort *inputPorts[MAXINPSTREAMS];
00043 OutputPort *outputPorts[MAXOUTSTREAMS];
00044 LibData libdata;
00045
00046 #ifdef VOID_INST
00047 InstData *instData;
00048 #endif
00049 #ifdef VOID_TRACER
00050 TrcData *trcData;
00051 #endif
00052
00053 } FilterData;
00054
00055
00056 #ifdef FILTERDATA_C
00057 FilterData *fd;
00058 #else
00059 extern FilterData *fd;
00060 #endif
00061
00062
00063
00064 FilterData *createFilterData();
00065
00066 void destroyFilterData(FilterData *fd);
00067
00068
00069
00070 int recvFilterData();
00071
00072 void runFilter();
00073
00074
00075
00076 int setFDName(FilterData *fd, char *name);
00077
00078 int setFDHostName(FilterData *fd, char *hostName);
00079
00080 int setFDNumInputs(FilterData *fd, int numInp);
00081
00082 int setFDNumOutputs(FilterData *fd, int numOut);
00083
00084 int setFDLibName(FilterData *fd, char *libName);
00085
00086 int setFDMachineMem(FilterData *fd, int mem);
00087
00088 int setFDLocalInstances(FilterData *fd, int numLocalInst);
00089
00090 int setFDNumInstances(FilterData *fd, int numInstances);
00091
00092 void setFDRank(FilterData *fd, int rank);
00093
00094 void setFDIdFilter(FilterData *fd, int id);
00095
00096 void setFDTids(FilterData *fd, int *tids);
00097 #ifdef VOID_INST
00098
00099 void setFDInstDir(FilterData *fd, char *dir);
00100 #endif
00101
00102
00103
00104 int getFDMachineMem(FilterData *fd);
00105
00106 int getFDLocalInstances(FilterData *fd);
00107
00108 char *getFDName(FilterData *fd);
00109
00110 int getFDNumInstances(FilterData *fd);
00111
00112
00113
00114
00115 int addFDInputPort(FilterData *fd, InputPort *p);
00116
00117 int addFDOutputPort(FilterData *fd, OutputPort *p);
00118
00119
00120 int loadFDLibFunctions(FilterData *fd);
00121
00122
00123 #endif