Changeset 7207
- Timestamp:
- May 25, 2006, 11:01:20 AM (20 years ago)
- File:
-
- 1 edited
-
trunk/doc/pslib/psLibSDRS.tex (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/doc/pslib/psLibSDRS.tex
r7206 r7207 1 %%% $Id: psLibSDRS.tex,v 1.39 4 2006-05-25 20:52:35price Exp $1 %%% $Id: psLibSDRS.tex,v 1.395 2006-05-25 21:01:20 price Exp $ 2 2 \documentclass[panstarrs,spec]{panstarrs} 3 3 … … 1816 1816 // Parse optional command-line arguments 1817 1817 psMetadata *arguments = psMetadataAlloc(); // The arguments, with default values 1818 psMetadataAdd(arguments, PS_LIST_TAIL, "-string", PS_META_STR, "Test string", "SomeString"); 1819 psMetadataAdd(arguments, PS_LIST_TAIL, "-bool", PS_META_BOOL, "Test bool", false); 1820 psMetadataAdd(arguments, PS_LIST_TAIL, "-int", PS_META_S32 | PS_META_DUPLICATE_OK, "Test integer 1", 1); 1821 psMetadataAdd(arguments, PS_LIST_TAIL, "-int", PS_META_S32 | PS_META_DUPLICATE_OK, "Test integer 2", 2); 1822 psMetadataAdd(arguments, PS_LIST_TAIL, "-int", PS_META_S32 | PS_META_DUPLICATE_OK, "Test integer 3", 3); 1823 psMetadataAdd(arguments, PS_LIST_TAIL, "-float", PS_META_F32, "Test float", 1.234567); 1818 psMetadataAdd(arguments, PS_LIST_TAIL, "-string", PS_DATA_STR | PS_META_DUPLICATE_OK, 1819 "Test strings", NULL); // Multiple strings are permitted 1820 psMetadataAdd(arguments, PS_LIST_TAIL, "-bool", PS_TYPE_BOOL, "Test bool", false); 1821 psMetadata *intParams = psMetadataAlloc(); // Parameters for -int 1822 psMetadataAdd(intParams, PS_LIST_TAIL, "int1", PS_TYPE_S32, "Test integer 1", 1); 1823 psMetadataAdd(intParams, PS_LIST_TAIL, "int2", PS_TYPE_S32, "Test integer 2", 2); 1824 psMetadataAdd(intParams, PS_LIST_TAIL, "int3", PS_TYPE_S32, "Test integer 3", 3); 1825 psMetadataAdd(arguments, PS_LIST_TAIL, "-int", PS_DATA_METADATA, "Test integers", intParams); 1826 psFree(intParams); // Drop reference 1827 psMetadataAdd(arguments, PS_LIST_TAIL, "-float", PS_TYPE_F32, "Test float", 1.234567); 1824 1828 if (! psArgumentParse(arguments, &argc, argv) || argc != 3) { 1825 1829 printf("\nName of the program here\n\n"); … … 1833 1837 printf("Success: %s %s\n", inputName, outputName); 1834 1838 1835 psString string = psMetadataLookupStr(NULL, arguments, "-string"); 1839 psMetadataItem *strings = psMetadataLookup(arguments, "-string"); // This is a MULTI 1840 psListIterator *stringsIter = psListIteratorAlloc(strings->data.V, PS_LIST_HEAD, false); 1841 psString string; 1842 while ((string = psListGetAndIncrement(stringsIter))) { 1843 printf("String: %s\n", string); 1844 } 1845 psFree(stringsIter); 1836 1846 float floating = psMetadataLookupF32(NULL, arguments, "-float"); 1837 bool boolean = psMetadataLookupBool(NULL, arguments, "-truth"); 1838 printf("String: %s\n", string); 1847 bool boolean = psMetadataLookupBool(NULL, arguments, "-bool"); 1839 1848 printf("Float: %f\n", floating); 1840 1849 printf("Boolean: %d\n", boolean); 1841 1850 1842 psMetadataItem *intItem = psMetadataLookup(arguments, "-int"); 1843 if (intItem->type == PS_META_MULTI) { 1844 psList *intMulti = intItem->data.V; 1845 psListIterator *intIter = psListIteratorAlloc(intMulti, PS_LIST_HEAD, false); 1846 psMetadataItem *intMultiItem = NULL; 1847 while (intMultiItem = psListGetAndIncrement(intIter)) { 1848 printf("Integer: %d\n", intMultiItem->data.S32); 1849 } 1850 psFree(intIter); 1851 } 1851 psMetadata *ints = psMetadataLookupMD(NULL, arguments, "-int"); 1852 int int1 = psMetadataLookupS32(NULL, ints, "int1"); 1853 int int2 = psMetadataLookupS32(NULL, ints, "int2"); 1854 int int3 = psMetadataLookupS32(NULL, ints, "int3"); 1855 printf("Integer 1: %d\n", int1); 1856 printf("Integer 2: %d\n", int2); 1857 printf("Integer 3: %d\n", int3); 1852 1858 } 1853 1859 \end{verbatim} … … 1861 1867 1862 1868 Optional arguments, with default values: 1863 -string ( SomeString) Test string1869 -string () Test strings 1864 1870 -bool (FALSE) Test bool 1865 1871 -int (1) Test integer 1 … … 1869 1875 \end{verbatim} 1870 1876 1871 and called with: \code{./program -string whatevers-float 9.8765431877 and called with: \code{./program -string foo -string bar -float 9.876543 1872 1878 -int 4 5 6 -bool input output}, then it should produce: 1873 1879 1874 1880 \begin{verbatim} 1875 1881 Success: input output 1876 String: SomeString 1877 Float: 1.234567 1878 Boolean: 0 1879 Integer: 1 1880 Integer: 2 1881 Integer: 3 1882 String: foo 1883 String: bar 1884 Float: 9.876543 1885 Boolean: 1 1886 Integer1: 4 1887 Integer2: 5 1888 Integer3: 6 1882 1889 \end{verbatim} 1883 1890
Note:
See TracChangeset
for help on using the changeset viewer.
