Fixed typo. Was not getting any text after pRecord->GetRecordType() (which was proba...
[vss2svn.git] / ssphys / SSPhysLib / SSItemInfoObject.h
blob20eab149498e42746d71dd9eb8546ac9ee5b9ed8
1 // SSItemInfoObject.h: interface for the SSItems class.
2 //
3 //////////////////////////////////////////////////////////////////////
5 #if !defined(AFX_SSITEMS_H__716758E6_2B77_471C_B08A_424412E9B758__INCLUDED_)
6 #define AFX_SSITEMS_H__716758E6_2B77_471C_B08A_424412E9B758__INCLUDED_
8 #if _MSC_VER > 1000
9 #pragma once
10 #endif // _MSC_VER > 1000
12 #include "SSObject.h"
13 #include "SSVersionObject.h"
15 //------------------------------------------------------------------------------
16 class SSItemInfoObject : public SSObject
18 protected:
19 SSItemInfoObject (SSRecordPtr pRecord);
21 public:
22 ~SSItemInfoObject ();
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; }
30 // accessors
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;
69 private:
70 // pointer to data for debugging convinience
71 const DH* m_pInfoItem;
75 class SSProjectItem : public SSItemInfoObject
77 public:
78 SSProjectItem (SSRecordPtr pRecord);
80 // accessors
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;
93 private:
94 // pointer to data for debugging convinience
95 const DH_PROJECT* m_pProjectInfo;
99 class SSFileItem : public SSItemInfoObject
101 public:
102 SSFileItem (SSRecordPtr pRecord);
104 // accessors
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;
134 private:
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_)