(file) Return to DirWindows.cpp CVS log (file) (dir) Up to [Pegasus] / pegasus / src / Pegasus / Common

 1 karl  1.11 //%2003////////////////////////////////////////////////////////////////////////
 2 mike  1.7  //
 3 karl  1.11 // Copyright (c) 2000, 2001, 2002  BMC Software, Hewlett-Packard Development
 4            // Company, L. P., IBM Corp., The Open Group, Tivoli Systems.
 5            // Copyright (c) 2003 BMC Software; Hewlett-Packard Development Company, L. P.;
 6            // IBM Corp.; EMC Corporation, The Open Group.
 7 mike  1.7  //
 8            // Permission is hereby granted, free of charge, to any person obtaining a copy
 9 kumpf 1.8  // of this software and associated documentation files (the "Software"), to
10            // deal in the Software without restriction, including without limitation the
11            // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
12 mike  1.7  // sell copies of the Software, and to permit persons to whom the Software is
13            // furnished to do so, subject to the following conditions:
14            // 
15 kumpf 1.8  // THE ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN
16 mike  1.7  // ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. THE SOFTWARE IS PROVIDED
17            // "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
18 kumpf 1.8  // LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
19            // PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
20            // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
21 mike  1.7  // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22            // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23            //
24            //==============================================================================
25            //
26            // Author: Mike Brasher (mbrasher@bmc.com)
27            //
28 a.arora 1.13 // Modified By: Amit K Arora, IBM (amita@in.ibm.com)
29 mike    1.7  //
30              //%/////////////////////////////////////////////////////////////////////////////
31              
32              #include "Dir.h"
33 kumpf   1.9  #include "InternalException.h"
34 mike    1.7  
35              PEGASUS_NAMESPACE_BEGIN
36              
37              #include <io.h>
38              #include <direct.h>
39              
40              struct DirRep
41              {
42                  long file;
43                  struct _finddata_t findData;
44              };
45              
46 a.arora 1.13 Dir::Dir(const String& path) :
47                     _rep(new DirRep)
48 mike    1.7  {
49 kumpf   1.10     _rep->file = _findfirst((path+"/*").getCString(), &_rep->findData);
50 mike    1.7  
51                  if (_rep->file == -1)
52                  {
53              	_more = false;
54 a.arora 1.13         //delete _rep; 
55                      _rep.reset();
56 mike    1.7  	throw CannotOpenDirectory(path);
57                  }
58                  else
59              	_more = true;
60              }
61              
62              Dir::~Dir()
63              {
64                  if (_rep->file != -1)
65              	_findclose(_rep->file);
66              
67 a.arora 1.13    
68                  _rep.reset();
69 mike    1.7  }
70              
71              const char* Dir::getName() const
72              {
73                  return _rep->findData.name;
74              }
75              
76              void Dir::next()
77              {
78                  if (!_more)
79              	return;
80              
81                  _more = _findnext(_rep->file, &_rep->findData) == 0;
82              }
83              
84              PEGASUS_NAMESPACE_END

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2