BALL  1.4.1
PDBRecords.h
Go to the documentation of this file.
00001 // -*- Mode: C++; tab-width: 2; -*-
00002 // vi: set ts=2:
00003 //
00004 
00005 #ifndef BALL_FORMAT_PDBRECORDS_H
00006 #define BALL_FORMAT_PDBRECORDS_H
00007 
00008 #include <vector>
00009 #include <stdexcept>
00010 
00011 #ifndef BALL_DATATYPE_HASHMAP_H
00012 # include <BALL/DATATYPE/hashMap.h>
00013 #endif
00014 
00015 #ifndef BALL_CONCEPT_PERSISTENCEMANAGER_H
00016 # include <BALL/CONCEPT/persistenceManager.h>
00017 #endif
00018 
00019 namespace BALL 
00020 {
00021   
00031   class BALL_EXPORT PDBRecords
00032         : public PersistentObject
00033   {
00034     public:
00035     
00036     /* STL compatibility typedefs */
00037     typedef std::vector<String>::iterator Iterator;
00038     typedef std::vector<String>::iterator iterator;
00039     typedef std::vector<String>::const_iterator ConstIterator;
00040     typedef std::vector<String>::const_iterator const_iterator;
00041     typedef std::vector<String>::reverse_iterator ReverseIterator;
00042     typedef std::vector<String>::reverse_iterator reverse_iterator;
00043     typedef std::vector<String>::const_reverse_iterator ConstReverseIterator;
00044     typedef std::vector<String>::const_reverse_iterator const_reverse_iterator;
00045     typedef String value_type;
00046     typedef String ValueType;
00047     typedef String& reference;
00048     typedef String& Reference;
00049     typedef const String& const_reference;
00050     typedef const String& ConstReference;
00051     typedef std::vector<String>::difference_type difference_type;
00052     typedef std::vector<String>::difference_type DifferenceType;
00053     typedef std::vector<String>::size_type size_type;
00054     typedef std::vector<String>::size_type SizeType;
00055     
00056     BALL_CREATE(PDBRecords)
00057 
00058     
00060 
00061     PDBRecords() ;
00063     PDBRecords(const PDBRecords& pdbi) ;
00065     virtual ~PDBRecords() ;
00067 
00071 
00072     PDBRecords& operator = (const PDBRecords& rhs);
00074 
00080 
00081     ConstIterator begin() const { return records_.begin(); }
00083     Iterator begin() { return records_.begin(); }
00085     ConstIterator end() const { return records_.end(); }
00087     Iterator end() { return records_.end(); }
00089     ConstReverseIterator rbegin() const { return records_.rbegin(); }
00091     ReverseIterator rbegin() { return records_.rbegin(); }
00093     ConstReverseIterator rend() const { return records_.rend(); }
00095     ReverseIterator rend() { return records_.rend(); }
00097     SizeType size() const { return records_.size(); }
00099     SizeType max_size() const { return records_.max_size(); }
00101     SizeType capacity() const { return records_.capacity(); }
00103     bool empty() const { return records_.empty(); }
00105     void clear() { records_.clear(); }
00107     void resize(SizeType sz, ValueType c = ValueType()) { records_.resize(sz, c); }
00109     Reference front() { return records_.front(); }
00111     ConstReference front() const { return records_.front(); }
00113     Reference back() { return records_.back(); }
00115     ConstReference back() const { return records_.back(); }
00117     void push_back(ConstReference x) { records_.push_back(x); }
00119     void insert(Iterator pos, ConstReference value) { records_.insert(pos, value); }
00121     void insert(Iterator pos, SizeType n, ConstReference value) { records_.insert(pos, n, value); }
00123     void pop_back() { records_.pop_back(); }
00125     Iterator erase(Iterator pos) { return records_.erase(pos); }
00127     Iterator erase(Iterator first, Iterator last) { return records_.erase(first, last); }
00129     bool operator == (const PDBRecords& rhs) const { return records_ == rhs.records_; }
00131     bool operator != (const PDBRecords& rhs) const { return records_ != rhs.records_; }
00133     bool operator < (const PDBRecords& rhs) const { return records_ < rhs.records_; }
00135     bool operator > (const PDBRecords& rhs) const { return records_ > rhs.records_; }
00137     bool operator <= (const PDBRecords& rhs) const { return records_ <= rhs.records_; }
00139     bool operator >= (const PDBRecords& rhs) const { return records_ >= rhs.records_; }
00141     void swap(PDBRecords& rhs) { records_.swap(rhs.records_); }
00143     ConstReference operator [] (SizeType n) const { return records_[n]; }
00145     Reference operator [] (SizeType n) { return records_[n]; }
00149     ConstReference at(SizeType n) const { return records_.at(n); }
00153     Reference at(SizeType n) { return records_.at(n); }
00155 
00159 
00162     //void write(PersistenceManager& pm) const;
00163     void persistentWrite(PersistenceManager& pm, const char* name) const;
00164 
00167     //bool read(PersistenceManager& pm);
00168     void persistentRead(PersistenceManager& pm);
00169 
00171 
00172     protected:
00174     std::vector<String> records_;
00175   };
00176   
00177 } // namespace BALL
00178 
00179 #endif // BALL_FORMAT_PDBRECORDS_H
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines