[ 
https://issues.apache.org/jira/browse/MINIFI-217?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15903792#comment-15903792
 ] 

ASF GitHub Bot commented on MINIFI-217:
---------------------------------------

Github user jdye64 commented on a diff in the pull request:

    https://github.com/apache/nifi-minifi-cpp/pull/63#discussion_r105260453
  
    --- Diff: libminifi/include/FlowFileRecord.h ---
    @@ -32,198 +32,138 @@
     #include <set>
     
     #include "utils/TimeUtil.h"
    -#include "Logger.h"
    +#include "core/logging/Logger.h"
     #include "ResourceClaim.h"
    +#include "Connection.h"
    +#include "core/Record.h"
    +
    +namespace org {
    +namespace apache {
    +namespace nifi {
    +namespace minifi {
     
    -class ProcessSession;
    -class Connection;
     
     #define DEFAULT_FLOWFILE_PATH "."
     
     //! FlowFile Attribute
    -enum FlowAttribute
    -{
    -   //! The flowfile's path indicates the relative directory to which a 
FlowFile belongs and does not contain the filename
    -   PATH = 0,
    -   //! The flowfile's absolute path indicates the absolute directory to 
which a FlowFile belongs and does not contain the filename
    -   ABSOLUTE_PATH,
    -   //! The filename of the FlowFile. The filename should not contain any 
directory structure.
    -   FILENAME,
    -   //! A unique UUID assigned to this FlowFile.
    -   UUID,
    -   //! A numeric value indicating the FlowFile priority
    -   priority,
    -   //! The MIME Type of this FlowFile
    -   MIME_TYPE,
    -   //! Specifies the reason that a FlowFile is being discarded
    -   DISCARD_REASON,
    -   //! Indicates an identifier other than the FlowFile's UUID that is 
known to refer to this FlowFile.
    -   ALTERNATE_IDENTIFIER,
    -   MAX_FLOW_ATTRIBUTES
    +enum FlowAttribute {
    +  //! The flowfile's path indicates the relative directory to which a 
FlowFile belongs and does not contain the filename
    +  PATH = 0,
    +  //! The flowfile's absolute path indicates the absolute directory to 
which a FlowFile belongs and does not contain the filename
    +  ABSOLUTE_PATH,
    +  //! The filename of the FlowFile. The filename should not contain any 
directory structure.
    +  FILENAME,
    +  //! A unique UUID assigned to this FlowFile.
    +  UUID,
    +  //! A numeric value indicating the FlowFile priority
    +  priority,
    +  //! The MIME Type of this FlowFile
    +  MIME_TYPE,
    +  //! Specifies the reason that a FlowFile is being discarded
    +  DISCARD_REASON,
    +  //! Indicates an identifier other than the FlowFile's UUID that is known 
to refer to this FlowFile.
    +  ALTERNATE_IDENTIFIER,
    +  MAX_FLOW_ATTRIBUTES
     };
     
     //! FlowFile Attribute Key
    -static const char *FlowAttributeKeyArray[MAX_FLOW_ATTRIBUTES] =
    -{
    -           "path",
    -           "absolute.path",
    -           "filename",
    -           "uuid",
    -           "priority",
    -           "mime.type",
    -           "discard.reason",
    -           "alternate.identifier"
    -};
    +static const char *FlowAttributeKeyArray[MAX_FLOW_ATTRIBUTES] = { "path",
    +    "absolute.path", "filename", "uuid", "priority", "mime.type",
    +    "discard.reason", "alternate.identifier" };
     
     //! FlowFile Attribute Enum to Key
    -inline const char *FlowAttributeKey(FlowAttribute attribute)
    -{
    -   if (attribute < MAX_FLOW_ATTRIBUTES)
    -           return FlowAttributeKeyArray[attribute];
    -   else
    -           return NULL;
    +inline const char *FlowAttributeKey(FlowAttribute attribute) {
    +  if (attribute < MAX_FLOW_ATTRIBUTES)
    +    return FlowAttributeKeyArray[attribute];
    +  else
    +    return NULL;
     }
     
     //! FlowFile IO Callback functions for input and output
     //! throw exception for error
    -class InputStreamCallback
    -{
    -public:
    -   virtual void process(std::ifstream *stream) = 0;
    +class InputStreamCallback {
    + public:
    +  virtual void process(std::ifstream *stream) = 0;
     };
    -class OutputStreamCallback
    -{
    -public:
    -   virtual void process(std::ofstream *stream) = 0;
    +class OutputStreamCallback {
    + public:
    +  virtual void process(std::ofstream *stream) = 0;
     };
     
    -
     //! FlowFile Record Class
    -class FlowFileRecord
    -{
    -   friend class ProcessSession;
    -public:
    -   //! Constructor
    -   /*!
    -    * Create a new flow record
    -    */
    -   FlowFileRecord(std::map<std::string, std::string> attributes, 
ResourceClaim *claim = NULL);
    -   //! Destructor
    -   virtual ~FlowFileRecord();
    -   //! addAttribute key is enum
    -   bool addAttribute(FlowAttribute key, std::string value);
    -   //! addAttribute key is string
    -   bool addAttribute(std::string key, std::string value);
    -   //! removeAttribute key is enum
    -   bool removeAttribute(FlowAttribute key);
    -   //! removeAttribute key is string
    -   bool removeAttribute(std::string key);
    -   //! updateAttribute key is enum
    -   bool updateAttribute(FlowAttribute key, std::string value);
    -   //! updateAttribute key is string
    -   bool updateAttribute(std::string key, std::string value);
    -   //! getAttribute key is enum
    -   bool getAttribute(FlowAttribute key, std::string &value);
    -   //! getAttribute key is string
    -   bool getAttribute(std::string key, std::string &value);
    -   //! setAttribute, if attribute already there, update it, else, add it
    -   void setAttribute(std::string key, std::string value) {
    -           _attributes[key] = value;
    -   }
    -   //! Get the UUID as string
    -   std::string getUUIDStr() {
    -           return _uuidStr;
    -   }
    -   //! Get Attributes
    -   std::map<std::string, std::string> getAttributes() {
    -           return _attributes;
    -   }
    -   //! Check whether it is still being penalized
    -   bool isPenalized() {
    -           return (_penaltyExpirationMs > 0 ? _penaltyExpirationMs > 
getTimeMillis() : false);
    -   }
    -   //! Get Size
    -   uint64_t getSize() {
    -           return _size;
    -   }
    -   // ! Get Offset
    -   uint64_t getOffset() {
    -           return _offset;
    -   }
    -   // ! Get Entry Date
    -   uint64_t getEntryDate() {
    -           return _entryDate;
    -   }
    -   // ! Get Lineage Start Date
    -   uint64_t getlineageStartDate() {
    -           return _lineageStartDate;
    -   }
    -   // ! Set Original connection
    -   void setOriginalConnection (Connection *connection) {
    -           _orginalConnection = connection;
    -   }
    -   //! Get Original connection
    -   Connection * getOriginalConnection() {
    -           return _orginalConnection;
    -   }
    -   //! Get Resource Claim
    -   ResourceClaim *getResourceClaim() {
    -           return _claim;
    -   }
    -   //! Get lineageIdentifiers
    -   std::set<std::string> getlineageIdentifiers()
    -   {
    -           return _lineageIdentifiers;
    -   }
    -
    -protected:
    -
    -   //! Date at which the flow file entered the flow
    -   uint64_t _entryDate;
    -   //! Date at which the origin of this flow file entered the flow
    -   uint64_t _lineageStartDate;
    -   //! Date at which the flow file was queued
    -   uint64_t _lastQueueDate;
    -   //! Size in bytes of the data corresponding to this flow file
    -   uint64_t _size;
    -   //! A global unique identifier
    -   uuid_t _uuid;
    -   //! A local unique identifier
    -   uint64_t _id;
    -   //! Offset to the content
    -   uint64_t _offset;
    -   //! Penalty expiration
    -   uint64_t _penaltyExpirationMs;
    -   //! Attributes key/values pairs for the flow record
    -   std::map<std::string, std::string> _attributes;
    -   //! Pointer to the associated content resource claim
    -   ResourceClaim *_claim;
    -   //! UUID string
    -   std::string _uuidStr;
    -   //! UUID string for all parents
    -   std::set<std::string> _lineageIdentifiers;
    -   //! duplicate the original flow file
    -   void duplicate(FlowFileRecord *original);
    -
    -private:
    -
    -   //! Local flow sequence ID
    -   static std::atomic<uint64_t> _localFlowSeqNumber;
    -   //! Mark for deletion
    -   bool _markedDelete;
    -   //! Connection queue that this flow file will be transfer or current in
    -   Connection *_connection;
    -   //! Orginal connection queue that this flow file was dequeued from
    -   Connection *_orginalConnection;
    -   //! Logger
    -   std::shared_ptr<Logger> logger_;
    -   //! Snapshot flow record for session rollback
    -   bool _snapshot;
    -   // Prevent default copy constructor and assignment operation
    -   // Only support pass by reference or pointer
    -   FlowFileRecord(const FlowFileRecord &parent);
    -   FlowFileRecord &operator=(const FlowFileRecord &parent);
    +class FlowFileRecord : public core::Record {
    + public:
    +  //! Constructor
    +  /*!
    +   * Create a new flow record
    +   */
    +  explicit FlowFileRecord(std::map<std::string, std::string> attributes,
    +                          std::shared_ptr<ResourceClaim> claim = nullptr);
    +  //! Destructor
    +  virtual ~FlowFileRecord();
    +  //! addAttribute key is enum
    +  bool addKeyedAttribute(FlowAttribute key, std::string value);
    +  //! removeAttribute key is enum
    +  bool removeKeyedAttribute(FlowAttribute key);
    +  //! updateAttribute key is enum
    +  bool updateKeyedAttribute(FlowAttribute key, std::string value);
    +  //! getAttribute key is enum
    +  bool getKeyedAttribute(FlowAttribute key, std::string &value);
    + 
    +
    +  void setSnapShot(bool snapshot) {
    +    snapshot_ = snapshot;
    +  }
    +
    +  FlowFileRecord &operator=(const FlowFileRecord &);
    +
    +  FlowFileRecord(const FlowFileRecord &parent) = delete;
    +
    + protected:
    +  /*
    +   //! Date at which the flow file entered the flow
    +   uint64_t _entryDate;
    +   //! Date at which the origin of this flow file entered the flow
    +   uint64_t _lineageStartDate;
    +   //! Date at which the flow file was queued
    +   uint64_t _lastQueueDate;
    +   //! Size in bytes of the data corresponding to this flow file
    +   uint64_t _size;
    +   //! A global unique identifier
    +   uuid_t _uuid;
    +   //! A local unique identifier
    +   uint64_t _id;
    +   //! Offset to the content
    +   uint64_t _offset;
    +   //! Penalty expiration
    +   uint64_t _penaltyExpirationMs;
    +   //! Attributes key/values pairs for the flow record
    +   std::map<std::string, std::string> _attributes;
    +   //! Pointer to the associated content resource claim
    +   ResourceClaim *_claim;
    +   //! UUID string
    +   std::string _uuidStr;
    +   //! UUID string for all parents
    +   std::set<std::string> _lineageIdentifiers;
    +   */
    +
    + private:
    +
    +  //! Local flow sequence ID
    +  static std::atomic<uint64_t> _localFlowSeqNumber;
    --- End diff --
    
    Can you move "_" to end of class data member to adhere to Google C++ Style 
guide?


> Move to org::apache::nifi::minifi namespace in CPP agent
> --------------------------------------------------------
>
>                 Key: MINIFI-217
>                 URL: https://issues.apache.org/jira/browse/MINIFI-217
>             Project: Apache NiFi MiNiFi
>          Issue Type: Bug
>          Components: C++
>    Affects Versions: cpp-0.1.0, cpp-0.2.0
>            Reporter: marco polo
>            Priority: Trivial
>   Original Estimate: 504h
>  Remaining Estimate: 504h
>
> Move code to a more controlled namespace. I suggest org::apache::nifi::minifi 
> since that more closely reflects the JAVA package. 
> Suggest Processor namespace be 
> org::apache::nifi::minifi::processors
> Suggest I/O namespace be 
> org::apache::nifi::minifi::io



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to