/**********************************************************************/ /** Microsoft Windows/NT **/ /** Copyright(c) Microsoft Corporation, 1997 - 1998 **/ /**********************************************************************/ /* DMVumstrm.h DMVum node configuration object. Use this to get/set configuration data. This class will take care of versioning of config formats as well as serializing of the data. FILE HISTORY: */ #ifndef _DMVSTRM_H #define _DMVSTRM_H #ifndef _XSTREAM_H #include "xstream.h" #endif #ifndef _COLUMN_H #include "column.h" #endif #ifndef AFX_DLGSVR_H__19556672_96AB_11D1_8575_00C04FC31FD3__INCLUDED_ #include "rrasqry.h" #endif #ifndef _VECTOR_ #include using namespace std; #endif //forwards class DMVRootHandler; enum { DMVSTRM_STATS_DMVNBR = 0, DMVSTRM_IFSTATS_DMVNBR, DMVSTRM_STATS_COUNT, }; enum DMVSTRM_TAG { DMVSTRM_TAG_VERSION = XFER_TAG(1, XFER_DWORD), DMVSTRM_TAG_VERSIONADMIN = XFER_TAG(2, XFER_DWORD), DMVSTRM_TAG_SIZEQRY = XFER_TAG(3, XFER_DWORD), DMVSTRM_TAG_NUMQRY = XFER_TAG(4, XFER_DWORD), DMVSTRM_TAG_NUMSRV = XFER_TAG(5, XFER_DWORD), DMVSTRM_TAG_CATFLAG = XFER_TAG(6, XFER_DWORD), DMVSTRM_TAG_SCOPE = XFER_TAG(7, XFER_STRING), DMVSTRM_TAG_FILTER = XFER_TAG(8, XFER_STRING), DMVSTRM_TAG_SERVERNAME = XFER_TAG(9, XFER_STRING), DMVSTRM_TAG_IFAUTOREFRESHISON = XFER_TAG(10, XFER_DWORD), DMVSTRM_TAG_AUTOREFRESHINTERVAL = XFER_TAG(11, XFER_DWORD), }; // // This class is the container of persisted domain queries // class RRASQryPersist { friend class DomainStatusHandler; public: RRASQryPersist() { m_dwSizeQry=0; m_dwNumQry=0; m_dwNumSrv=0; } ~RRASQryPersist() { removeAllSrv(); removeAllQry(); } //create dwNum empty queries HRESULT createQry(DWORD dwNum); //create dwNum empty servers HRESULT createSrv(DWORD dwNum); //push query data into container HRESULT add_Qry(const RRASQryData& qd); //push server into container HRESULT add_Srv(const CString& szServer); //remove all servernames HRESULT removeAllSrv(); //remove all queries HRESULT removeAllQry(); private: DWORD m_dwSizeQry; DWORD m_dwNumQry; DWORD m_dwNumSrv; //position [0] is the general (many machine) singleton query. //positions[1] .. n are the specific machine queries. vector m_v_pQData; //persisted server names vector m_v_pSData; friend class DMVRootHandler; friend class DMVConfigStream; }; /*--------------------------------------------------------------------------- Class: DMVConfigStream This holds the configuration information for the IP administration nodes. This does NOT hold the configuration information for the columns. That is stored in the Component Configuration streams. ---------------------------------------------------------------------------*/ class DMVConfigStream : public ConfigStream { public: DMVConfigStream(); virtual HRESULT InitNew(); // set defaults virtual HRESULT SaveTo(IStream *pstm); virtual HRESULT SaveAs(UINT nVersion, IStream *pstm); virtual HRESULT LoadFrom(IStream *pstm); virtual HRESULT GetSize(ULONG *pcbSize); // -------------------------------------------------------- // Accessors // -------------------------------------------------------- virtual HRESULT GetVersionInfo(DWORD *pnVersion, DWORD *pnAdminVersion); DWORD m_bAutoRefresh; DWORD m_dwRefreshInterval; //persist the domain view query RRASQryPersist m_RQPersist; void Init(DMVRootHandler* dmvroot, ITFSNode *pNode ) { m_pDMVRootHandler=dmvroot; m_pDMVRootNode=pNode; } private: HRESULT PrepareAutoRefreshDataForSave(); HRESULT XferVersion0(IStream *pstm, XferStream::Mode mode, ULONG *pcbSize); DMVRootHandler* m_pDMVRootHandler; ITFSNode* m_pDMVRootNode; }; class DVComponentConfigStream : public ConfigStream { public: virtual HRESULT XferVersion0(IStream *pstm, XferStream::Mode mode, ULONG *pcbSize); protected: }; #endif _DMVSTRM_H