/** includes the blk file reader in SCIP */ SCIP_RETCODE SCIPincludeReaderBlk( SCIP* scip /**< SCIP data structure */ ) { SCIP_READERDATA* readerdata; /* create blk reader data */ SCIP_CALL( SCIPallocMemory(scip, &readerdata) ); /* include blk reader */ SCIP_CALL( SCIPincludeReader(scip, READER_NAME, READER_DESC, READER_EXTENSION, NULL, readerFreeBlk, readerReadBlk, readerWriteBlk, readerdata) ); return SCIP_OKAY; }
/** includes the xyz file reader in SCIP */ SCIP_RETCODE SCIPincludeReaderXyz( SCIP* scip /**< SCIP data structure */ ) { SCIP_READERDATA* readerdata; SCIP_READER* reader; /* create xyz reader data */ readerdata = NULL; /* TODO: (optional) create reader specific data here */ reader = NULL; /* include reader */ #if 0 /* use SCIPincludeReader() if you want to set all callbacks explicitly and realize (by getting compiler errors) when * new callbacks are added in future SCIP versions */ SCIP_CALL( SCIPincludeReader(scip, READER_NAME, READER_DESC, READER_EXTENSION, readerCopyXyz, readerFreeXyz, readerReadXyz, readerWriteXyz, readerdata) ); #else /* use SCIPincludeReaderBasic() plus setter functions if you want to set callbacks one-by-one and your code should * compile independent of new callbacks being added in future SCIP versions */ SCIP_CALL( SCIPincludeReaderBasic(scip, &reader, READER_NAME, READER_DESC, READER_EXTENSION, readerdata) ); assert(reader != NULL); /* set non fundamental callbacks via setter functions */ SCIP_CALL( SCIPsetReaderCopy(scip, reader, readerCopyXyz) ); SCIP_CALL( SCIPsetReaderFree(scip, reader, readerFreeXyz) ); SCIP_CALL( SCIPsetReaderRead(scip, reader, readerReadXyz) ); SCIP_CALL( SCIPsetReaderWrite(scip, reader, readerWriteXyz) ); #endif /* add xyz reader parameters */ /* TODO: (optional) add reader specific parameters with SCIPaddTypeParam() here */ return SCIP_OKAY; }
/** creates the file reader for the given file reader object and includes it in SCIP */ SCIP_RETCODE SCIPincludeObjReader( SCIP* scip, /**< SCIP data structure */ scip::ObjReader* objreader, /**< file reader object */ SCIP_Bool deleteobject /**< should the reader object be deleted when reader is freed? */ ) { SCIP_READERDATA* readerdata; assert(scip != NULL); assert(objreader != NULL); /* create file reader data */ readerdata = new SCIP_READERDATA; readerdata->objreader = objreader; readerdata->deleteobject = deleteobject; /* include file reader */ SCIP_CALL( SCIPincludeReader(scip, objreader->scip_name_, objreader->scip_desc_, objreader->scip_extension_, readerCopyObj, readerFreeObj, readerReadObj, readerWriteObj, readerdata) ); /*lint !e429*/ return SCIP_OKAY; /*lint !e429*/ }