Advertisement
Guest User

Untitled

a guest
May 29th, 2015
245
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.14 KB | None | 0 0
  1. class CommandBase {
  2.     public:
  3.         typedef CommandID ID;
  4.         typedef std::shared_ptr<CommandBase> SPtr;
  5.  
  6.         static SPtr Make(const ByteArray &data);
  7.  
  8.         CommandBase(const ByteArray &data);
  9.  
  10.         virtual ~CommandBase();
  11.  
  12.         const ByteArray& Data() const;
  13.  
  14.         ID GetId() const;
  15.         /**
  16.          * @brief SetSystem помечает команду как системную
  17.          */
  18.         void SetSystem();
  19.  
  20.         /**
  21.          * @brief IsSystem проверяет признак "систменая команда"
  22.          * @return true если является системной, иначе false
  23.          */
  24.         bool IsSystem() const;
  25.     protected:
  26.         ByteArray &Data();
  27.  
  28.     private:
  29.         ID m_id;
  30.         ByteArray m_data;
  31.         bool m_system;
  32.         //Справедливо до тех пор, пока ID базовый тип.
  33.         static std::atomic<ID> m_next_id;
  34.     };
  35.  
  36.  
  37. BOOST_FIXTURE_TEST_CASE( sys_commands, Fixture ){
  38.  
  39.         const auto cmd = MakeCryptCommand();  //return shared_ptr<CommandBase>
  40.         const auto& cmd_data = cmd->Data();
  41.         BOOST_CHECK_EQUAL(cmd_data.size(), 3);
  42.  
  43. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement