<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <title>CCfits: ExtHDU.h Source File</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="doxygen.css" rel="stylesheet" type="text/css"/> </head> <body> <!-- Generated by Doxygen 1.6.1 --> <div class="navigation" id="top"> <div class="tabs"> <ul> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="namespaces.html"><span>Namespaces</span></a></li> <li><a href="annotated.html"><span>Classes</span></a></li> <li class="current"><a href="files.html"><span>Files</span></a></li> </ul> </div> <div class="tabs"> <ul> <li><a href="files.html"><span>File List</span></a></li> </ul> </div> <h1>ExtHDU.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">// Read the documentation to learn more about C++ code generator</span> <a name="l00002"></a>00002 <span class="comment">// versioning.</span> <a name="l00003"></a>00003 <span class="comment">// This is version 2.2 release dated Sep 2009</span> <a name="l00004"></a>00004 <span class="comment">// Astrophysics Science Division,</span> <a name="l00005"></a>00005 <span class="comment">// NASA/ Goddard Space Flight Center</span> <a name="l00006"></a>00006 <span class="comment">// HEASARC</span> <a name="l00007"></a>00007 <span class="comment">// http://heasarc.gsfc.nasa.gov</span> <a name="l00008"></a>00008 <span class="comment">// e-mail: ccfits@legacy.gsfc.nasa.gov</span> <a name="l00009"></a>00009 <span class="comment">//</span> <a name="l00010"></a>00010 <span class="comment">// Original author: Ben Dorman</span> <a name="l00011"></a>00011 <a name="l00012"></a>00012 <span class="preprocessor">#ifndef EXTHDU_H</span> <a name="l00013"></a>00013 <span class="preprocessor"></span><span class="preprocessor">#define EXTHDU_H 1</span> <a name="l00014"></a>00014 <span class="preprocessor"></span> <a name="l00015"></a>00015 <span class="comment">// CCfitsHeader</span> <a name="l00016"></a>00016 <span class="preprocessor">#include "CCfits.h"</span> <a name="l00017"></a>00017 <span class="comment">// HDU</span> <a name="l00018"></a>00018 <span class="preprocessor">#include "HDU.h"</span> <a name="l00019"></a>00019 <span class="comment">// FitsError</span> <a name="l00020"></a>00020 <span class="preprocessor">#include "FitsError.h"</span> <a name="l00021"></a>00021 <a name="l00022"></a>00022 <span class="keyword">namespace </span>CCfits { <a name="l00023"></a>00023 <span class="keyword">class </span>Column; <a name="l00024"></a>00024 <a name="l00025"></a>00025 } <span class="comment">// namespace CCfits</span> <a name="l00026"></a>00026 <a name="l00027"></a>00027 <a name="l00028"></a>00028 <span class="keyword">namespace </span>CCfits { <a name="l00029"></a>00029 <a name="l00417"></a><a class="code" href="classCCfits_1_1ExtHDU.html">00417</a> <span class="keyword">class </span><a class="code" href="classCCfits_1_1ExtHDU.html" title="base class for all FITS extension HDUs, i.e. Image Extensions and Tables.">ExtHDU</a> : <span class="keyword">public</span> <a class="code" href="classCCfits_1_1HDU.html" title="Base class for all HDU [Header-Data Unit] objects.">HDU</a> <span class="comment">//## Inherits: <unnamed>%38048213E7A8</span> <a name="l00418"></a>00418 { <a name="l00419"></a>00419 <a name="l00420"></a>00420 <span class="keyword">public</span>: <a name="l00421"></a>00421 <a name="l00422"></a>00422 <a name="l00423"></a>00423 <a name="l00424"></a><a class="code" href="classCCfits_1_1ExtHDU_1_1WrongExtensionType.html">00424</a> <span class="keyword">class </span><a class="code" href="classCCfits_1_1ExtHDU_1_1WrongExtensionType.html" title="Exception to be thrown on unmatched extension types.">WrongExtensionType</a> : <span class="keyword">public</span> <a class="code" href="classCCfits_1_1FitsException.html" title="FitsException is the base class for all exceptions thrown by this library.">FitsException</a> <span class="comment">//## Inherits: <unnamed>%39E61E630349</span> <a name="l00425"></a>00425 { <a name="l00426"></a>00426 <span class="keyword">public</span>: <a name="l00427"></a>00427 <a class="code" href="classCCfits_1_1ExtHDU_1_1WrongExtensionType.html#a1c51f9e5196cb93fc2afee6ad95665cd" title="Exception ctor, prefixes the string &quot;Fits Error: wrong extension type&quot;...">WrongExtensionType</a> (<span class="keyword">const</span> String& msg, <span class="keywordtype">bool</span> silent = <span class="keyword">true</span>); <a name="l00428"></a>00428 <a name="l00429"></a>00429 <span class="keyword">protected</span>: <a name="l00430"></a>00430 <span class="keyword">private</span>: <a name="l00431"></a>00431 <span class="keyword">private</span>: <span class="comment">//## implementation</span> <a name="l00432"></a>00432 }; <a name="l00433"></a>00433 <a class="code" href="classCCfits_1_1ExtHDU.html#a58be2cbfe5c11246e8c2269e3ffe69ee" title="copy constructor">ExtHDU</a>(<span class="keyword">const</span> <a class="code" href="classCCfits_1_1ExtHDU.html" title="base class for all FITS extension HDUs, i.e. Image Extensions and Tables.">ExtHDU</a> &right); <a name="l00434"></a>00434 <span class="keyword">virtual</span> <a class="code" href="classCCfits_1_1ExtHDU.html#a99d509bf1374ace30a48508dffad25d5" title="destructor">~ExtHDU</a>(); <a name="l00435"></a>00435 <span class="keyword">friend</span> <span class="keywordtype">bool</span> operator<(<span class="keyword">const</span> <a class="code" href="classCCfits_1_1ExtHDU.html" title="base class for all FITS extension HDUs, i.e. Image Extensions and Tables.">ExtHDU</a> &left,<span class="keyword">const</span> <a class="code" href="classCCfits_1_1ExtHDU.html" title="base class for all FITS extension HDUs, i.e. Image Extensions and Tables.">ExtHDU</a> &right); <a name="l00436"></a>00436 <a name="l00437"></a>00437 <span class="keyword">friend</span> <span class="keywordtype">bool</span> operator>(<span class="keyword">const</span> <a class="code" href="classCCfits_1_1ExtHDU.html" title="base class for all FITS extension HDUs, i.e. Image Extensions and Tables.">ExtHDU</a> &left,<span class="keyword">const</span> <a class="code" href="classCCfits_1_1ExtHDU.html" title="base class for all FITS extension HDUs, i.e. Image Extensions and Tables.">ExtHDU</a> &right); <a name="l00438"></a>00438 <a name="l00439"></a>00439 <span class="keyword">friend</span> <span class="keywordtype">bool</span> operator<=(<span class="keyword">const</span> <a class="code" href="classCCfits_1_1ExtHDU.html" title="base class for all FITS extension HDUs, i.e. Image Extensions and Tables.">ExtHDU</a> &left,<span class="keyword">const</span> <a class="code" href="classCCfits_1_1ExtHDU.html" title="base class for all FITS extension HDUs, i.e. Image Extensions and Tables.">ExtHDU</a> &right); <a name="l00440"></a>00440 <a name="l00441"></a>00441 <span class="keyword">friend</span> <span class="keywordtype">bool</span> operator>=(<span class="keyword">const</span> <a class="code" href="classCCfits_1_1ExtHDU.html" title="base class for all FITS extension HDUs, i.e. Image Extensions and Tables.">ExtHDU</a> &left,<span class="keyword">const</span> <a class="code" href="classCCfits_1_1ExtHDU.html" title="base class for all FITS extension HDUs, i.e. Image Extensions and Tables.">ExtHDU</a> &right); <a name="l00442"></a>00442 <a name="l00443"></a>00443 <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classCCfits_1_1ExtHDU.html#a921ed3185671c8647e844d4a60e9296f" title="read extension name.">readHduName</a> (<span class="keyword">const</span> fitsfile* fptr, <span class="keywordtype">int</span> hduIndex, String& hduName, <span class="keywordtype">int</span>& hduVersion); <a name="l00444"></a>00444 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classCCfits_1_1ExtHDU.html#a166d6a339f64d7d8d4715d33ea75195b" title="read data from HDU depending on readFlag and keys.">readData</a> (<span class="keywordtype">bool</span> readFlag = <span class="keyword">false</span>, <span class="keyword">const</span> std::vector<String>& keys = std::vector<String>()) = 0; <a name="l00445"></a>00445 <span class="keyword">const</span> String& <a class="code" href="classCCfits_1_1ExtHDU.html#af1128c49f0381473feff2cd9e5650dce" title="return the name of the extension.">name</a> () <span class="keyword">const</span>; <a name="l00446"></a>00446 <span class="keyword">virtual</span> <a class="code" href="classCCfits_1_1HDU.html" title="Base class for all HDU [Header-Data Unit] objects.">HDU</a> * <a class="code" href="classCCfits_1_1ExtHDU.html#ada85c7b4b9b38f6e410db8794779ed60" title="virtual copy constructor">clone</a> (FITSBase* p) <span class="keyword">const</span> = 0; <a name="l00447"></a>00447 <span class="comment">// By all means necessary, set the fitsfile pointer so that</span> <a name="l00448"></a>00448 <span class="comment">// this HDU is the current HDU.</span> <a name="l00449"></a>00449 <span class="comment">//</span> <a name="l00450"></a>00450 <span class="comment">// This would appear to be a good candidate for the public</span> <a name="l00451"></a>00451 <span class="comment">// interface.</span> <a name="l00452"></a>00452 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classCCfits_1_1ExtHDU.html#a16730a075858cd50bfa3daad60c0a1c0" title="move the fitsfile pointer to this current HDU.">makeThisCurrent</a> () <span class="keyword">const</span>; <a name="l00453"></a>00453 <span class="keyword">virtual</span> <a class="code" href="classCCfits_1_1Column.html" title="Abstract base class for Column objects.">Column</a>& <a class="code" href="classCCfits_1_1ExtHDU.html#ab121d5ab64abcc0a5df4ca7955bec2e9" title="return a reference to the array containing the columns.">column</a> (<span class="keyword">const</span> String& colName, <span class="keywordtype">bool</span> caseSensitive = <span class="keyword">true</span>) <span class="keyword">const</span>; <a name="l00454"></a>00454 <span class="keyword">virtual</span> <a class="code" href="classCCfits_1_1Column.html" title="Abstract base class for Column objects.">Column</a>& <a class="code" href="classCCfits_1_1ExtHDU.html#ab121d5ab64abcc0a5df4ca7955bec2e9" title="return a reference to the array containing the columns.">column</a> (<span class="keywordtype">int</span> colIndex) <span class="keyword">const</span>; <a name="l00455"></a>00455 <span class="keyword">virtual</span> <span class="keywordtype">long</span> <a class="code" href="classCCfits_1_1ExtHDU.html#ab94cb470d13b5a574728c49589963a36" title="return the number of rows in the extension.">rows</a> () <span class="keyword">const</span>; <a name="l00456"></a>00456 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classCCfits_1_1ExtHDU.html#a1a4ee80da434b132a5b9015e3d939c11" title="add a new column to an existing table HDU.">addColumn</a> (ValueType type, <span class="keyword">const</span> String& columnName, <span class="keywordtype">long</span> repeatWidth, <span class="keyword">const</span> String& colUnit = String(<span class="stringliteral">""</span>), <span class="keywordtype">long</span> decimals = -1, <span class="keywordtype">size_t</span> columnNumber = 0); <a name="l00457"></a>00457 <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classCCfits_1_1ExtHDU.html#aaee3fda1eb075ef4ee7a9178114bd00d" title="delete a column in a Table extension by name.">deleteColumn</a> (<span class="keyword">const</span> String& columnName); <a name="l00458"></a>00458 <span class="keyword">virtual</span> <span class="keywordtype">long</span> <a class="code" href="classCCfits_1_1ExtHDU.html#a5a480387701525f75ea450dac7510f23" title="return the optimal number of rows to read or write at a time">getRowsize</a> () <span class="keyword">const</span>; <a name="l00459"></a>00459 <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="classCCfits_1_1ExtHDU.html#af63318f88dad6665781c9d699324a3a3" title="return the number of Columns in the Table (the TFIELDS keyword).">numCols</a> () <span class="keyword">const</span>; <a name="l00460"></a>00460 <span class="keyword">virtual</span> <span class="keyword">const</span> std::map<string, Column*>& <a class="code" href="classCCfits_1_1ExtHDU.html#ab121d5ab64abcc0a5df4ca7955bec2e9" title="return a reference to the array containing the columns.">column</a> () <span class="keyword">const</span>; <a name="l00461"></a>00461 <span class="keywordtype">int</span> <a class="code" href="classCCfits_1_1ExtHDU.html#a5e2785377c404f05dc948db844c6eec7" title="return the extension version number.">version</a> () <span class="keyword">const</span>; <a name="l00462"></a>00462 <span class="keywordtype">void</span> <a class="code" href="classCCfits_1_1ExtHDU.html#a5e2785377c404f05dc948db844c6eec7" title="return the extension version number.">version</a> (<span class="keywordtype">int</span> value); <a name="l00463"></a>00463 <span class="keyword">static</span> <span class="keyword">const</span> String& missHDU (); <a name="l00464"></a>00464 <span class="keyword">static</span> <span class="keywordtype">void</span> setMissHDU (<span class="keyword">const</span> String& value); <a name="l00465"></a>00465 <a name="l00466"></a>00466 <span class="keyword">public</span>: <a name="l00467"></a>00467 <span class="comment">// Additional Public Declarations</span> <a name="l00468"></a>00468 <a name="l00469"></a>00469 <span class="comment">// interface is virtually identical to PHDU. The implementation is</span> <a name="l00470"></a>00470 <span class="comment">// similar apart from a check for wrong extension type.</span> <a name="l00471"></a>00471 <a name="l00472"></a>00472 <a name="l00473"></a>00473 <a name="l00474"></a>00474 <a name="l00475"></a>00475 <span class="keyword">template</span> <<span class="keyword">typename</span> S> <a name="l00476"></a>00476 <span class="keywordtype">void</span> <a class="code" href="classCCfits_1_1ExtHDU.html#a444e15ad4193a0bef47067c7a3f753d3" title="Write a set of pixels to an image extension with the first pixel specified by an...">write</a>(<span class="keyword">const</span> std::vector<long>& first, <a name="l00477"></a>00477 <span class="keywordtype">long</span> nElements, <a name="l00478"></a>00478 <span class="keyword">const</span> std::valarray<S>& data, <a name="l00479"></a>00479 S* nullValue); <a name="l00480"></a>00480 <a name="l00481"></a>00481 <a name="l00482"></a>00482 <span class="keyword">template</span> <<span class="keyword">typename</span> S> <a name="l00483"></a>00483 <span class="keywordtype">void</span> <a class="code" href="classCCfits_1_1ExtHDU.html#a444e15ad4193a0bef47067c7a3f753d3" title="Write a set of pixels to an image extension with the first pixel specified by an...">write</a>(<span class="keywordtype">long</span> first, <a name="l00484"></a>00484 <span class="keywordtype">long</span> nElements, <a name="l00485"></a>00485 <span class="keyword">const</span> std::valarray<S>& data, <a name="l00486"></a>00486 S* nullValue); <a name="l00487"></a>00487 <a name="l00488"></a>00488 <span class="keyword">template</span> <<span class="keyword">typename</span> S> <a name="l00489"></a>00489 <span class="keywordtype">void</span> <a class="code" href="classCCfits_1_1ExtHDU.html#a444e15ad4193a0bef47067c7a3f753d3" title="Write a set of pixels to an image extension with the first pixel specified by an...">write</a>(<span class="keyword">const</span> std::vector<long>& first, <a name="l00490"></a>00490 <span class="keywordtype">long</span> nElements, <a name="l00491"></a>00491 <span class="keyword">const</span> std::valarray<S>& data); <a name="l00492"></a>00492 <a name="l00493"></a>00493 <a name="l00494"></a>00494 <span class="keyword">template</span> <<span class="keyword">typename</span> S> <a name="l00495"></a>00495 <span class="keywordtype">void</span> <a class="code" href="classCCfits_1_1ExtHDU.html#a444e15ad4193a0bef47067c7a3f753d3" title="Write a set of pixels to an image extension with the first pixel specified by an...">write</a>(<span class="keywordtype">long</span> first, <a name="l00496"></a>00496 <span class="keywordtype">long</span> nElements, <a name="l00497"></a>00497 <span class="keyword">const</span> std::valarray<S>& data); <a name="l00498"></a>00498 <a name="l00499"></a>00499 <span class="keyword">template</span> <<span class="keyword">typename</span> S> <a name="l00500"></a>00500 <span class="keywordtype">void</span> <a class="code" href="classCCfits_1_1ExtHDU.html#a444e15ad4193a0bef47067c7a3f753d3" title="Write a set of pixels to an image extension with the first pixel specified by an...">write</a>(<span class="keyword">const</span> std::vector<long>& firstVertex, <a name="l00501"></a>00501 <span class="keyword">const</span> std::vector<long>& lastVertex, <a name="l00502"></a>00502 <span class="keyword">const</span> std::valarray<S>& data); <a name="l00503"></a>00503 <a name="l00504"></a>00504 <span class="comment">// read image data & return the array. Can't return a reference because type</span> <a name="l00505"></a>00505 <span class="comment">// conversion in general requires allocating a new object.</span> <a name="l00506"></a>00506 <span class="comment">// note semantics of reading column data are easily distinguished: they require</span> <a name="l00507"></a>00507 <span class="comment">// the user to perform the operation EXT.column({name,index}).read(...)</span> <a name="l00508"></a>00508 <a name="l00509"></a>00509 <span class="keyword">template</span> <<span class="keyword">typename</span> S> <a name="l00510"></a>00510 <span class="keywordtype">void</span> <a class="code" href="classCCfits_1_1ExtHDU.html#ae1f8951fae4403f43230b94ae323d8d3" title="Read image data into container.">read</a> (std::valarray<S>& image) ; <a name="l00511"></a>00511 <a name="l00512"></a>00512 <span class="keyword">template</span><<span class="keyword">typename</span> S> <a name="l00513"></a>00513 <span class="keywordtype">void</span> <a class="code" href="classCCfits_1_1ExtHDU.html#ae1f8951fae4403f43230b94ae323d8d3" title="Read image data into container.">read</a> (std::valarray<S>& image, <a name="l00514"></a>00514 <span class="keywordtype">long</span> first, <a name="l00515"></a>00515 <span class="keywordtype">long</span> nElements, <a name="l00516"></a>00516 S* nullValue) ; <a name="l00517"></a>00517 <a name="l00518"></a>00518 <span class="keyword">template</span><<span class="keyword">typename</span> S> <a name="l00519"></a>00519 <span class="keywordtype">void</span> <a class="code" href="classCCfits_1_1ExtHDU.html#ae1f8951fae4403f43230b94ae323d8d3" title="Read image data into container.">read</a> (std::valarray<S>& image, <a name="l00520"></a>00520 <span class="keyword">const</span> std::vector<long>& first, <a name="l00521"></a>00521 <span class="keywordtype">long</span> nElements, <a name="l00522"></a>00522 S* nullValue) ; <a name="l00523"></a>00523 <a name="l00524"></a>00524 <span class="keyword">template</span><<span class="keyword">typename</span> S> <a name="l00525"></a>00525 <span class="keywordtype">void</span> <a class="code" href="classCCfits_1_1ExtHDU.html#ae1f8951fae4403f43230b94ae323d8d3" title="Read image data into container.">read</a> (std::valarray<S>& image, <a name="l00526"></a>00526 <span class="keyword">const</span> std::vector<long>& firstVertex, <a name="l00527"></a>00527 <span class="keyword">const</span> std::vector<long>& lastVertex, <a name="l00528"></a>00528 <span class="keyword">const</span> std::vector<long>& stride) ; <a name="l00529"></a>00529 <a name="l00530"></a>00530 <span class="keyword">template</span><<span class="keyword">typename</span> S> <a name="l00531"></a>00531 <span class="keywordtype">void</span> <a class="code" href="classCCfits_1_1ExtHDU.html#ae1f8951fae4403f43230b94ae323d8d3" title="Read image data into container.">read</a> (std::valarray<S>& image, <a name="l00532"></a>00532 <span class="keywordtype">long</span> first, <a name="l00533"></a>00533 <span class="keywordtype">long</span> nElements) ; <a name="l00534"></a>00534 <a name="l00535"></a>00535 <span class="keyword">template</span><<span class="keyword">typename</span> S> <a name="l00536"></a>00536 <span class="keywordtype">void</span> <a class="code" href="classCCfits_1_1ExtHDU.html#ae1f8951fae4403f43230b94ae323d8d3" title="Read image data into container.">read</a> (std::valarray<S>& image, <a name="l00537"></a>00537 <span class="keyword">const</span> std::vector<long>& first, <a name="l00538"></a>00538 <span class="keywordtype">long</span> nElements) ; <a name="l00539"></a>00539 <a name="l00540"></a>00540 <span class="keyword">template</span><<span class="keyword">typename</span> S> <a name="l00541"></a>00541 <span class="keywordtype">void</span> <a class="code" href="classCCfits_1_1ExtHDU.html#ae1f8951fae4403f43230b94ae323d8d3" title="Read image data into container.">read</a> (std::valarray<S>& image, <a name="l00542"></a>00542 <span class="keyword">const</span> std::vector<long>& firstVertex, <a name="l00543"></a>00543 <span class="keyword">const</span> std::vector<long>& lastVertex, <a name="l00544"></a>00544 <span class="keyword">const</span> std::vector<long>& stride, <a name="l00545"></a>00545 S* nullValue) ; <a name="l00546"></a>00546 <a name="l00547"></a>00547 <span class="keyword">protected</span>: <a name="l00548"></a>00548 <span class="comment">// ExtHDU needs a default constructor. This is it.</span> <a name="l00549"></a>00549 <a class="code" href="classCCfits_1_1ExtHDU.html#a58be2cbfe5c11246e8c2269e3ffe69ee" title="copy constructor">ExtHDU</a> (FITSBase* p, HduType xtype, <span class="keyword">const</span> String &hduName, <span class="keywordtype">int</span> <a class="code" href="classCCfits_1_1ExtHDU.html#a5e2785377c404f05dc948db844c6eec7" title="return the extension version number.">version</a>); <a name="l00550"></a>00550 <span class="comment">// The writing constructor. Forces the user to supply a name</span> <a name="l00551"></a>00551 <span class="comment">// for the HDU</span> <a name="l00552"></a>00552 <a class="code" href="classCCfits_1_1ExtHDU.html#a58be2cbfe5c11246e8c2269e3ffe69ee" title="copy constructor">ExtHDU</a> (FITSBase* p, HduType xtype, <span class="keyword">const</span> String &hduName, <span class="keywordtype">int</span> <a class="code" href="classCCfits_1_1HDU.html#a81a2d5b001c0ae7d0a298942940189d8" title="return the data type keyword.">bitpix</a>, <span class="keywordtype">int</span> naxis, <span class="keyword">const</span> std::vector<long>& <a class="code" href="classCCfits_1_1HDU.html#a18bd99b5d72ace7e7b353102eb80793a" title="return the number of axes in the HDU data section (always 2 for tables).">axes</a>, <span class="keywordtype">int</span> <a class="code" href="classCCfits_1_1ExtHDU.html#a5e2785377c404f05dc948db844c6eec7" title="return the extension version number.">version</a>); <a name="l00553"></a>00553 <span class="comment">// ExtHDU constructor for getting ExtHDUs by number.</span> <a name="l00554"></a>00554 <span class="comment">// Necessary since EXTNAME is a reserved not required</span> <a name="l00555"></a>00555 <span class="comment">// keyword.</span> <a name="l00556"></a>00556 <a class="code" href="classCCfits_1_1ExtHDU.html#a58be2cbfe5c11246e8c2269e3ffe69ee" title="copy constructor">ExtHDU</a> (FITSBase* p, HduType xtype, <span class="keywordtype">int</span> number); <a name="l00557"></a>00557 <a name="l00558"></a>00558 <span class="keyword">virtual</span> std::ostream & put (std::ostream &s) <span class="keyword">const</span> = 0; <a name="l00559"></a>00559 <span class="keyword">virtual</span> <span class="keywordtype">void</span> setColumn (<span class="keyword">const</span> String& colname, <a class="code" href="classCCfits_1_1Column.html" title="Abstract base class for Column objects.">Column</a>* value); <a name="l00560"></a>00560 <span class="keyword">virtual</span> <span class="keywordtype">void</span> checkExtensionType () <span class="keyword">const</span>; <a name="l00561"></a>00561 <span class="keywordtype">int</span> getVersion (); <a name="l00562"></a>00562 <span class="keywordtype">long</span> <a class="code" href="classCCfits_1_1ExtHDU.html#a088cce4e4843ea71af6047355be29c9d" title="return required pcount keyword value">pcount</a> () <span class="keyword">const</span>; <a name="l00563"></a>00563 <span class="keywordtype">void</span> <a class="code" href="classCCfits_1_1ExtHDU.html#a088cce4e4843ea71af6047355be29c9d" title="return required pcount keyword value">pcount</a> (<span class="keywordtype">long</span> value); <a name="l00564"></a>00564 <span class="keywordtype">long</span> <a class="code" href="classCCfits_1_1ExtHDU.html#a010ebcefb99b5855c5347cfa0ce30dec" title="return required gcount keyword value">gcount</a> () <span class="keyword">const</span>; <a name="l00565"></a>00565 <span class="keywordtype">void</span> <a class="code" href="classCCfits_1_1ExtHDU.html#a010ebcefb99b5855c5347cfa0ce30dec" title="return required gcount keyword value">gcount</a> (<span class="keywordtype">long</span> value); <a name="l00566"></a>00566 HduType <a class="code" href="classCCfits_1_1ExtHDU.html#ad3a43454577309abb2ec1ebe97d3375b" title="return the extension type">xtension</a> () <span class="keyword">const</span>; <a name="l00567"></a>00567 <span class="keywordtype">void</span> <a class="code" href="classCCfits_1_1ExtHDU.html#ad3a43454577309abb2ec1ebe97d3375b" title="return the extension type">xtension</a> (HduType value); <a name="l00568"></a>00568 <a name="l00569"></a>00569 <span class="comment">// Additional Protected Declarations</span> <a name="l00570"></a>00570 <a name="l00571"></a>00571 <span class="keyword">private</span>: <a name="l00572"></a>00572 <span class="keyword">virtual</span> <span class="keywordtype">void</span> initRead () = 0; <a name="l00573"></a>00573 <span class="keywordtype">void</span> checkXtension (); <a name="l00574"></a>00574 <a name="l00575"></a>00575 <span class="comment">// Additional Private Declarations</span> <a name="l00576"></a>00576 <a name="l00577"></a>00577 <span class="keyword">private</span>: <span class="comment">//## implementation</span> <a name="l00578"></a>00578 <span class="comment">// Data Members for Class Attributes</span> <a name="l00579"></a>00579 <span class="keywordtype">long</span> m_pcount; <a name="l00580"></a>00580 <span class="keywordtype">long</span> m_gcount; <a name="l00581"></a>00581 <span class="keywordtype">int</span> m_version; <a name="l00582"></a>00582 HduType m_xtension; <a name="l00583"></a>00583 <span class="keyword">static</span> String s_missHDU; <a name="l00584"></a>00584 <a name="l00585"></a>00585 <span class="comment">// Data Members for Associations</span> <a name="l00586"></a>00586 String m_name; <a name="l00587"></a>00587 <a name="l00588"></a>00588 <span class="comment">// Additional Implementation Declarations</span> <a name="l00589"></a>00589 <a name="l00590"></a>00590 }; <a name="l00591"></a>00591 <a name="l00592"></a>00592 <span class="comment">// Class CCfits::ExtHDU::WrongExtensionType </span> <a name="l00593"></a>00593 <a name="l00594"></a>00594 <span class="comment">// Class CCfits::ExtHDU </span> <a name="l00595"></a>00595 <a name="l00596"></a>00596 <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator<(<span class="keyword">const</span> <a class="code" href="classCCfits_1_1ExtHDU.html" title="base class for all FITS extension HDUs, i.e. Image Extensions and Tables.">ExtHDU</a> &left,<span class="keyword">const</span> <a class="code" href="classCCfits_1_1ExtHDU.html" title="base class for all FITS extension HDUs, i.e. Image Extensions and Tables.">ExtHDU</a> &right) <a name="l00597"></a>00597 { <a name="l00598"></a>00598 <span class="keywordflow">if</span> (left.m_name < right.m_name) <span class="keywordflow">return</span> <span class="keyword">true</span>; <a name="l00599"></a>00599 <span class="keywordflow">if</span> (left.m_name > right.m_name) <span class="keywordflow">return</span> <span class="keyword">false</span>; <a name="l00600"></a>00600 <span class="keywordflow">if</span> (left.m_name == right.m_name) <a name="l00601"></a>00601 { <a name="l00602"></a>00602 <span class="keywordflow">if</span> (left.m_version < right.m_version) <span class="keywordflow">return</span> <span class="keyword">true</span>; <a name="l00603"></a>00603 } <a name="l00604"></a>00604 <span class="keywordflow">return</span> <span class="keyword">false</span>; <a name="l00605"></a>00605 } <a name="l00606"></a>00606 <a name="l00607"></a>00607 <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator>(<span class="keyword">const</span> ExtHDU &left,<span class="keyword">const</span> ExtHDU &right) <a name="l00608"></a>00608 { <a name="l00609"></a>00609 <span class="keywordflow">return</span> !operator<=(left,right); <a name="l00610"></a>00610 } <a name="l00611"></a>00611 <a name="l00612"></a>00612 <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator<=(<span class="keyword">const</span> ExtHDU &left,<span class="keyword">const</span> ExtHDU &right) <a name="l00613"></a>00613 { <a name="l00614"></a>00614 <span class="keywordflow">if</span> (left.m_name <= right.m_name) <a name="l00615"></a>00615 { <a name="l00616"></a>00616 <span class="keywordflow">if</span> (left.m_version <= right.m_version) <span class="keywordflow">return</span> <span class="keyword">true</span>; <a name="l00617"></a>00617 } <a name="l00618"></a>00618 <span class="keywordflow">return</span> <span class="keyword">false</span>; <a name="l00619"></a>00619 } <a name="l00620"></a>00620 <a name="l00621"></a>00621 <span class="keyword">inline</span> <span class="keywordtype">bool</span> operator>=(<span class="keyword">const</span> ExtHDU &left,<span class="keyword">const</span> ExtHDU &right) <a name="l00622"></a>00622 { <a name="l00623"></a>00623 <span class="keywordflow">return</span> !operator<(left,right); <a name="l00624"></a>00624 } <a name="l00625"></a>00625 <a name="l00626"></a>00626 <a name="l00627"></a><a class="code" href="classCCfits_1_1ExtHDU.html#af1128c49f0381473feff2cd9e5650dce">00627</a> <span class="keyword">inline</span> <span class="keyword">const</span> String& <a class="code" href="classCCfits_1_1ExtHDU.html#af1128c49f0381473feff2cd9e5650dce" title="return the name of the extension.">ExtHDU::name</a> ()<span class="keyword"> const</span> <a name="l00628"></a>00628 <span class="keyword"> </span>{ <a name="l00629"></a>00629 <a name="l00630"></a>00630 <span class="keywordflow">return</span> m_name; <a name="l00631"></a>00631 } <a name="l00632"></a>00632 <a name="l00633"></a><a class="code" href="classCCfits_1_1ExtHDU.html#a088cce4e4843ea71af6047355be29c9d">00633</a> <span class="keyword">inline</span> <span class="keywordtype">long</span> <a class="code" href="classCCfits_1_1ExtHDU.html#a088cce4e4843ea71af6047355be29c9d" title="return required pcount keyword value">ExtHDU::pcount</a> ()<span class="keyword"> const</span> <a name="l00634"></a>00634 <span class="keyword"> </span>{ <a name="l00635"></a>00635 <span class="keywordflow">return</span> m_pcount; <a name="l00636"></a>00636 } <a name="l00637"></a>00637 <a name="l00638"></a><a class="code" href="classCCfits_1_1ExtHDU.html#a306b179a8566fdb70d54747f9857f089">00638</a> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classCCfits_1_1ExtHDU.html#a088cce4e4843ea71af6047355be29c9d" title="return required pcount keyword value">ExtHDU::pcount</a> (<span class="keywordtype">long</span> value) <a name="l00639"></a>00639 { <a name="l00640"></a>00640 m_pcount = value; <a name="l00641"></a>00641 } <a name="l00642"></a>00642 <a name="l00643"></a><a class="code" href="classCCfits_1_1ExtHDU.html#a010ebcefb99b5855c5347cfa0ce30dec">00643</a> <span class="keyword">inline</span> <span class="keywordtype">long</span> <a class="code" href="classCCfits_1_1ExtHDU.html#a010ebcefb99b5855c5347cfa0ce30dec" title="return required gcount keyword value">ExtHDU::gcount</a> ()<span class="keyword"> const</span> <a name="l00644"></a>00644 <span class="keyword"> </span>{ <a name="l00645"></a>00645 <span class="keywordflow">return</span> m_gcount; <a name="l00646"></a>00646 } <a name="l00647"></a>00647 <a name="l00648"></a><a class="code" href="classCCfits_1_1ExtHDU.html#a7c62fe03c55892e7bb4a126b775c72e6">00648</a> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classCCfits_1_1ExtHDU.html#a010ebcefb99b5855c5347cfa0ce30dec" title="return required gcount keyword value">ExtHDU::gcount</a> (<span class="keywordtype">long</span> value) <a name="l00649"></a>00649 { <a name="l00650"></a>00650 m_gcount = value; <a name="l00651"></a>00651 } <a name="l00652"></a>00652 <a name="l00653"></a><a class="code" href="classCCfits_1_1ExtHDU.html#a5e2785377c404f05dc948db844c6eec7">00653</a> <span class="keyword">inline</span> <span class="keywordtype">int</span> <a class="code" href="classCCfits_1_1ExtHDU.html#a5e2785377c404f05dc948db844c6eec7" title="return the extension version number.">ExtHDU::version</a> ()<span class="keyword"> const</span> <a name="l00654"></a>00654 <span class="keyword"> </span>{ <a name="l00655"></a>00655 <span class="keywordflow">return</span> m_version; <a name="l00656"></a>00656 } <a name="l00657"></a>00657 <a name="l00658"></a><a class="code" href="classCCfits_1_1ExtHDU.html#aa01c75db71c10def95aac15f1ab31c56">00658</a> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classCCfits_1_1ExtHDU.html#a5e2785377c404f05dc948db844c6eec7" title="return the extension version number.">ExtHDU::version</a> (<span class="keywordtype">int</span> value) <a name="l00659"></a>00659 { <a name="l00660"></a>00660 m_version = value; <a name="l00661"></a>00661 } <a name="l00662"></a>00662 <a name="l00663"></a><a class="code" href="classCCfits_1_1ExtHDU.html#ad3a43454577309abb2ec1ebe97d3375b">00663</a> <span class="keyword">inline</span> HduType <a class="code" href="classCCfits_1_1ExtHDU.html#ad3a43454577309abb2ec1ebe97d3375b" title="return the extension type">ExtHDU::xtension</a> ()<span class="keyword"> const</span> <a name="l00664"></a>00664 <span class="keyword"> </span>{ <a name="l00665"></a>00665 <span class="keywordflow">return</span> m_xtension; <a name="l00666"></a>00666 } <a name="l00667"></a>00667 <a name="l00668"></a><a class="code" href="classCCfits_1_1ExtHDU.html#aa3b17f06451c8d1bf07e1e1829749c04">00668</a> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classCCfits_1_1ExtHDU.html#ad3a43454577309abb2ec1ebe97d3375b" title="return the extension type">ExtHDU::xtension</a> (HduType value) <a name="l00669"></a>00669 { <a name="l00670"></a>00670 m_xtension = value; <a name="l00671"></a>00671 } <a name="l00672"></a>00672 <a name="l00673"></a>00673 <span class="keyword">inline</span> <span class="keyword">const</span> String& ExtHDU::missHDU () <a name="l00674"></a>00674 { <a name="l00675"></a>00675 <span class="keywordflow">return</span> s_missHDU; <a name="l00676"></a>00676 } <a name="l00677"></a>00677 <a name="l00678"></a>00678 <span class="keyword">inline</span> <span class="keywordtype">void</span> ExtHDU::setMissHDU (<span class="keyword">const</span> String& value) <a name="l00679"></a>00679 { <a name="l00680"></a>00680 s_missHDU = value; <a name="l00681"></a>00681 } <a name="l00682"></a>00682 <a name="l00683"></a>00683 } <span class="comment">// namespace CCfits</span> <a name="l00684"></a>00684 <a name="l00685"></a>00685 <a name="l00686"></a>00686 <span class="preprocessor">#endif</span> </pre></div></div> <hr size="1"/><address style="text-align: right;"><small>Generated on Wed Sep 9 11:59:40 2009 for CCfits by <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address> </body> </html>