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

Wine Cross Reference
wine/dlls/qmgr/qmgr.h

Version: ~ [ wine-1.5.30 ] ~ [ wine-1.5.29 ] ~ [ wine-1.5.28 ] ~ [ wine-1.5.27 ] ~ [ wine-1.5.26 ] ~ [ wine-1.5.25 ] ~ [ wine-1.5.24 ] ~ [ wine-1.5.23 ] ~ [ wine-1.5.22 ] ~ [ wine-1.5.21 ] ~ [ wine-1.5.20 ] ~ [ wine-1.5.19 ] ~ [ wine-1.5.18 ] ~ [ wine-1.5.17 ] ~ [ wine-1.5.16 ] ~ [ wine-1.5.15 ] ~ [ wine-1.5.14 ] ~ [ wine-1.5.13 ] ~ [ wine-1.5.12 ] ~ [ wine-1.5.11 ] ~ [ wine-1.5.10 ] ~ [ wine-1.5.9 ] ~ [ wine-1.5.8 ] ~ [ wine-1.5.7 ] ~ [ wine-1.4.1 ] ~ [ wine-1.5.6 ] ~ [ wine-1.5.5 ] ~ [ wine-1.5.4 ] ~ [ wine-1.5.3 ] ~ [ wine-1.5.2 ] ~ [ wine-1.5.1 ] ~ [ wine-1.5.0 ] ~ [ wine-1.4 ] ~ [ wine-1.4-rc6 ] ~ [ wine-1.4-rc5 ] ~ [ wine-1.4-rc4 ] ~ [ wine-1.4-rc3 ] ~ [ wine-1.4-rc2 ] ~ [ wine-1.4-rc1 ] ~ [ wine-1.3.37 ] ~ [ wine-1.3.36 ] ~ [ wine-1.3.35 ] ~ [ wine-1.3.34 ] ~ [ wine-1.3.33 ] ~ [ wine-1.3.32 ] ~ [ wine-1.3.31 ] ~ [ wine-1.3.30 ] ~ [ wine-1.3.29 ] ~ [ wine-1.3.28 ] ~ [ wine-1.3.27 ] ~ [ wine-1.3.26 ] ~ [ wine-1.3.25 ] ~ [ wine-1.3.24 ] ~ [ wine-1.3.23 ] ~ [ wine-1.3.22 ] ~ [ wine-1.3.21 ] ~ [ wine-1.3.20 ] ~ [ wine-1.3.19 ] ~ [ wine-1.3.18 ] ~ [ wine-1.2.3 ] ~ [ wine-1.3.17 ] ~ [ wine-1.3.16 ] ~ [ wine-1.3.15 ] ~ [ wine-1.3.14 ] ~ [ wine-1.3.13 ] ~ [ wine-1.3.12 ] ~ [ wine-1.3.11 ] ~ [ wine-1.3.10 ] ~ [ wine-1.3.9 ] ~ [ wine-1.2.2 ] ~ [ wine-1.3.8 ] ~ [ wine-1.3.7 ] ~ [ wine-1.3.6 ] ~ [ wine-1.3.5 ] ~ [ wine-1.2.1 ] ~ [ wine-1.3.4 ] ~ [ wine-1.3.3 ] ~ [ wine-1.3.2 ] ~ [ wine-1.3.1 ] ~ [ wine-1.3.0 ] ~ [ wine-1.2 ] ~ [ wine-1.2-rc7 ] ~ [ wine-1.2-rc6 ] ~ [ wine-1.2-rc5 ] ~ [ wine-1.2-rc4 ] ~ [ wine-1.2-rc3 ] ~ [ wine-1.2-rc2 ] ~ [ wine-1.2-rc1 ] ~ [ wine-1.1.44 ] ~ [ wine-1.1.43 ] ~ [ wine-1.1.42 ] ~ [ wine-1.1.41 ] ~ [ wine-1.1.40 ] ~ [ wine-1.1.39 ] ~ [ wine-1.1.38 ] ~ [ wine-1.1.37 ] ~ [ wine-1.1.36 ] ~ [ wine-1.1.35 ] ~ [ wine-1.1.34 ] ~ [ wine-1.1.33 ] ~ [ wine-1.1.32 ] ~ [ wine-1.1.31 ] ~ [ wine-1.1.30 ] ~ [ wine-1.1.29 ] ~ [ wine-1.1.28 ] ~ [ wine-1.1.27 ] ~ [ wine-1.1.26 ] ~ [ wine-1.1.25 ] ~ [ wine-1.1.24 ] ~ [ wine-1.1.23 ] ~ [ wine-1.1.22 ] ~ [ wine-1.1.21 ] ~ [ wine-1.1.20 ] ~ [ wine-1.1.19 ] ~ [ wine-1.1.18 ] ~ [ wine-1.1.17 ] ~ [ wine-1.1.16 ] ~ [ wine-1.1.15 ] ~ [ wine-1.1.14 ] ~ [ wine-1.1.13 ] ~ [ wine-1.1.12 ] ~ [ wine-1.1.11 ] ~ [ wine-1.1.10 ] ~ [ wine-1.1.9 ] ~ [ wine-1.1.8 ] ~ [ wine-1.1.7 ] ~ [ wine-1.0.1 ] ~ [ wine-1.1.6 ] ~ [ wine-1.1.5 ] ~ [ wine-1.1.4 ] ~ [ wine-1.1.3 ] ~ [ wine-1.1.2 ] ~ [ wine-1.1.1 ] ~ [ wine-1.1.0 ] ~ [ wine-1.0 ] ~

  1 /*
  2  * Queue Manager definitions
  3  *
  4  * Copyright 2007 Google (Roy Shea)
  5  *
  6  * This library is free software; you can redistribute it and/or
  7  * modify it under the terms of the GNU Lesser General Public
  8  * License as published by the Free Software Foundation; either
  9  * version 2.1 of the License, or (at your option) any later version.
 10  *
 11  * This library is distributed in the hope that it will be useful,
 12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
 13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 14  * Lesser General Public License for more details.
 15  *
 16  * You should have received a copy of the GNU Lesser General Public
 17  * License along with this library; if not, write to the Free Software
 18  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
 19  */
 20 
 21 #ifndef __QMGR_H__
 22 #define __QMGR_H__
 23 
 24 #include "windef.h"
 25 #include "objbase.h"
 26 
 27 #define COBJMACROS
 28 #include "bits1_5.h"
 29 
 30 #include <string.h>
 31 #include "wine/list.h"
 32 
 33 /* Background copy job vtbl and related data */
 34 typedef struct
 35 {
 36     const IBackgroundCopyJob2Vtbl *lpVtbl;
 37     LONG ref;
 38     LPWSTR displayName;
 39     BG_JOB_TYPE type;
 40     GUID jobId;
 41     struct list files;
 42     BG_JOB_PROGRESS jobProgress;
 43     BG_JOB_STATE state;
 44     /* Protects file list, and progress */
 45     CRITICAL_SECTION cs;
 46     struct list entryFromQmgr;
 47 } BackgroundCopyJobImpl;
 48 
 49 /* Enum background copy jobs vtbl and related data */
 50 typedef struct
 51 {
 52     const IEnumBackgroundCopyJobsVtbl *lpVtbl;
 53     LONG ref;
 54     IBackgroundCopyJob **jobs;
 55     ULONG numJobs;
 56     ULONG indexJobs;
 57 } EnumBackgroundCopyJobsImpl;
 58 
 59 /* Enum background copy files vtbl and related data */
 60 typedef struct
 61 {
 62     const IEnumBackgroundCopyFilesVtbl *lpVtbl;
 63     LONG ref;
 64     IBackgroundCopyFile **files;
 65     ULONG numFiles;
 66     ULONG indexFiles;
 67 } EnumBackgroundCopyFilesImpl;
 68 
 69 /* Background copy file vtbl and related data */
 70 typedef struct
 71 {
 72     const IBackgroundCopyFileVtbl *lpVtbl;
 73     LONG ref;
 74     BG_FILE_INFO info;
 75     BG_FILE_PROGRESS fileProgress;
 76     WCHAR tempFileName[MAX_PATH];
 77     struct list entryFromJob;
 78     BackgroundCopyJobImpl *owner;
 79 } BackgroundCopyFileImpl;
 80 
 81 /* Background copy manager vtbl and related data */
 82 typedef struct
 83 {
 84     const IBackgroundCopyManagerVtbl *lpVtbl;
 85     /* Protects job list, job states, and jobEvent  */
 86     CRITICAL_SECTION cs;
 87     HANDLE jobEvent;
 88     struct list jobs;
 89 } BackgroundCopyManagerImpl;
 90 
 91 typedef struct
 92 {
 93     const IClassFactoryVtbl *lpVtbl;
 94 } ClassFactoryImpl;
 95 
 96 extern HANDLE stop_event;
 97 extern ClassFactoryImpl BITS_ClassFactory;
 98 extern BackgroundCopyManagerImpl globalMgr;
 99 
