librcsb-core-wrapper  1.000
CifFileReadDef.h
Go to the documentation of this file.
1 //$$FILE$$
2 //$$VERSION$$
3 //$$DATE$$
4 //$$LICENSE$$
5 
13 /*
14  PURPOSE: Definitions for selective parsing/reading cif file
15 */
16 
17 #ifndef CIFFILEREADDEF_H
18 #define CIFFILEREADDEF_H
19 
20 #include <string>
21 #include <vector>
22 
23 
24 #include <iostream>
25 #include <fstream>
26 #include <stdio.h>
27 #include <string.h>
28 
29 enum type {A, D}; //A-list of accepted categorys/datablocks; D-denied
30 
31 #define INVALID_NUM_CATS -1
32 
39 {
40  private:
41  int _numCatsToRead;
42  int _numReadCats;
43  void SetNumCatsToRead();
44  protected:
45  std::vector<std::string> _datablocklist;
46  std::vector<std::string> _categorylist;
49 
50 
51  public:
52  CifFileReadDef(std::vector<std::string> dblist,std::vector<std::string>clist,type dbtype = A, type ctype = A);
53  CifFileReadDef(){_numCatsToRead = INVALID_NUM_CATS; _numReadCats = 0;};
55 
56  void SetDataBlockList(std::vector<std::string> dblist,type dbtype = A);
57  void SetCategoryList(std::vector<std::string>clist, type ctype = A);
58 
59  void SetDataBlockListType(type dbtype = A) { _datablocklisttype=dbtype;};
61 
62  int AreAllCatsRead();
63  void IncreaseNumReadCats();
64 
65  int Category_OK(const std::string& categoryName);
66  int Datablock_OK(const std::string& datablockName);
67 };
68 #endif