/* * Writes an integer array of len length to a file fileName. * Returns 0 if successful, 1 if not. */ int writeIntArrayFile( const char* fileName, int * ar, size_t len ){ FILE * matrixFile; #ifdef OS_LINUX matrixFile = fopen( fileName, "w" ); if( matrixFile==NULL ){ printf("Error in attempt to write \"%s\" file\n",fileName); return 1; } #endif #ifdef OS_WIN errno_t err; err = fopen_s( &matrixFile, fileName, "wb" ); if( err!=0 ){ printf("Error in attempt to write \"%s\" file\n",fileName); return 1; } #endif fseek(matrixFile,0,SEEK_SET); // go to the top of file int ret = 0; ret = writeFileStart( matrixFile ); if(ret<0) goto writeIntArrayFileLabel; size_t sr; size_t si; si = sizeof(long long int); sr = writeAll( matrixFile, (void *)&len, si ); if( checkTransfer( "writeCMatrix/1", si, sr, dPRINTOK ) ) goto writeIntArrayFileLabel; writeIntArray( matrixFile, ar, len ); fflush( matrixFile ); writeIntArrayFileLabel: fclose(matrixFile); return ret; }
int writeIntArray( FILE * matrixFile, int * ar, size_t len ){ size_t sr; // ret size_t si; // in si = len * sizeof(int); sr = writeAll( matrixFile, (void *) ar, si ); if( checkTransfer( "writeIntArray", si, sr, dPRINTOK ) ) return 1; return 0; }
int writeInt( FILE * matrixFile, int l ){ size_t sr; // ret size_t si; // in si = sizeof(int); sr = writeAll( matrixFile, (void *)&l, si ); if( checkTransfer( "writeInt", si, sr, dPRINTOK ) ) return 1; return 0; }
LoggedInState::LoggedInState(IState& parentState, Eris::Account& account) : StateBase<EnteredWorldState>::StateBase(parentState), Logout("logout", this, "Logout from the connected server."), CreateChar("add", this, "Create a character on the server."), TakeChar("take", this, "Take control of one of your characters."), ListChars("list", this, "List you available characters on the server."), mAccount(account), mTransferEvent(0) { mAccount.AvatarSuccess.connect(sigc::mem_fun(*this, &LoggedInState::gotAvatarSuccess)); mAccount.GotCharacterInfo.connect(sigc::mem_fun(*this, &LoggedInState::gotCharacterInfo)); mAccount.GotAllCharacters.connect(sigc::mem_fun(*this, &LoggedInState::gotAllCharacters)); checkTransfer(); }
int readInt( FILE * matrixFile, int * l ){ size_t sr; size_t si; si = sizeof(int); sr = readAll( matrixFile, (void *)l, si ); if( checkTransfer( "readInt", si, sr, dPRINTOK ) ) return 1; //fflush( matrixFile ); return 0; }
int readIntArray( FILE * matrixFile, int ** ar, size_t len ){ size_t sr; size_t si; *ar = new int[len]; if( ar==NULL ){ printf( "[readIntArray] Out of memory.\n" ); return 1; } si = len * sizeof(int); sr = readAll( matrixFile, (void *) *ar, si ); if( checkTransfer( "readIntArray", si, sr, dPRINTOK ) ) return 1; return 0; }
/* * Reads an integer array of len length from a file fileName. * Returns 0 if successful, 1 if not. */ int readIntArrayFile( const char* fileName, int ** ar, size_t * len ){ FILE * matrixFile; int ret; #ifdef OS_LINUX matrixFile = fopen( fileName, "rb" ); if( matrixFile==NULL ){ printf("Error in attempt to read \"%s\" file\n",fileName); return 1; } #endif #ifdef OS_WIN errno_t err; err = fopen_s( &matrixFile, fileName, "rb" ); if( err!=0 ){ printf("Error in attempt to read \"%s\" file\n",fileName); return 1; } #endif fseek( matrixFile, 0, SEEK_SET); int dataType; ret = readFileStart( matrixFile, &dataType ); if(ret<0) goto readIntArrayFileLabel; size_t sr; size_t si; si = sizeof(long long int); sr = readAll( matrixFile, (void *)len, si ); if( checkTransfer( "readCMatrix/1", si, sr, dPRINTOK ) ) goto readIntArrayFileLabel; if( readIntArray( matrixFile, ar, *len ) ) goto readIntArrayFileLabel; readIntArrayFileLabel: ret = fclose(matrixFile); return ret; }