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 /* ippGetPropCommand class ************************************************ 00011 00012 A GetProp property must have three or four keys. Examples: 00013 GetProp(Tool.GoToPars.Speed()) 00014 GetProp(Tool.GoToPars.Speed.Act()) 00015 00016 If property n has only three keys, keys4[n] should be set to EmptyKey. 00017 00018 In the second constructor, this is assuming: 00019 1. inNumberProps is positive. 00020 2. the incoming arrays of keys (inKeys1, etc.) all have at least 00021 inNumberProps entries. 00022 00023 The setNumberProps method does not increase the size of the keys arrays 00024 so setNumberProps should not be used to increase _numberProps. It is 00025 unlikely that a situation will arise where it is useful to call 00026 setNumberProps. 00027 00028 To make a usable command, either use the second constructor, or call 00029 setNewProps and then make repeated calls to setKey1, setKey2, etc. 00030 00031 The setXXX functions all return 1 if everything is OK and 0 if the 00032 the index n is out of range. 00033 00034 */ 00035 #pragma once 00036 #include "ippdme/Command/ippCommand.h" 00037 #include "ippdme/ippProp.h" 00038 00039 00040 00041 class IPPDME_EXT_CLASS ippGetPropCommand : public ippCommand 00042 { 00043 00044 public: 00045 ippGetPropCommand(unsigned int tgNum); 00046 00047 void addProp(const ippProp&); 00048 const ippProp& getProp(int i) const; 00049 00050 int getNumberProps() const; 00051 00052 virtual ~ippGetPropCommand(); 00053 virtual std::string getCommandString() const; 00054 00055 protected: 00056 ippGetPropCommand( 00057 unsigned int inTagNumber, 00058 tagIdType inTagType, 00059 ippCommandNameType inCommandName 00060 ); 00061 00062 private: 00063 std::vector<ippProp> _props; 00064 // prohibited copy constructor/operator 00065 ippGetPropCommand(const ippGetPropCommand&); 00066 void operator=(const ippGetPropCommand&); 00067 }; 00068 IPP_DECLARE_SMARTPOINTER(ippGetPropCommand);