MrSID Decode SDK for LiDAR Reference Manual
1.1.3.4427
|
00001 /* ////////////////////////////////////////////////////////////////////////// 00002 // // 00003 // This code is Copyright (c) 2008-2010 LizardTech, Inc, 1008 Western // 00004 // Avenue, Suite 200, Seattle, WA 98104. Unauthorized use or distribution // 00005 // prohibited. Access to and use of this code is permitted only under // 00006 // license from LizardTech, Inc. Portions of the code are protected by // 00007 // US and foreign patents and other filings. All Rights Reserved. // 00008 // // 00010 /* PUBLIC */ 00011 00012 #ifndef __LIDAR_IO_H__ 00013 #define __LIDAR_IO_H__ 00014 00015 #include "lidar/Object.h" 00016 00017 LT_BEGIN_LIDAR_NAMESPACE 00018 00029 class IO : public Object 00030 { 00031 ABSTRACT_OBJECT(IO); 00032 public: 00036 typedef lt_int64 offset_type; 00037 00059 virtual void open(void) = 0; 00081 virtual void close(void) = 0; 00082 00093 virtual size_t pread(offset_type offset, 00094 void *buffer, 00095 size_t nbytes) const = 0; 00106 virtual size_t pwrite(offset_type offset, 00107 const void *buffer, 00108 size_t nbytes) const = 0; 00109 00115 virtual offset_type size(void) const = 0; 00116 00126 virtual void truncate(offset_type length) = 0; 00127 00133 virtual void unlink(void) = 0; 00134 00135 00140 struct Location 00141 { 00142 IO *io; 00143 offset_type offset; 00144 offset_type length; 00145 00146 ~Location(void); 00147 00148 Location(IO *io = NULL, offset_type offset = 0, offset_type length = 0); 00149 Location(const Location &rhs); 00150 Location &operator=(const Location &rhs); 00151 00152 void set(IO *io, offset_type offset, offset_type length); 00153 OVERRIDE_NEW; 00154 }; 00155 }; 00156 00157 LT_END_LIDAR_NAMESPACE 00158 #endif // __LIDAR_IO_H__