libiphone/afc.h File Reference

AFC Implementation. More...


Defines

#define AFC_E_SUCCESS   0
#define AFC_E_UNKNOWN_ERROR   1
#define AFC_E_OP_HEADER_INVALID   2
#define AFC_E_NO_RESOURCES   3
#define AFC_E_READ_ERROR   4
#define AFC_E_WRITE_ERROR   5
#define AFC_E_UNKNOWN_PACKET_TYPE   6
#define AFC_E_INVALID_ARGUMENT   7
#define AFC_E_OBJECT_NOT_FOUND   8
#define AFC_E_OBJECT_IS_DIR   9
#define AFC_E_PERM_DENIED   10
#define AFC_E_SERVICE_NOT_CONNECTED   11
#define AFC_E_OP_TIMEOUT   12
#define AFC_E_TOO_MUCH_DATA   13
#define AFC_E_END_OF_DATA   14
#define AFC_E_OP_NOT_SUPPORTED   15
#define AFC_E_OBJECT_EXISTS   16
#define AFC_E_OBJECT_BUSY   17
#define AFC_E_NO_SPACE_LEFT   18
#define AFC_E_OP_WOULD_BLOCK   19
#define AFC_E_IO_ERROR   20
#define AFC_E_OP_INTERRUPTED   21
#define AFC_E_OP_IN_PROGRESS   22
#define AFC_E_INTERNAL_ERROR   23
#define AFC_E_MUX_ERROR   30
#define AFC_E_NO_MEM   31
#define AFC_E_NOT_ENOUGH_DATA   32

Typedefs

typedef int16_t afc_error_t
typedef struct afc_client_int * afc_client_t

Enumerations

enum  afc_file_mode_t {
  AFC_FOPEN_RDONLY = 0x00000001, AFC_FOPEN_RW = 0x00000002, AFC_FOPEN_WRONLY = 0x00000003, AFC_FOPEN_WR = 0x00000004,
  AFC_FOPEN_APPEND = 0x00000005, AFC_FOPEN_RDAPPEND = 0x00000006
}
enum  afc_link_type_t { AFC_HARDLINK = 1, AFC_SYMLINK = 2 }
enum  afc_lock_op_t { AFC_LOCK_SH = 1 | 4, AFC_LOCK_EX = 2 | 4, AFC_LOCK_UN = 8 | 4 }

Functions

afc_error_t afc_client_new (iphone_device_t device, int dst_port, afc_client_t *client)
 Makes a connection to the AFC service on the phone.
afc_error_t afc_client_free (afc_client_t client)
 Disconnects an AFC client from the phone.
afc_error_t afc_get_device_info (afc_client_t client, char ***infos)
 Get device info for a client connection to phone.
afc_error_t afc_read_directory (afc_client_t client, const char *dir, char ***list)
 Gets a directory listing of the directory requested.
afc_error_t afc_get_file_info (afc_client_t client, const char *filename, char ***infolist)
 Gets information about a specific file.
afc_error_t afc_file_open (afc_client_t client, const char *filename, afc_file_mode_t file_mode, uint64_t *handle)
 Opens a file on the phone.
afc_error_t afc_file_close (afc_client_t client, uint64_t handle)
 Closes a file on the phone.
afc_error_t afc_file_lock (afc_client_t client, uint64_t handle, afc_lock_op_t operation)
 Locks or unlocks a file on the phone.
afc_error_t afc_file_read (afc_client_t client, uint64_t handle, char *data, int length, uint32_t *bytes)
 Attempts to the read the given number of bytes from the given file.
afc_error_t afc_file_write (afc_client_t client, uint64_t handle, const char *data, int length, uint32_t *bytes)
 Writes a given number of bytes to a file.
afc_error_t afc_file_seek (afc_client_t client, uint64_t handle, int64_t offset, int whence)
 Seeks to a given position of a pre-opened file on the phone.
afc_error_t afc_file_tell (afc_client_t client, uint64_t handle, uint64_t *position)
 Returns current position in a pre-opened file on the phone.
