00001 // 00002 // DISCLAIMER: 00003 // This software was produced by the National Institute of Standards 00004 // and Technology (NIST), an agency of the U.S. government, and by statute is 00005 // not subject to copyright in the United States. Recipients of this 00006 // software assume all responsibility associated with its operation, 00007 // modification,maintenance, and subsequent redistribution. 00008 // 00009 // See NIST Administration Manual 4.09.07 b and Appendix I. 00010 00011 #pragma once 00012 #include "ippdme/Command/ippCommand.h" 00013 #include "ippdme/Command/ippOnScanReportCommand.h" 00014 #include "ippdme/Response/ippScanResponse.h" 00015 00016 class IPPDME_EXT_CLASS ippOnScanReportBuilder : public ippObject 00017 { 00018 public: 00019 ippOnScanReportBuilder(ippOnScanReportCommandConstPtr report); 00020 00021 00022 void StartPoint(); 00023 void setValue(ippOnScanReportCommand::Key key,double value); 00024 void setValues(ippOnScanReportCommand::Key key,double vI,double vJ,double vK); 00025 00026 void Commit(); 00027 00028 bool IsNearlyFull() const; 00029 bool IsEmpty() const; 00030 ippScanResponsePtr FlushAndGetResponse(unsigned int tagNumber); 00031 00032 private: 00033 ippOnScanReportCommandConstPtr _OnScanReportCmd; 00034 std::vector<double> _values; 00035 int _baseIndex; 00036 static int _max_number_of_values; 00037 friend class ippOnScanReportBuilderTestCase; 00038 00039 }; 00040 IPP_DECLARE_SMARTPOINTER(ippOnScanReportBuilder);