Cloned library of VTK-5.0.0 with extra build files for internal package management.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

103 lines
3.0 KiB

/*=========================================================================
Program: Visualization Toolkit
Module: $RCSfile: vtkDirectory.h,v $
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
All rights reserved.
See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
This software is distributed WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notice for more information.
=========================================================================*/
// .NAME vtkDirectory - OS independent class for access to system directories
// .SECTION Description
// vtkDirectory provides a portable way of finding the names of the files
// in a system directory.
// .SECTION Caveats
// vtkDirectory works with windows and unix only.
#ifndef __vtkDirectory_h
#define __vtkDirectory_h
#include "vtkObject.h"
class VTK_COMMON_EXPORT vtkDirectory : public vtkObject
{
public:
// Description:
// Return the class name as a string.
vtkTypeRevisionMacro(vtkDirectory,vtkObject);
// Description:
// Create a new vtkDirectory object.
static vtkDirectory *New();
// Description:
// Print directory to stream.
virtual void PrintSelf(ostream& os, vtkIndent indent);
// Description:
// Open the specified directory and load the names of the files
// in that directory. 0 is returned if the directory can not be
// opened, 1 if it is opened.
int Open(const char* dir);
// Description:
// Return the number of files in the current directory.
int GetNumberOfFiles() { return this->NumberOfFiles; }
// Description:
// Return the file at the given index, the indexing is 0 based
const char* GetFile(int index);
// Description:
// Get the current working directory.
static const char* GetCurrentWorkingDirectory(char* buf, unsigned int len);
// Description:
// Create directory. Needs rework to do all the testing and to work
// on all platforms.
static int MakeDirectory(const char* dir);
#ifdef VTK_WORKAROUND_WINDOWS_MANGLE
# define CreateDirectoryA CreateDirectory
# define CreateDirectoryW CreateDirectory
#endif
// Description:
// @deprecated Replaced by vtkDirectory::MakeDirectory() as of VTK 5.0.
VTK_LEGACY(static int CreateDirectory(const char* dir));
#ifdef VTK_WORKAROUND_WINDOWS_MANGLE
# undef CreateDirectoryW
# undef CreateDirectoryA
//BTX
VTK_LEGACY(static int CreateDirectoryA(const char* dir));
VTK_LEGACY(static int CreateDirectoryW(const char* dir));
//ETX
#endif
protected:
// delete the Files and Path ivars and set
// NumberOfFiles to 0
void CleanUpFilesAndPath();
vtkDirectory();
~vtkDirectory() ;
private:
char* Path; // Path to Open'ed directory
char** Files; // Array of Files
int NumberOfFiles; // Number if files in open directory
static int CreateDirectoryInternal(const char* dir);
private:
vtkDirectory(const vtkDirectory&); // Not implemented.
void operator=(const vtkDirectory&); // Not implemented.
};
#endif