afc_error_t afc_file_truncate (afc_client_t client, uint64_t handle, uint64_t newsize)
 Sets the size of a file on the phone.
afc_error_t afc_remove_path (afc_client_t client, const char *path)
 Deletes a file or directory.
afc_error_t afc_rename_path (afc_client_t client, const char *from, const char *to)
 Renames a file or directory on the phone.
afc_error_t afc_make_directory (afc_client_t client, const char *dir)
 Creates a directory on the phone.
afc_error_t afc_truncate (afc_client_t client, const char *path, off_t newsize)
 Sets the size of a file on the phone without prior opening it.
afc_error_t afc_make_link (afc_client_t client, afc_link_type_t linktype, const char *target, const char *linkname)
 Creates a hard link or symbolic link on the device.


Detailed Description

AFC Implementation.


Function Documentation

afc_error_t afc_client_free ( afc_client_t  client  ) 

Disconnects an AFC client from the phone.

Parameters:
client The client to disconnect.

afc_error_t afc_client_new ( iphone_device_t  device,
int  dst_port,
afc_client_t *  client 
)

Makes a connection to the AFC service on the phone.

Parameters:
phone The iPhone to connect on.
s_port The source port.
d_port The destination port.
Returns:
A handle to the newly-connected client or NULL upon error.

afc_error_t afc_file_close ( afc_client_t  client,
uint64_t  handle 
)

Closes a file on the phone.

Parameters:
client The client to close the file with.
handle File handle of a previously opened file.

afc_error_t afc_file_lock ( afc_client_t  client,
uint64_t  handle,
afc_lock_op_t  operation 
)

Locks or unlocks a file on the phone.

makes use of flock on the device, see http://developer.apple.com/documentation/Darwin/Reference/ManPages/man2/flock.2.html

Parameters:
client The client to lock the file with.
handle File handle of a previously opened file.
operation the lock or unlock operation to perform, this is one of AFC_LOCK_SH (shared lock), AFC_LOCK_EX (exclusive lock), or AFC_LOCK_UN (unlock).

afc_error_t afc_file_open ( afc_client_t  client,
const char *  filename,
afc_file_mode_t  file_mode,
uint64_t *  handle 
)

Opens a file on the phone.

Parameters:
client The client to use to open the file.
filename The file to open. (must be a fully-qualified path)
file_mode The mode to use to open the file. Can be AFC_FILE_READ or AFC_FILE_WRITE; the former lets you read and write, however, and the second one will *create* the file, destroying anything previously there.
handle Pointer to a uint64_t that will hold the handle of the file
Returns:
AFC_E_SUCCESS on success or an AFC_E_* error on failure.

afc_error_t afc_file_read ( afc_client_t  client,
uint64_t  handle,
char *  data,
int  length,
uint32_t *  bytes 
)

Attempts to the read the given number of bytes from the given file.

Parameters:
client The relevant AFC client
handle File handle of a previously opened file
data The pointer to the memory region to store the read data
length The number of bytes to read
Returns:
The number of bytes read if successful. If there was an error -1.

afc_error_t afc_file_seek ( afc_client_t  client,
uint64_t  handle,
int64_t  offset,
int  whence 
)

Seeks to a given position of a pre-opened file on the phone.

Parameters:
client The client to use to seek to the position.
handle File handle of a previously opened.
offset Seek offset.
whence Seeking direction, one of SEEK_SET, SEEK_CUR, or SEEK_END.
Returns:
AFC_E_SUCCESS on success, AFC_E_NOT_ENOUGH_DATA on failure.

afc_error_t afc_file_tell ( afc_client_t  client,
uint64_t  handle,
uint64_t *  position 
)

Returns current position in a pre-opened file on the phone.

Parameters:
client The client to use.
handle File handle of a previously opened file.
position Position in bytes of indicator
Returns:
AFC_E_SUCCESS on success, AFC_E_NOT_ENOUGH_DATA on failure.

afc_error_t afc_file_truncate ( afc_client_t  client,
uint64_t  handle,
uint64_t  newsize 
)

Sets the size of a file on the phone.

