14 #include "ReuserTypes.hpp"
49 virtual std::vector<ReuseTriple>
getReusedUploads(
int uploadId,
int groupId);
62 int uploadId,
const std::vector<int>& pfileIds);
71 int userId,
int groupId,
72 int licenseId,
bool removed,
int type,
73 const std::string& reportInfo,
const std::string& comment,
74 const std::string& ack,
int jobId);
82 int userId,
int groupId,
83 int decType,
int scope,
const std::vector<int>& eventIds);
91 int newItemUploadTreePk,
int userId,
92 int groupId,
int originalDecisionPk);
100 virtual int writeArsRecord(
int agentId,
int uploadId,
int arsId = 0,
101 bool success =
false);
107 int groupId,
int reusedGroupId,
int userId);
111 int groupId,
int reusedGroupId,
int userId);
115 int reusedUploadId,
int reusedGroupId);
121 virtual bool reuseCopyrights(
int uploadId,
int reusedUploadId,
int userId);
137 static std::string shellEscape(
const std::string&
s);
138 static int diffLineCount(
const std::string& a,
const std::string& b);
Database handler for the reuser agent.
virtual bool processUploadReuse(int uploadId, int reusedUploadId, int groupId, int reusedGroupId, int userId)
virtual bool getParentItemBounds(int uploadId, ItemTreeBounds &out)
Fetch the parent item bounds for a given upload.
virtual int createCopyOfClearingDecision(int uploadId, int newItemUploadTreePk, int userId, int groupId, int originalDecisionPk)
Copy an existing clearing decision to a new uploadtree item.
virtual int createDecisionFromEvents(int uploadId, int uploadTreeId, int userId, int groupId, int decType, int scope, const std::vector< int > &eventIds)
Create a clearing_decision linked to eventIds.
virtual bool reuseMainLicense(int uploadId, int groupId, int reusedUploadId, int reusedGroupId)
virtual ReuserDatabaseHandler spawn() const
virtual std::map< int, int > getClearingDecisionMapByPfile(int uploadId, int groupId)
Build a pfile_fk to clearing_decision_pk map for uploadId.
static int getDecisionTypePriority(int decisionType)
Priority for decision types during reuse conflict resolution.
virtual bool processEnhancedUploadReuse(int uploadId, int reusedUploadId, int groupId, int reusedGroupId, int userId)
static bool isValidIdentifier(const std::string &s)
Validate that s contains only characters safe for SQL identifiers.
std::string getRepoPathOfPfile(int pfileId)
virtual int insertClearingEvent(int uploadId, int uploadTreeId, int userId, int groupId, int licenseId, bool removed, int type, const std::string &reportInfo, const std::string &comment, const std::string &ack, int jobId)
Insert a new clearing event and return its primary key (0 on error).
static std::string replaceUnicodeControlChars(const std::string &input)
Strip Unicode control characters (C0, C1, DEL) from input.
virtual bool reuseCopyrights(int uploadId, int reusedUploadId, int userId)
virtual int writeArsRecord(int agentId, int uploadId, int arsId=0, bool success=false)
Write (insert or update) an ARS record.
virtual std::vector< ReuseTriple > getReusedUploads(int uploadId, int groupId)
Return the list of uploads that should be reused for uploadId.
virtual bool reuseConfSettings(int uploadId, int reusedUploadId)
virtual std::map< int, std::vector< int > > getUploadTreePksForPfiles(int uploadId, const std::vector< int > &pfileIds)
For a set of pfile ids, return a map pfile_fk to [uploadtree_pk].
Database handler for agents.
DbManager dbManager
DbManager to use.
int s
The socket that the CLI will use to communicate.
The main FOSSology CPP library.
int jobId
The id of the job.
Bounds of an item within an uploadtree table.