Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

484 lines
12 KiB

  1. /**********************************************************************/
  2. /** Microsoft LAN Manager **/
  3. /** Copyright(c) Microsoft Corp., 1990, 1991 **/
  4. /**********************************************************************/
  5. /*
  6. lmoerepl.hxx
  7. This file contains the class declarations for the REPL_EDIR0_ENUM,
  8. REPL_EDIR1_ENUM, REPL_EDIR2_ENUM, REPL_IDIR0_ENUM, and
  9. REPL_IDIR1_ENUM classes and their associated iterators.
  10. and FILE3_ENUM_ITER classes.
  11. FILE HISTORY:
  12. KeithMo 26-Feb-1992 Created for the Server Manager.
  13. */
  14. #ifndef _LMOEREPL_HXX_
  15. #define _LMOEREPL_HXX_
  16. #include "lmoenum.hxx"
  17. #include "string.hxx"
  18. //
  19. // Export directory enumerators.
  20. //
  21. /*************************************************************************
  22. NAME: REPL_EDIR_ENUM
  23. SYNOPSIS: Base class for replicator export directory enumerations.
  24. INTERFACE: REPL_EDIR_ENUM - Class constructor.
  25. ~REPL_EDIR__ENUM - Class destructor.
  26. CallAPI - Invoke the enumeration API.
  27. PARENT: LOC_LM_ENUM
  28. USES: NLS_STR
  29. HISTORY:
  30. KeithMo 26-Feb-1992 Created
  31. **************************************************************************/
  32. DLL_CLASS REPL_EDIR_ENUM : public LOC_LM_ENUM
  33. {
  34. private:
  35. virtual APIERR CallAPI( BYTE ** ppbBuffer,
  36. UINT * pcEntriesRead );
  37. protected:
  38. REPL_EDIR_ENUM( const TCHAR * pszServer,
  39. UINT Level );
  40. }; // class REPL_EDIR_ENUM
  41. /*************************************************************************
  42. NAME: REPL_EDIR0_ENUM
  43. SYNOPSIS: Info level 0 replicator export directory enumerator.
  44. INTERFACE: REPL_EDIR0_ENUM - Class constructor.
  45. ~REPL_EDIR0_ENUM - Class destructor.
  46. PARENT: REPL_EDIR_ENUM
  47. HISTORY:
  48. KeithMo 26-Feb-1992 Created
  49. **************************************************************************/
  50. DLL_CLASS REPL_EDIR0_ENUM : public REPL_EDIR_ENUM
  51. {
  52. public:
  53. REPL_EDIR0_ENUM( const TCHAR * pszServer );
  54. }; // class REPL_EDIR0_ENUM
  55. /*************************************************************************
  56. NAME: REPL_EDIR0_ENUM_OBJ
  57. SYNOPSIS: This is basically the return type from the
  58. REPL_EDIR0_ENUM_ITER iterator.
  59. INTERFACE: REPL_EDIR0_ENUM_OBJ - Class constructor.
  60. ~REPL_EDIR0_ENUM_OBJ - Class destructor.
  61. QueryBufferPtr - Replaces ENUM_OBJ_BASE method.
  62. QueryDirName - Returns the directory name.
  63. PARENT: ENUM_OBJ_BASE
  64. HISTORY:
  65. KeithMo 26-Feb-1992 Created
  66. **************************************************************************/
  67. DLL_CLASS REPL_EDIR0_ENUM_OBJ : public ENUM_OBJ_BASE
  68. {
  69. public:
  70. //
  71. // Provide properly-casted buffer Query/Set methods.
  72. //
  73. const REPL_EDIR_INFO_0 * QueryBufferPtr( VOID ) const
  74. { return (const REPL_EDIR_INFO_0 *)ENUM_OBJ_BASE::QueryBufferPtr(); }
  75. VOID SetBufferPtr( const REPL_EDIR_INFO_0 * pBuffer )
  76. { ENUM_OBJ_BASE::SetBufferPtr( (const BYTE *)pBuffer ); }
  77. //
  78. // Accessors.
  79. //
  80. DECLARE_ENUM_ACCESSOR( QueryDirName, const TCHAR *, rped0_dirname );
  81. }; // class REPL_EDIR0_ENUM_OBJ
  82. DECLARE_LM_ENUM_ITER_OF( REPL_EDIR0, REPL_EDIR_INFO_0 );
  83. /*************************************************************************
  84. NAME: REPL_EDIR1_ENUM
  85. SYNOPSIS: Info level 1 replicator export directory enumerator.
  86. INTERFACE: REPL_EDIR1_ENUM - Class constructor.
  87. ~REPL_EDIR1_ENUM - Class destructor.
  88. PARENT: REPL_EDIR_ENUM
  89. HISTORY:
  90. KeithMo 26-Feb-1992 Created
  91. **************************************************************************/
  92. DLL_CLASS REPL_EDIR1_ENUM : public REPL_EDIR_ENUM
  93. {
  94. public:
  95. REPL_EDIR1_ENUM( const TCHAR * pszServer );
  96. }; // class REPL_EDIR1_ENUM
  97. /*************************************************************************
  98. NAME: REPL_EDIR1_ENUM_OBJ
  99. SYNOPSIS: This is basically the return type from the
  100. REPL_EDIR1_ENUM_ITER iterator.
  101. INTERFACE: REPL_EDIR1_ENUM_OBJ - Class constructor.
  102. ~REPL_EDIR1_ENUM_OBJ - Class destructor.
  103. QueryBufferPtr - Replaces ENUM_OBJ_BASE method.
  104. QueryDirName - Returns the directory name.
  105. QueryIntegrity - Returns the directory integrity.
  106. QueryExtent - Returns the directory extent.
  107. PARENT: ENUM_OBJ_BASE
  108. HISTORY:
  109. KeithMo 26-Feb-1992 Created
  110. **************************************************************************/
  111. DLL_CLASS REPL_EDIR1_ENUM_OBJ : public ENUM_OBJ_BASE
  112. {
  113. public:
  114. //
  115. // Provide properly-casted buffer Query/Set methods.
  116. //
  117. const REPL_EDIR_INFO_1 * QueryBufferPtr( VOID ) const
  118. { return (const REPL_EDIR_INFO_1 *)ENUM_OBJ_BASE::QueryBufferPtr(); }
  119. VOID SetBufferPtr( const REPL_EDIR_INFO_1 * pBuffer )
  120. { ENUM_OBJ_BASE::SetBufferPtr( (const BYTE *)pBuffer ); }
  121. //
  122. // Accessors.
  123. //
  124. DECLARE_ENUM_ACCESSOR( QueryDirName, const TCHAR *, rped1_dirname );
  125. DECLARE_ENUM_ACCESSOR( QueryIntegrity, ULONG, rped1_integrity );
  126. DECLARE_ENUM_ACCESSOR( QueryExtent, ULONG, rped1_extent );
  127. }; // class REPL_EDIR1_ENUM_OBJ
  128. DECLARE_LM_ENUM_ITER_OF( REPL_EDIR1, REPL_EDIR_INFO_1 );
  129. /*************************************************************************
  130. NAME: REPL_EDIR2_ENUM
  131. SYNOPSIS: Info level 2 replicator export directory enumerator.
  132. INTERFACE: REPL_EDIR2_ENUM - Class constructor.
  133. ~REPL_EDIR2_ENUM - Class destructor.
  134. PARENT: REPL_EDIR_ENUM
  135. HISTORY:
  136. KeithMo 26-Feb-1992 Created
  137. **************************************************************************/
  138. DLL_CLASS REPL_EDIR2_ENUM : public REPL_EDIR_ENUM
  139. {
  140. public:
  141. REPL_EDIR2_ENUM( const TCHAR * pszServer );
  142. }; // class REPL_EDIR2_ENUM
  143. /*************************************************************************
  144. NAME: REPL_EDIR2_ENUM_OBJ
  145. SYNOPSIS: This is basically the return type from the
  146. REPL_EDIR2_ENUM_ITER iterator.
  147. INTERFACE: REPL_EDIR2_ENUM_OBJ - Class constructor.
  148. ~REPL_EDIR2_ENUM_OBJ - Class destructor.
  149. QueryBufferPtr - Replaces ENUM_OBJ_BASE method.
  150. QueryDirName - Returns the directory name.
  151. QueryIntegrity - Returns the directory integrity.
  152. QueryExtent - Returns the directory extent.
  153. QueryLockCount - Returns the directory lock count.
  154. QueryLockTime - Returns the directory lock time.
  155. PARENT: ENUM_OBJ_BASE
  156. HISTORY:
  157. KeithMo 26-Feb-1992 Created
  158. **************************************************************************/
  159. DLL_CLASS REPL_EDIR2_ENUM_OBJ : public ENUM_OBJ_BASE
  160. {
  161. public:
  162. //
  163. // Provide properly-casted buffer Query/Set methods.
  164. //
  165. const REPL_EDIR_INFO_2 * QueryBufferPtr( VOID ) const
  166. { return (const REPL_EDIR_INFO_2 *)ENUM_OBJ_BASE::QueryBufferPtr(); }
  167. VOID SetBufferPtr( const REPL_EDIR_INFO_2 * pBuffer )
  168. { ENUM_OBJ_BASE::SetBufferPtr( (const BYTE *)pBuffer ); }
  169. //
  170. // Accessors.
  171. //
  172. DECLARE_ENUM_ACCESSOR( QueryDirName, const TCHAR *, rped2_dirname );
  173. DECLARE_ENUM_ACCESSOR( QueryIntegrity, ULONG, rped2_integrity );
  174. DECLARE_ENUM_ACCESSOR( QueryExtent, ULONG, rped2_extent );
  175. DECLARE_ENUM_ACCESSOR( QueryLockCount, ULONG, rped2_lockcount );
  176. DECLARE_ENUM_ACCESSOR( QueryLockTime, ULONG, rped2_locktime );
  177. }; // class REPL_EDIR2_ENUM_OBJ
  178. DECLARE_LM_ENUM_ITER_OF( REPL_EDIR2, REPL_EDIR_INFO_2 );
  179. //
  180. // Import directory enumerators.
  181. //
  182. /*************************************************************************
  183. NAME: REPL_IDIR_ENUM
  184. SYNOPSIS: Base class for replicator export directory enumerations.
  185. INTERFACE: REPL_IDIR_ENUM - Class constructor.
  186. ~REPL_IDIR__ENUM - Class destructor.
  187. CallAPI - Invoke the enumeration API.
  188. PARENT: LOC_LM_ENUM
  189. USES: NLS_STR
  190. HISTORY:
  191. KeithMo 26-Feb-1992 Created
  192. **************************************************************************/
  193. DLL_CLASS REPL_IDIR_ENUM : public LOC_LM_ENUM
  194. {
  195. private:
  196. virtual APIERR CallAPI( BYTE ** ppbBuffer,
  197. UINT * pcEntriesRead );
  198. protected:
  199. REPL_IDIR_ENUM( const TCHAR * pszServer,
  200. UINT Level );
  201. }; // class REPL_IDIR_ENUM
  202. /*************************************************************************
  203. NAME: REPL_IDIR0_ENUM
  204. SYNOPSIS: Info level 0 replicator export directory enumerator.
  205. INTERFACE: REPL_IDIR0_ENUM - Class constructor.
  206. ~REPL_IDIR0_ENUM - Class destructor.
  207. PARENT: REPL_IDIR_ENUM
  208. HISTORY:
  209. KeithMo 26-Feb-1992 Created
  210. **************************************************************************/
  211. DLL_CLASS REPL_IDIR0_ENUM : public REPL_IDIR_ENUM
  212. {
  213. public:
  214. REPL_IDIR0_ENUM( const TCHAR * pszServer );
  215. }; // class REPL_IDIR0_ENUM
  216. /*************************************************************************
  217. NAME: REPL_IDIR0_ENUM_OBJ
  218. SYNOPSIS: This is basically the return type from the
  219. REPL_IDIR0_ENUM_ITER iterator.
  220. INTERFACE: REPL_IDIR0_ENUM_OBJ - Class constructor.
  221. ~REPL_IDIR0_ENUM_OBJ - Class destructor.
  222. QueryBufferPtr - Replaces ENUM_OBJ_BASE method.
  223. QueryDirName - Returns the directory name.
  224. PARENT: ENUM_OBJ_BASE
  225. HISTORY:
  226. KeithMo 26-Feb-1992 Created
  227. **************************************************************************/
  228. DLL_CLASS REPL_IDIR0_ENUM_OBJ : public ENUM_OBJ_BASE
  229. {
  230. public:
  231. //
  232. // Provide properly-casted buffer Query/Set methods.
  233. //
  234. const REPL_IDIR_INFO_0 * QueryBufferPtr( VOID ) const
  235. { return (const REPL_IDIR_INFO_0 *)ENUM_OBJ_BASE::QueryBufferPtr(); }
  236. VOID SetBufferPtr( const REPL_IDIR_INFO_0 * pBuffer )
  237. { ENUM_OBJ_BASE::SetBufferPtr( (const BYTE *)pBuffer ); }
  238. //
  239. // Accessors.
  240. //
  241. DECLARE_ENUM_ACCESSOR( QueryDirName, const TCHAR *, rpid0_dirname );
  242. }; // class REPL_IDIR0_ENUM_OBJ
  243. DECLARE_LM_ENUM_ITER_OF( REPL_IDIR0, REPL_IDIR_INFO_0 );
  244. /*************************************************************************
  245. NAME: REPL_IDIR1_ENUM
  246. SYNOPSIS: Info level 1 replicator export directory enumerator.
  247. INTERFACE: REPL_IDIR1_ENUM - Class constructor.
  248. ~REPL_IDIR1_ENUM - Class destructor.
  249. PARENT: REPL_IDIR_ENUM
  250. HISTORY:
  251. KeithMo 26-Feb-1992 Created
  252. **************************************************************************/
  253. DLL_CLASS REPL_IDIR1_ENUM : public REPL_IDIR_ENUM
  254. {
  255. public:
  256. REPL_IDIR1_ENUM( const TCHAR * pszServer );
  257. }; // class REPL_IDIR1_ENUM
  258. /*************************************************************************
  259. NAME: REPL_IDIR1_ENUM_OBJ
  260. SYNOPSIS: This is basically the return type from the
  261. REPL_IDIR1_ENUM_ITER iterator.
  262. INTERFACE: REPL_IDIR1_ENUM_OBJ - Class constructor.
  263. ~REPL_IDIR1_ENUM_OBJ - Class destructor.
  264. QueryBufferPtr - Replaces ENUM_OBJ_BASE method.
  265. QueryDirName - Returns the directory name.
  266. QueryState - Returns the directory state.
  267. QueryMasterName - Returns the directory master name.
  268. QueryLastUpdateTime - Returns the time of the last update.
  269. QueryLockCount - Returns the lock count.
  270. QueryLockTime - Returns the lock time.
  271. PARENT: ENUM_OBJ_BASE
  272. HISTORY:
  273. KeithMo 26-Feb-1992 Created
  274. **************************************************************************/
  275. DLL_CLASS REPL_IDIR1_ENUM_OBJ : public ENUM_OBJ_BASE
  276. {
  277. public:
  278. //
  279. // Provide properly-casted buffer Query/Set methods.
  280. //
  281. const REPL_IDIR_INFO_1 * QueryBufferPtr( VOID ) const
  282. { return (const REPL_IDIR_INFO_1 *)ENUM_OBJ_BASE::QueryBufferPtr(); }
  283. VOID SetBufferPtr( const REPL_IDIR_INFO_1 * pBuffer )
  284. { ENUM_OBJ_BASE::SetBufferPtr( (const BYTE *)pBuffer ); }
  285. //
  286. // Accessors.
  287. //
  288. DECLARE_ENUM_ACCESSOR( QueryDirName, const TCHAR *, rpid1_dirname );
  289. DECLARE_ENUM_ACCESSOR( QueryState, ULONG, rpid1_state );
  290. DECLARE_ENUM_ACCESSOR( QueryMasterName, const TCHAR *, rpid1_mastername );
  291. DECLARE_ENUM_ACCESSOR( QueryLastUpdateTime, ULONG, rpid1_last_update_time );
  292. DECLARE_ENUM_ACCESSOR( QueryLockCount, ULONG, rpid1_lockcount );
  293. DECLARE_ENUM_ACCESSOR( QueryLockTime, ULONG, rpid1_locktime );
  294. }; // class REPL_IDIR1_ENUM_OBJ
  295. DECLARE_LM_ENUM_ITER_OF( REPL_IDIR1, REPL_IDIR_INFO_1 );
  296. #endif // _LMOEREPL_HXX_