1 // SSItemInfoObject.h: interface for the SSItems class.
3 //////////////////////////////////////////////////////////////////////
5 #if !defined(AFX_SSITEMS_H__716758E6_2B77_471C_B08A_424412E9B758__INCLUDED_)
6 #define AFX_SSITEMS_H__716758E6_2B77_471C_B08A_424412E9B758__INCLUDED_
10 #endif // _MSC_VER > 1000
13 #include "SSVersionObject.h"
15 //------------------------------------------------------------------------------
16 class SSItemInfoObject
: public SSObject
19 SSItemInfoObject (SSRecordPtr pRecord
);
23 static SSItemInfoObject
* MakeItemInfo (SSRecordPtr pRecord
);
25 // const char* GetSpec () { return NULL; /* return m_InfoItem.spec; */ }
26 // const char* GetLocalSpec () { return NULL; /* return m_InfoItem.spec; */ }
27 // const char* GetName () { return NULL; /* return m_InfoItem.spec; */ }
28 // SSItemInfoObject* GetParent () { return NULL; }
31 // BOOST_PP_SEQ_FOR_EACH (DEFINE_ACCESSORS, GetData(), DH_SEQ);
32 short GetType () const { return GetData()->type
; }
33 short GetNumberOfActions () const { return GetData()->numberOfActions
; }
34 SSName
GetSSName () const { return GetData()->name
; }
35 std::string
GetLatestExt () const { return std::string (GetData()->latestExt
, 2); }
36 ulong
GetHistoryOffsetBegin () const { return GetData()->historyOffsetBegin
; }
37 ulong
GetHistoryOffsetLast () const { return GetData()->historyOffsetLast
; }
38 ulong
GetHistoryOffsetEnd () const { return GetData()->historyOffsetEnd
; }
40 // return the last known name of the item
41 std::string
GetName () const { SSName
name (GetSSName ()); return name
.GetFullName(); }
43 SSVersionObject
GetHistoryLast () const { return SSVersionObject (GetFile ()->GetRecord (GetHistoryOffsetLast())); }
44 std::string
GetDataFileName () const;
46 // bool GetDeleted () { return 0; }
47 // bool GetCheckedOut () { return 0; }
48 // bool GetDifferent () { return 0; }
49 // bool GetBinary () { return false; }
50 // int GetVersionNumber () { return 0; }
52 // SSItems* GetItems ();
53 // SSItems* GetCheckouts ();
54 // SSItem* GetVersion (__time32_t date) { return NULL; }
55 // SSItem* GetVersion (int v) { return NULL; }
56 // SSItems* GetVersions () { return NULL; }
58 bool Get (int version
, const char* dest
);
59 SSVersionObject
GetVersion (int i
);
61 virtual void Accept (ISSObjectVisitor
& rVisitor
, const ISSContext
* pCtx
= NULL
) const { rVisitor
.Apply (*this, pCtx
); }
62 virtual bool Validate ();
64 const DH
* GetData () const { return reinterpret_cast <const DH
*> (SSObject::GetData ()); }
66 void ToXml (XMLNode
* pParent
) const;
67 void Dump (std::ostream
& os
) const;
70 // pointer to data for debugging convinience
71 const DH
* m_pInfoItem
;
75 class SSProjectItem
: public SSItemInfoObject
78 SSProjectItem (SSRecordPtr pRecord
);
81 std::string
GetParentSpec () const { return GetData()->parentSpec
; }
82 std::string
GetParentPhys () const { return GetData()->parentPhys
; }
83 short GetNumberOfItems () const { return GetData()->numberOfItems
; }
84 short GetNumberOfProjects () const { return GetData()->numberOfProjects
; }
86 virtual void Accept (ISSObjectVisitor
& rVisitor
, const ISSContext
* pCtx
= NULL
) const { rVisitor
.Apply (*this, pCtx
); }
88 const DH_PROJECT
* GetData () const { return reinterpret_cast <const DH_PROJECT
*> (SSObject::GetData ()); }
90 void ToXml (XMLNode
* pParent
) const;
91 void Dump (std::ostream
& os
) const;
94 // pointer to data for debugging convinience
95 const DH_PROJECT
* m_pProjectInfo
;
99 class SSFileItem
: public SSItemInfoObject
102 SSFileItem (SSRecordPtr pRecord
);
105 short GetFlag () const { return GetData ()->flag
; }
106 std::string
GetShareSrcPhys () const { return GetData ()->shareSrcSpec
; }
107 ulong
GetOffsetBFRecord () const { return GetData ()->offsetBFRecord
; }
108 ulong
GetOffsetPFRecord () const { return GetData ()->offsetPFRecord
; }
109 short GetNumberOfBranches () const { return GetData ()->numberOfBranches
; }
110 short GetNumberOfReferences () const { return GetData ()->numberOfReferences
; }
111 ulong
GetOffsetCFRecord1() const { return GetData ()->offsetCFRecord1
; }
112 ulong
GetOffsetCFRecord2() const { return GetData ()->offsetCFRecord2
; }
113 // short GetNumberOfItems() const { return GetData ()->numberOfItems; }
114 // short GetNumberOfProjects() const { return GetData ()->numberOfProjects; }
116 // specialized accessors
117 eFileType
GetFileType () const;
118 bool GetStoreOnlyLatestRev () const;
119 bool GetLocked () const;
120 bool GetCheckedOut () const;
121 bool GetShared () const;
123 SSParentFolderObject
* GetFirstParentFolder ();
124 SSBranchFileObject
* GetFirstBranchFile ();
126 virtual void Accept (ISSObjectVisitor
& rVisitor
, const ISSContext
* pCtx
= NULL
) const { rVisitor
.Apply (*this, pCtx
); }
127 virtual bool Validate ();
129 const DH_FILE
* GetData () const { return reinterpret_cast <const DH_FILE
*> (SSObject::GetData ()); }
131 void ToXml (XMLNode
* pParent
) const;
132 void Dump (std::ostream
& os
) const;
135 // pointer to data for debugging convinience
136 const DH_FILE
* m_pFileInfo
;
139 #endif // !defined(AFX_SSITEMS_H__716758E6_2B77_471C_B08A_424412E9B758__INCLUDED_)