100 HRESULT BackgroundCopyManagerConstructor(IUnknown *pUnkOuter, LPVOID *ppObj);
101 HRESULT BackgroundCopyJobConstructor(LPCWSTR displayName, BG_JOB_TYPE type,
102                                      GUID *pJobId, LPVOID *ppObj);
103 HRESULT EnumBackgroundCopyJobsConstructor(LPVOID *ppObj,
104                                           IBackgroundCopyManager* copyManager);
105 HRESULT BackgroundCopyFileConstructor(BackgroundCopyJobImpl *owner,
106                                       LPCWSTR remoteName, LPCWSTR localName,
107                                       LPVOID *ppObj);
108 HRESULT EnumBackgroundCopyFilesConstructor(LPVOID *ppObj,
109                                            IBackgroundCopyJob2 *copyJob);
110 DWORD WINAPI fileTransfer(void *param);
111 void processJob(BackgroundCopyJobImpl *job);
112 BOOL processFile(BackgroundCopyFileImpl *file, BackgroundCopyJobImpl *job);
113 
114 /* Little helper functions */
115 static inline char *
116 qmgr_strdup(const char *s)
117 {
118     size_t n = strlen(s) + 1;
119     char *d = HeapAlloc(GetProcessHeap(), 0, n);
120     return d ? memcpy(d, s, n) : NULL;
121 }
122 
123 static inline BOOL
124 transitionJobState(BackgroundCopyJobImpl *job, BG_JOB_STATE fromState,
125                    BG_JOB_STATE toState)
126 {
127     BOOL rv = FALSE;
128     EnterCriticalSection(&globalMgr.cs);
129     if (job->state == fromState)
130     {
131         job->state = toState;
132         rv = TRUE;
133     }
134     LeaveCriticalSection(&globalMgr.cs);
135     return rv;
136 }
137 
138 #endif /* __QMGR_H__ */
139 

~ [ 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.