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 00012 /* ippGetPropResponse class ********************************************** 00013 00014 Use this for data from GetProp, GetPropE 00015 00016 The command format for these two commands allows several properties 00017 to be requested or set in a single command. The spec says nothing explicit 00018 about the number of returned property values per message, but shows 00019 two properties in a single response in the GetProp example on page 00020 73. This seems to imply that the number of properties in the response 00021 should be the same as the number in the command. This response allows 00022 multiple properties to be returned. 00023 00024 See documentation of GetPropCommand. 00025 00026 The format of a property differs according to property. To handle this, 00027 ippGetPropResponse contains an array of ippOneProperty's and the ippOneProperty 00028 class has several derived classes. Each derived class knows how to 00029 print itself. 00030 00031 */ 00032 #pragma once 00033 #include "ippdme/Property/ippOneProperty.h" 00034 #include "ippdme/Response/ippResponse.h" 00035 00036 00037 00038 EXPIMP_TEMPLATE template class IPPDME_EXT_CLASS std::allocator<ippOnePropertyPtr>; 00039 EXPIMP_TEMPLATE template class IPPDME_EXT_CLASS std::vector<ippOnePropertyPtr>; 00040 00041 class IPPDME_EXT_CLASS ippGetPropResponse : public ippResponse { 00042 00043 00044 public: 00045 ippGetPropResponse(unsigned int inTagNumber, tagIdType inTagType); 00046 00047 virtual ~ippGetPropResponse(); 00048 00049 void append(const ippOnePropertyPtr& inOneProp); 00050 00051 ippOnePropertyPtr getOneProp(int n) const; 00052 00053 int getNumberProps() const; 00054 00055 virtual std::string getResponseString() const; 00056 00057 private: 00058 std::vector<ippOnePropertyPtr> _oneProps; 00059 00060 ippGetPropResponse(const ippGetPropResponse&); 00061 void operator=(const ippGetPropResponse&); 00062 }; 00063 IPP_DECLARE_SMARTPOINTER(ippGetPropResponse);