#define DRD64_SRC_LIBGOBLIN_BINARYFILE
#include"drd64_libgoblin.h"
+#define LOCATION(n) DRD64_ERR_LOCATION( \
+ DRD64_ERROR_MODULE_LIBGOBLIN, DRD64_ERROR_ARCH_NODEPEND, \
+ DRD64_SRCID_LIBGOBLIN_BINARYFILE, (n))
+
+
/*----------------------------------------------------------------------
----------------------------------------------------------------------*/
+#define FUNCID_LibGoblin_BinaryFile_GetBinaryFile 0x14
LIBGOBLIN_BINARYFILE_EXTERN
LibGoblin_BinaryFile *
BinaryFile_GetBinaryFile(
int i_bfid )
{
- if(( gi_max_binary_file <= i_bfid ) || ( 0 > i_bfid ))
- { return NULL; }
+ if(( gi_max_binary_file <= i_bfid ) || ( 0 > i_bfid )) {
+ LibBrownie_Error_SetErrorInfo(
+ DRD64_ERROR( DRD64_ERROR_PTN_FAILED_ARG, 0x01, 0x01 ),
+ LOCATION( FUNCID_LibGoblin_BinaryFile_GetBinaryFile ),
+ errno, (QWord)i_bfid, (QWord)gi_max_binary_file, __LINE__ );
+ return NULL;
+ }
- if( -0x01 == BINFILE( i_bfid )->i_id )
- { return NULL; }
+ if( -0x01 == BINFILE( i_bfid )->i_id ) {
+ LibBrownie_Error_SetErrorInfo(
+ DRD64_ERROR( DRD64_ERROR_PTN_FAILCALL, 0x01, 0x02 ),
+ LOCATION( FUNCID_LibGoblin_BinaryFile_GetBinaryFile ),
+ errno, (QWord)i_bfid, (QWord)0x00, __LINE__ );
+ return NULL;
+ }
return BINFILE( i_bfid );
}
/*----------------------------------------------------------------------
OK
----------------------------------------------------------------------*/
+#define FUNCID_LibGoblin_BinaryFile_ClearBinaryFile 0x13
void
BinaryFile_ClearBinaryFile(
LibGoblin_BinaryFile *p_binfile )
/*----------------------------------------------------------------------
OK
----------------------------------------------------------------------*/
+#define FUNCID_LibGoblin_BinaryFile_AllocBinaryFile 0x11
LIBGOBLIN_BINARYFILE_EXTERN
LibGoblin_BinaryFile *
BinaryFile_AllocBinaryFile(
}
// Bug -- Not Exist Non-used BinaryFile struct.
+ LibBrownie_Error_SetErrorInfo(
+ DRD64_ERROR( DRD64_ERROR_PTN_BUG, 0x01, 0x01 ),
+ LOCATION( FUNCID_LibGoblin_BinaryFile_AllocBinaryFile ),
+ errno, (QWord)gi_now_binary_file, (QWord)gi_max_binary_file, __LINE__ );
goto goto_BinaryFile_AllocBinaryFile_post;
}
sizeof( LibGoblin_BinaryFile ) *
( gi_alloc_binary_file + LIBGOBLIN_BINARYFILE_UNITS ) );
if( NULL == p_bfilebase ) {
+ LibBrownie_Error_SetErrorInfo(
+ DRD64_ERROR( DRD64_ERROR_PTN_NOMEMORY, 0x01, 0x02 ),
+ LOCATION( FUNCID_LibGoblin_BinaryFile_AllocBinaryFile ),
+ errno, (QWord)gi_alloc_binary_file, (QWord)0x00, __LINE__ );
goto goto_BinaryFile_AllocBinaryFile_post;
}
/*----------------------------------------------------------------------
----------------------------------------------------------------------*/
+#define FUNCID_LibGoblin_BinaryFile_SearchBinaryFile 0x31
LIBGOBLIN_BINARYFILE_EXTERN
LibGoblin_BinaryFile *
BinaryFile_SearchBinaryFile(
/*----------------------------------------------------------------------
----------------------------------------------------------------------*/
+#define FUNCID_LibGoblin_BinaryFile_DispenseBinaryFile 0x21
LIBGOBLIN_BINARYFILE_EXTERN
LibGoblin_BinaryFile *
BinaryFile_DispenseBinaryFile(
p_bfile = BinaryFile_SearchBinaryFile(
p_binfo->str_filename, pstr_localpath, pstr_remotepath );
+ if( NULL != p_bfile )
+ { p_bfile->i_refcount++; }
+ else
+ { p_bfile = BinaryFile_AllocBinaryFile(); }
+
if( NULL != p_bfile ) {
- p_bfile->i_refcount++;
+ strncpy( p_bfile->str_filename, p_binfo->str_filename, DRD64_MAX_PATH );
+ strncpy( p_bfile->str_localpath, pstr_localpath, DRD64_MAX_PATH );
+ if( NULL != pstr_remotepath )
+ { strncpy( p_bfile->str_remotepath, pstr_remotepath, DRD64_MAX_PATH ); }
}
else {
- p_bfile = BinaryFile_AllocBinaryFile();
+ LibBrownie_Error_SetErrorInfo(
+ DRD64_ERROR( DRD64_ERROR_PTN_NULLPTR, 0x01, 0x01 ),
+ LOCATION( FUNCID_LibGoblin_BinaryFile_DispenseBinaryFile ),
+ errno, (QWord)0x00, (QWord)0x00, __LINE__ );
}
-
- strncpy( p_bfile->str_filename, p_binfo->str_filename, DRD64_MAX_PATH );
- strncpy( p_bfile->str_localpath, pstr_localpath, DRD64_MAX_PATH );
- if( NULL != pstr_remotepath ) {
- strncpy( p_bfile->str_remotepath, pstr_remotepath, DRD64_MAX_PATH );
- }
return p_bfile;
}
/*----------------------------------------------------------------------
OK
----------------------------------------------------------------------*/
+#define FUNCID_LibGoblin_BinaryFile_FreeBinaryFile 0x12
LIBGOBLIN_BINARYFILE_EXTERN
int
BinaryFile_FreeBinaryFile(
assert( NULL != p_binfile );
- if( -0x01 == p_binfile->i_id ) { return 0x00; }
+ if( -0x01 == p_binfile->i_id ) {
+ LibBrownie_Error_SetErrorInfo(
+ DRD64_ERROR( DRD64_ERROR_PTN_FAILCALL, 0x01, 0x01 ),
+ LOCATION( FUNCID_LibGoblin_BinaryFile_FreeBinaryFile ),
+ errno, (QWord)0x00, (QWord)0x00, __LINE__ );
+ return 0x00;
+ }
p_binfile->i_refcount--;
/*----------------------------------------------------------------------
OK
----------------------------------------------------------------------*/
+#define FUNCID_LibGoblin_BinaryFile_Init 0x01
LIBGOBLIN_BINARYFILE_EXTERN
int
BinaryFile_Init(
LibGoblin_BinaryFile *p_binfile;
if( 0 != gi_max_binary_file ) {
+ LibBrownie_Error_SetErrorInfo(
+ DRD64_ERROR( DRD64_ERROR_PTN_FAILCALL, 0x01, 0x01 ),
+ LOCATION( FUNCID_LibGoblin_BinaryFile_Init ),
+ errno, (QWord)gi_max_binary_file, (QWord)0x00, __LINE__ );
return -0x01;
}
gp_binary_file = (LibGoblin_BinaryFile *)malloc(
sizeof( LibGoblin_BinaryFile ) * LIBGOBLIN_BINARYFILE_UNITS );
if( NULL == gp_binary_file ) {
+ LibBrownie_Error_SetErrorInfo(
+ DRD64_ERROR( DRD64_ERROR_PTN_NOMEMORY, 0x01, 0x02 ),
+ LOCATION( FUNCID_LibGoblin_BinaryFile_Init ),
+ errno, (QWord)0x00, (QWord)0x00, __LINE__ );
return -0x02;
}
/*----------------------------------------------------------------------
OK
----------------------------------------------------------------------*/
+#define FUNCID_LibGoblin_BinaryFile_Term 0x02
LIBGOBLIN_BINARYFILE_EXTERN
int
BinaryFile_Term(