00001 /* 00002 * FileScanOperator.h 00003 * DavisDB 00004 * 00005 * Created by Mingmin Chen on 5/6/10. 00006 * Copyright 2010 UCD. All rights reserved. 00007 * 00008 */ 00009 00010 00011 #ifndef FILESCANOPERATOR_H_ 00012 #define FILESCANOPERATOR_H_ 00013 00014 #include "IQueryOperator.h" 00015 00016 struct Condition; 00017 00021 class FileScanOperator : public IQueryOperator { 00022 public: 00023 FileScanOperator(const char* relation, int nAttributes, 00024 const RelationAttributeInfo attributes[]); 00025 FileScanOperator(); 00026 virtual ~FileScanOperator(); 00027 ReturnCode openExecution(); 00028 ReturnCode closeExecution(); 00029 ReturnCode getNextRecord(Record* record); 00030 int getArity(); 00031 void getSchema(RelationAttributeInfo attributes[]) ; 00032 void printSubtree(int indent); 00033 00034 private: 00035 RelationAttributeInfo* attributes_; 00036 char* relation_; 00037 int nAttributes_; 00038 uint recordSize_; 00039 RecordManager* rm_; 00040 RecordFileHandle* rfh_; 00041 RecordFileScan rfs_; 00042 }; 00043 00044 #endif // FILESCANOPERATOR_H_