libftc
 Todos Classes Namespaces Arquivos Funções Variáveis Definições de Tipos Enumerações Valores enumerados Definições e Macros
ftc.h
Vá para a documentação deste arquivo.
1 /*
2 ** ftc.h
3 */
4 
5 #ifndef FTC_H_
6 #define FTC_H_
7 
8 #if defined(_WIN32) || defined(WIN32) || defined(_WINNT_VER)
9 #define TEC_WINDOWS
10 #include <winsock2.h>
11 #endif
12 
13 #include <stdio.h>
14 #include "ftc_exception.h"
15 #include "ftc_decl.h"
16 
20 struct ftc
21 {
33 #if !defined(FTC_DOXYGEN)
35 #endif
36  ftc(const char* id, const char id_size, bool writable, const char* host
37  , unsigned short port, const char* accessKey, const char key_size);
38 
42 #if !defined(FTC_DOXYGEN)
44 #endif
45  ~ftc();
46 
52 #if !defined(FTC_DOXYGEN)
54 #endif
55  void open( bool readonly ) ;
56 
62 #if !defined(FTC_DOXYGEN)
64 #endif
65  bool isOpen() ;
66 
70 #if !defined(FTC_DOXYGEN)
72 #endif
73  void close() ;
74 
80 #if !defined(FTC_DOXYGEN)
82 #endif
83  void setPosition( unsigned long long position ) ;
84 
91 #if !defined(FTC_DOXYGEN)
93 #endif
94  void setSize( unsigned long long size );
95 
102 #if !defined(FTC_DOXYGEN)
104 #endif
105  void setReadBufferSize( unsigned long long size );
106 
112 #if !defined(FTC_DOXYGEN)
114 #endif
115  unsigned long long getPosition() ;
116 
122 #if !defined(FTC_DOXYGEN)
124 #endif
125  unsigned long long getSize() const;
126 
132 #if !defined(FTC_DOXYGEN)
134 #endif
135  unsigned long long getReadBufferSize() ;
136 
146 #if !defined(FTC_DOXYGEN)
148 #endif
149  unsigned long long read(char* data, unsigned long long nbytes, unsigned long long position);
150 
160 #if !defined(FTC_DOXYGEN)
162 #endif
163  unsigned long long write(const char* data, unsigned long long nbytes, unsigned long long position);
164 
176 #if !defined(FTC_DOXYGEN)
178 #endif
179  unsigned long long transferTo(unsigned long long position, unsigned long long nbytes, FILE* fd, char* buffer);
180 
181 private:
182  ftc(ftc const&);
183  ftc& operator=(ftc const&);
184 
185  const char* hostname;
186  unsigned short tcp_port;
187  const char* identifier;
188  const char identifier_size;
189 #ifndef TEC_WINDOWS
190  int sock;
191 #else
192  SOCKET sock;
193 #endif
194  bool writable;
195  bool is_open;
196  const char* access_key;
197  const char access_key_size;
198 };
199 
200 
201 #endif
TEC_FTC_DECL bool isOpen()
Indica se o arquivo está aberto.
Definition: ftc.cpp:413
Classe que representa a API de acesso a um arquivo remoto.
Definition: ftc.h:20
TEC_FTC_DECL unsigned long long write(const char *data, unsigned long long nbytes, unsigned long long position)
Escreve uma quantidade de bytes no arquivo.
Definition: ftc.cpp:539
TEC_FTC_DECL unsigned long long getSize() const
Retorna o tamanho atual do arquivo.
Definition: ftc.cpp:467
TEC_FTC_DECL void open(bool readonly)
Abre o arquivo remoto.
Definition: ftc.cpp:323
TEC_FTC_DECL ftc(const char *id, const char id_size, bool writable, const char *host, unsigned short port, const char *accessKey, const char key_size)
Construtor.
Definition: ftc.cpp:309
TEC_FTC_DECL void setPosition(unsigned long long position)
Posiciona o cursor de leitura no arquivo.
Definition: ftc.cpp:418
TEC_FTC_DECL unsigned long long read(char *data, unsigned long long nbytes, unsigned long long position)
Le uma quantidade de bytes a partir de uma dada posição.
Definition: ftc.cpp:474
TEC_FTC_DECL ~ftc()
Destrutor.
Definition: ftc.cpp:391
TEC_FTC_DECL unsigned long long transferTo(unsigned long long position, unsigned long long nbytes, FILE *fd, char *buffer)
Transfere os dados do arquivo remoto diretamente para um arquivo local.
Definition: ftc.cpp:610
TEC_FTC_DECL unsigned long long getReadBufferSize()
Retorna o tamanho atual do buffer de leitura.
Definition: ftc.cpp:445
TEC_FTC_DECL void setSize(unsigned long long size)
Define o tamanho do arquivo. Pode ser usado para alocar um espaço ou truncar o arquivo.
Definition: ftc.cpp:450
#define TEC_FTC_DECL
Definition: ftc_decl.h:17
TEC_FTC_DECL unsigned long long getPosition()
Retorna a atual posição do cursor de leitura no arquivo.
Definition: ftc.cpp:438
TEC_FTC_DECL void close()
Fecha o arquivo.
Definition: ftc.cpp:400
TEC_FTC_DECL void setReadBufferSize(unsigned long long size)
Define o tamanho do buffer de leitura utilizado na leitura do arquivo.
Definition: ftc.cpp:434