18 #ifndef INC_C4Network2Res
19 #define INC_C4Network2Res
253 bool SetByFile(
const char *strFilePath,
bool fTemp,
C4Network2ResType eType, int32_t iResID,
const char *szResName =
nullptr,
bool fSilent =
false);
255 bool SetByCore(
const C4Network2ResCore &nCore,
bool fSilent =
false,
const char *szAsFilename =
nullptr, int32_t iRecursion=0);
263 bool GetStandalone(
char *pTo, int32_t iMaxL,
bool fSetOfficial,
bool fAllowUnloadable =
false,
bool fSilent =
false);
272 bool SendChunk(uint32_t iChunk, int32_t iToClient);
const int32_t C4NetResStatusInterval
const int32_t C4NetResDiscoverInterval
const int32_t C4NetResIDAnonymous
const int32_t C4NetResLoadTimeout
const int32_t C4NetResMaxLoad
const int32_t C4NetResDeleteTime
const int32_t C4NetResDiscoverTimeout
const StdEnumEntry< C4Network2ResType > C4Network2ResType_EnumMap[]
const uint32_t C4NetResChunkSize
const int32_t C4NetResMaxBigicon
#define SHA_DIGEST_LENGTH
void Set(C4Network2Res *pnRes)
Ref & operator=(C4Network2Res *pnRes)
C4Network2Res * operator->() const
int32_t getPresentChunkCnt() const
void GetNegative(C4Network2ResChunkData &Target) const
int32_t getPresentPercent() const
int32_t GetChunkToRetrieve(const C4Network2ResChunkData &Available, int32_t iLoadingCnt, int32_t *pLoading) const
C4Network2ResChunkData & operator=(const C4Network2ResChunkData &Data2)
ChunkRange * pChunkRanges
void AddChunk(int32_t iChunk)
bool MergeRanges(ChunkRange *pRange)
~C4Network2ResChunkData() override
int32_t getChunkCnt() const
void Merge(const C4Network2ResChunkData &Data2)
void SetIncomplete(int32_t iChunkCnt)
int32_t getPresentChunk(int32_t iNr) const
void AddChunkRange(int32_t iStart, int32_t iLength)
void SetComplete(int32_t iChunkCnt)
void CompileFunc(StdCompiler *pComp) override
void CompileFunc(StdCompiler *pComp) override
~C4Network2ResChunk() override
bool Set(C4Network2Res *pRes, uint32_t iChunk)
uint32_t getChunkNr() const
bool AddTo(C4Network2Res *pRes, C4Network2IO *pIO) const
void SetDerived(int32_t inDerID)
void SetFileSHA(BYTE *pSHA)
uint32_t getChunkSize() const
void Set(C4Network2ResType eType, int32_t iResID, const char *strFileName, uint32_t iContentsCRC)
uint8_t FileSHA[SHA_DIGEST_LENGTH]
uint32_t getContentsCRC() const
const char * getFileName() const
void CompileFunc(StdCompiler *pComp) override
void SetLoadable(uint32_t iSize, uint32_t iCRC)
uint32_t getFileCRC() const
uint32_t getChunkCnt() const
uint32_t getFileSize() const
C4Network2ResType getType() const
const uint8_t * getFileSHA() const
void OnStatus(const C4Network2ResChunkData &rChunkData, C4Network2IOConnection *pBy)
time_t iDiscoverStartTime
C4Network2Res(C4Network2ResList *pnParent)
const char * getFile() const
C4Group * OpenAsGrp() const
int32_t getResClient() const
C4Network2ResList * pParent
const C4Network2ResCore & getCore() const
int32_t getPresentPercent() const
C4Network2ResType getType() const
int32_t getLastReqTime() const
C4Network2ResChunkData Chunks
void RemoveCChunks(ClientChunks *pChunks)
void OnChunk(const C4Network2ResChunk &rChunk)
C4Network2Res::Ref Derive()
bool SetLoad(const C4Network2ResCore &nCore)
C4Network2ResChunkData Chunks
void ChangeID(int32_t inID)
char szFile[_MAX_PATH_LEN]
bool SetByGroup(C4Group *pGrp, bool fTemp, C4Network2ResType eType, int32_t iResID, const char *szResName=nullptr, bool fSilent=false)
bool SendChunk(uint32_t iChunk, int32_t iToClient)
bool SetDerived(const char *strName, const char *strFilePath, bool fTemp, C4Network2ResType eType, int32_t iDResID)
char szStandalone[_MAX_PATH_LEN]
bool SendStatus(C4Network2IOConnection *pTo=nullptr)
bool IsBinaryCompatible()
struct C4Network2Res::ClientChunks * pCChunks
bool GetStandalone(char *pTo, int32_t iMaxL, bool fSetOfficial, bool fAllowUnloadable=false, bool fSilent=false)
void RemoveLoad(C4Network2ResLoad *pLoad)
bool SetByCore(const C4Network2ResCore &nCore, bool fSilent=false, const char *szAsFilename=nullptr, int32_t iRecursion=0)
bool SetByFile(const char *strFilePath, bool fTemp, C4Network2ResType eType, int32_t iResID, const char *szResName=nullptr, bool fSilent=false)
C4Network2ResLoad * pLoads
bool OptimizeStandalone(bool fSilent)
void OnDiscover(C4Network2IOConnection *pBy)
bool StartLoad(int32_t iFromClient, const C4Network2ResChunkData &Chunks)
C4Network2Res::Ref getRefRes(int32_t iResID)
void RemoveAtClient(int32_t iClientID)
bool FindTempResFileName(const char *szFilename, char *pTarget)
C4Network2Res::Ref AddByGroup(C4Group *pGrp, bool fTemp, C4Network2ResType eType, int32_t iResID=-1, const char *szResName=nullptr, bool fAllowUnloadable=false)
void Add(C4Network2Res *pRes)
void HandlePacket(char cStatus, const C4PacketBase *pPacket, C4Network2IOConnection *pConn)
C4Network2Res::Ref AddByFile(const char *strFilePath, bool fTemp, C4Network2ResType eType, int32_t iResID=-1, const char *szResName=nullptr, bool fAllowUnloadable=false)
C4Network2Res * getRes(int32_t iResID)
void OnResComplete(C4Network2Res *pRes)
C4Network2IO * getIOClass()
~C4Network2ResList() override
bool CreateNetworkFolder()
bool Init(int32_t iClientID, C4Network2IO *pIOClass)
void SetLocalID(int32_t iClientID)
C4Network2Res::Ref AddByCore(const C4Network2ResCore &Core, bool fLoad=true)
void OnClientConnect(C4Network2IOConnection *pConn)
bool SendDiscover(C4Network2IOConnection *pTo=nullptr)
C4Network2Res::Ref getRefNextRes(int32_t iResID)
void OnShareFree(CStdCSecEx *pCSec) override
C4Network2Res::Ref AddLoad(const C4Network2ResCore &Core)
int32_t getByClient() const
C4Network2ResLoad * pNext
C4Network2ResLoad * Next() const
C4Network2ResLoad(int32_t iChunk, int32_t iByClient)
bool AddDisID(int32_t iID)
int32_t getDisID(int32_t i) const
void CompileFunc(StdCompiler *pComp) override
bool isIDPresent(int32_t iID) const
int32_t getDisIDCnt() const
C4PacketResRequest(int32_t iID=-1, int32_t iChunk=-1)
int32_t getReqChunk() const
void CompileFunc(StdCompiler *pComp) override
const C4Network2ResChunkData & getChunks() const
void CompileFunc(StdCompiler *pComp) override
C4Network2ResChunkData Chunks
const char * getData() const