00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef __wcecompat__ChildData_h__
00023 #define __wcecompat__ChildData_h__
00024
00025
00026 #include "args.h"
00027
00028
00029 class ChildData
00030 {
00031 typedef struct
00032 {
00033 TCHAR* name;
00034 TCHAR* value;
00035 } NameValuePair;
00036
00037 private:
00038
00039 TCHAR* currentDirectory;
00040 RedirArg* redirArgs;
00041 int numRedirArgs;
00042 NameValuePair* environment;
00043 int environmentLength;
00044
00045 public:
00046
00047 ChildData();
00048 ~ChildData();
00049
00050 void dump();
00051
00052 const TCHAR* getCurrentDirectory() const;
00053 void setCurrentDirectory(const TCHAR* directory);
00054
00055 void resetCurrentDirectory();
00056
00057 void resetRedirArgs();
00058 RedirArg* getRedirArg(int fd);
00059 bool setRedirArg(RedirArg* redirArg);
00060 bool setRedirArgs(RedirArg* redirArgs, int numRedirArgs);
00061
00062 void resetEnvironment();
00063 bool addEnvironmentVar(WCHAR* env);
00064 bool addEnvironmentList(WCHAR* env);
00065 bool saveEnvironment();
00066 bool restoreEnvironment();
00067
00068
00069 bool encode(void* childData, int* childDataSize);
00070
00071
00072 bool decode(void* childData);
00073 };
00074
00075
00076 #endif