ftc/include/ftc/IDataChannel.h

00001 // -*- coding: iso-8859-1-unix -*-
00002 #ifndef IDATACHANNEL_V1_04_01_H_
00003 #define IDATACHANNEL_V1_04_01_H_
00004 
00005 #if defined(_MSC_VER) && (_MSC_VER >= 1020)
00006 # pragma once
00007 #endif
00008 
00009 #include <boost/cstdint.hpp>
00010 
00011 namespace tecgraf { namespace ftc { namespace v1_04_01 {
00012 
00013   namespace Operations {
00017     enum Operation
00018     {
00019       no_operations = 0x00
00020       , get_size = 0x01
00021       , set_size = 0x02
00022       , get_position = 0x04
00023       , set_position = 0x08
00024       , read = 0x10
00025       , write = 0x20
00026       , transfer_from = 0x40
00027       , transfer_to = 0x80
00028     };
00029   }
00030 
00031   class Buffer;
00032 
00040   class IDataChannel
00041   {
00042   public:
00046     virtual ~IDataChannel() {}
00047 
00058     virtual uint16_t supportedOperations() const = 0;
00059 
00067     virtual bool isOpen() const = 0 ;
00068 
00080     virtual int64_t remaining() const = 0;
00081 
00090     virtual uint64_t skip(const uint64_t count) = 0;
00091 
00101     virtual uint64_t size() const = 0;
00102 
00112     virtual void size(const uint64_t size) = 0;
00113 
00123     virtual uint64_t position() const = 0;
00124 
00134     virtual void position(const uint64_t position) = 0;
00135 
00146     virtual int64_t read(Buffer& dest) = 0;
00147 
00159     virtual int64_t read(Buffer& dest, const uint64_t remotePosition) = 0;
00160 
00171     virtual int64_t write(Buffer& source) = 0;
00172 
00184     virtual int64_t write(Buffer& source, const uint64_t remotePosition) = 0;
00185 
00198     virtual int64_t transferTo(const uint64_t remotePosition, const uint64_t nbytes, IDataChannel& dest) = 0;
00199 
00212     virtual int64_t transferFrom(IDataChannel& source, const uint64_t remotePosition, const uint64_t nbytes) = 0;
00213   };
00214 
00215 }}}
00216 
00217 #endif
00218 

Gerado em Mon Feb 3 03:15:08 2014 para FTC[C++] por  doxygen 1.4.7