MrSID Decode SDK for LiDAR Reference Manual  1.1.3.4427
IO.h
Go to the documentation of this file.
1 /* //////////////////////////////////////////////////////////////////////////
2 // //
3 // This code is Copyright (c) 2008-2010 LizardTech, Inc, 1008 Western //
4 // Avenue, Suite 200, Seattle, WA 98104. Unauthorized use or distribution //
5 // prohibited. Access to and use of this code is permitted only under //
6 // license from LizardTech, Inc. Portions of the code are protected by //
7 // US and foreign patents and other filings. All Rights Reserved. //
8 // //
10 /* PUBLIC */
11 
12 #ifndef __LIDAR_IO_H__
13 #define __LIDAR_IO_H__
14 
15 #include "lidar/Object.h"
16 
17 LT_BEGIN_LIDAR_NAMESPACE
18 
29 class IO : public Object
30 {
31  ABSTRACT_OBJECT(IO);
32 public:
37 
59  virtual void open(void) = 0;
81  virtual void close(void) = 0;
82 
93  virtual size_t pread(offset_type offset,
94  void *buffer,
95  size_t nbytes) const = 0;
106  virtual size_t pwrite(offset_type offset,
107  const void *buffer,
108  size_t nbytes) const = 0;
109 
115  virtual offset_type size(void) const = 0;
116 
126  virtual void truncate(offset_type length) = 0;
127 
133  virtual void unlink(void) = 0;
134 
135 
140  struct Location
141  {
142  IO *io;
145 
146  ~Location(void);
147 
148  Location(IO *io = NULL, offset_type offset = 0, offset_type length = 0);
149  Location(const Location &rhs);
150  Location &operator=(const Location &rhs);
151 
154  };
155 };
156 
157 LT_END_LIDAR_NAMESPACE
158 #endif // __LIDAR_IO_H__

LizardTech