Parameters:
client The client to use to set the file size.
handle File handle of a previously opened file.
newsize The size to set the file to.
Returns:
0 on success, -1 on failure.
Note:
This function is more akin to ftruncate than truncate, and truncate calls would have to open the file before calling this, sadly.

afc_error_t afc_file_write ( afc_client_t  client,
uint64_t  handle,
const char *  data,
int  length,
uint32_t *  bytes 
)

Writes a given number of bytes to a file.

Parameters:
client The client to use to write to the file.
handle File handle of previously opened file.
data The data to write to the file.
length How much data to write.
Returns:
The number of bytes written to the file, or a value less than 0 if none were written...

afc_error_t afc_get_device_info ( afc_client_t  client,
char ***  infos 
)

Get device info for a client connection to phone.

(free space on disk, etc.)

Parameters:
client The client to get device info for.
Returns:
A char ** list of parameters as given by AFC or NULL if there was an error.

afc_error_t afc_get_file_info ( afc_client_t  client,
const char *  path,
char ***  infolist 
)

Gets information about a specific file.

Parameters:
client The client to use to get the information of the file.
path The fully-qualified path to the file.
infolist Pointer to a buffer that will be filled with a NULL-terminated list of strings with the file information. Set to NULL before calling this function.
Returns:
AFC_E_SUCCESS on success or an AFC_E_* error value when something went wrong.

afc_error_t afc_make_directory ( afc_client_t  client,
const char *  dir 
)

Creates a directory on the phone.

Parameters:
client The client to use to make a directory.
dir The directory's path. (must be a fully-qualified path, I assume all other mkdir restrictions apply as well)
Returns:
AFC_E_SUCCESS if everythong went well, AFC_E_INVALID_ARGUMENT if arguments are NULL or invalid, AFC_E_NOT_ENOUGH_DATA otherwise.

afc_error_t afc_make_link ( afc_client_t  client,
afc_link_type_t  linktype,
const char *  target,
const char *  linkname 
)

Creates a hard link or symbolic link on the device.

Parameters:
client The client to use for making a link
type 1 = hard link, 2 = symlink
target The file to be linked.
linkname The name of link.
Returns:
AFC_E_SUCCESS if everything went well, AFC_E_INVALID_ARGUMENT if arguments are NULL or invalid, AFC_E_NOT_ENOUGH_DATA otherwise.

afc_error_t afc_read_directory ( afc_client_t  client,
const char *  dir,
char ***  list 
)

Gets a directory listing of the directory requested.

Parameters:
client The client to get a directory listing from.
dir The directory to list. (must be a fully-qualified path)
Returns:
A char ** list of files in that directory, terminated by an empty string for now or NULL if there was an error.

afc_error_t afc_remove_path ( afc_client_t  client,
const char *  path 
)

Deletes a file or directory.

Parameters:
client The client to use.
path The path to delete. (must be a fully-qualified path)
Returns:
AFC_E_SUCCESS if everythong went well, AFC_E_INVALID_ARGUMENT if arguments are NULL or invalid, AFC_E_NOT_ENOUGH_DATA otherwise.

afc_error_t afc_rename_path ( afc_client_t  client,
const char *  from,
const char *  to 
)

Renames a file or directory on the phone.

Parameters:
client The client to have rename.
from The name to rename from. (must be a fully-qualified path)
to The new name. (must also be a fully-qualified path)
Returns:
AFC_E_SUCCESS if everythong went well, AFC_E_INVALID_ARGUMENT if arguments are NULL or invalid, AFC_E_NOT_ENOUGH_DATA otherwise.

afc_error_t afc_truncate ( afc_client_t  client,
const char *  path,
off_t  newsize 
)

Sets the size of a file on the phone without prior opening it.

Parameters:
client The client to use to set the file size.
path The path of the file to be truncated.
newsize The size to set the file to.
Returns:
AFC_E_SUCCESS if everything went well, AFC_E_INVALID_ARGUMENT if arguments are NULL or invalid, AFC_E_NOT_ENOUGH_DATA otherwise.


Generated on Mon Jul 27 08:42:31 2009 for libiphone by  doxygen 1.5.6