Easemob Windows SDK
emmessagebody.h
1 /************************************************************
2  * * EaseMob CONFIDENTIAL
3  * __________________
4  * Copyright (C) 2015 EaseMob Technologies. All rights reserved.
5  *
6  * NOTICE: All information contained herein is, and remains
7  * the property of EaseMob Technologies.
8  * Dissemination of this information or reproduction of this material
9  * is strictly forbidden unless prior written permission is obtained
10  * from EaseMob Technologies.
11  */
12 //
13 // EMMessageBody.h
14 //
15 // Copyright (c) 2015 EaseMob Inc. All rights reserved.
16 //
17 
18 #ifndef __easemob__EMMessageBody__
19 #define __easemob__EMMessageBody__
20 
21 #include <string>
22 #include <memory>
23 #include <vector>
24 
25 #include "embaseobject.h"
26 
27 namespace easemob {
28 
29 class EMMessageBodyPrivate;
30 
31 class EASEMOB_API EMMessageBody : public EMBaseObject
32 {
33 public:
34 
35  typedef enum
36  {
37  TEXT, //Text message body
38  IMAGE, //Image message body
39  VIDEO, //Video message body
40  LOCATION, //Location message body
41  VOICE, //Voice message body
42  FILE, //File message body
43  COMMAND //Command message body
44  } EMMessageBodyType;
45 
52  EMMessageBody(EMMessageBodyType = TEXT);
53 
60  virtual ~EMMessageBody();
61 
68  EMMessageBodyType type() const { return mType; };
69 
70 protected:
77  virtual void dummy() const = 0;
78 
79 protected:
80  EMMessageBodyPrivate* mBodyPrivate;
81 
82 protected:
83  EMMessageBodyType mType;
84 
85 private:
87  EMMessageBody& operator=(const EMMessageBody&);
88  friend class EMMessage;
89  friend class EMMessageBodyPrivate;
90  friend class EMMessageEncoder;
91 };
92 
93 typedef std::shared_ptr<EMMessageBody> EMMessageBodyPtr;
94 
95 }
96 
97 #endif /* defined(__easemob__EMMessageBody__) */
Definition: emmessagebody.h:31
Definition: emmessage.h:34
EMMessageBodyType type() const
Get message body type.
Definition: emmessagebody.h:68
Definition: emattributevalue.h:28
Definition: embaseobject.h:28