libftc
 Todos Classes Namespaces Arquivos Funções Variáveis Definições de Tipos Enumerações Valores enumerados Definições e Macros
ftc_abi_safe.cpp
Vá para a documentação deste arquivo.
1 #include "ftc_abi_safe.h"
2 #include "ftc.h"
3 #include <cstring>
4 
5 namespace ftc_detail {
6 
7 namespace {
8 
10 {
11  implementation (const char* id, bool writable, const char* host
12  , unsigned short port, const char* accessKey)
13  : ftc_impl (id, std::strlen(id), writable, host, port, accessKey, 16) {}
15 };
16 
17 implementation* get_impl (ftc_abi_safe::implementation* impl)
18 {
19  return static_cast<implementation*>(static_cast<void*>(impl));
20 }
21 
22 }
23 
24 }
25 
26 ftc_abi_safe::ftc_abi_safe(const char* id, bool writable, const char* host
27  , unsigned short port, const char* accessKey)
28  : impl (0)
29 {
30  ftc_detail::implementation* impl_
31  = new ftc_detail::implementation (id, writable, host
32  , port, accessKey);
33  impl = static_cast<ftc_abi_safe::implementation*>(
34  static_cast<void*>(impl_));
35 }
36 
38 {
39  delete ftc_detail::get_impl (impl);
40 }
41 
42 void ftc_abi_safe::open( bool readonly )
43 {
44  ftc_detail::get_impl (impl)->ftc_impl.open (readonly);
45 }
46 
48 {
49  return ftc_detail::get_impl (impl)->ftc_impl.isOpen ();
50 }
51 
53 {
55 }
56 
57 void ftc_abi_safe::setPosition( unsigned long long position )
58 {
59  ftc_detail::get_impl (impl)->ftc_impl.setPosition (position);
60 }
61 
62 unsigned long long ftc_abi_safe::getPosition() const
63 {
64  return ftc_detail::get_impl (impl)->ftc_impl.getPosition ();
65 }
66 
67 void ftc_abi_safe::setSize( unsigned long long size )
68 {
69  ftc_detail::get_impl (impl)->ftc_impl.setSize (size);
70 }
71 
72 unsigned long long ftc_abi_safe::getSize() const
73 {
74  return ftc_detail::get_impl (impl)->ftc_impl.getSize ();
75 }
76 
77 unsigned long long ftc_abi_safe::read(char* data, unsigned long long nbytes, unsigned long long position)
78 {
79  return ftc_detail::get_impl (impl)->ftc_impl.read (data, nbytes, position);
80 }
81 
82 unsigned long long ftc_abi_safe::write(const char* data, unsigned long long nbytes, unsigned long long position)
83 {
84  return ftc_detail::get_impl (impl)->ftc_impl.write (data, nbytes, position);
85 }
86 
87 unsigned long long ftc_abi_safe::transferTo(unsigned long long position, unsigned long long nbytes, FILE* fd, char* buffer)
88 {
89  return ftc_detail::get_impl (impl)->ftc_impl.transferTo (position, nbytes, fd, buffer);
90 }
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 bool isOpen()
Indica se o arquivo está aberto.
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.
TEC_FTC_DECL void close()
Fecha o arquivo.
TEC_FTC_DECL void open(bool readonly)
Abre o arquivo remoto.
Definition: ftc.cpp:323
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.
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.
TEC_FTC_DECL void setPosition(unsigned long long position)
Posiciona o cursor de leitura no arquivo.
Definition: ftc.cpp:418
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.
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 void open(bool readonly)
Abre o arquivo remoto.
TEC_FTC_DECL void setPosition(unsigned long long position)
Posiciona o cursor de leitura no arquivo.
TEC_FTC_DECL ftc_abi_safe(const char *id, bool writable, const char *host, unsigned short port, const char *accessKey)
Construtor.
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 ~ftc_abi_safe()
Destrutor.
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
TEC_FTC_DECL unsigned long long getSize() const
Retorna o tamanho atual do arquivo.
TEC_FTC_DECL unsigned long long getPosition() const
Retorna a atual posição do cursor de leitura no arquivo.
implementation * get_impl(ftc_abi_safe::implementation *impl)
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
implementation(const char *id, bool writable, const char *host, unsigned short port, const char *accessKey)