[dali_2.3.40] Merge branch 'devel/master'
[platform/core/uifw/dali-adaptor.git] / dali / internal / network / common / client-send-data-interface.h
1 #ifndef DALI_INTERNAL_ADAPTOR_CLIENT_SEND_DATA_INTERFACE_H
2 #define DALI_INTERNAL_ADAPTOR_CLIENT_SEND_DATA_INTERFACE_H
3
4 /*
5  * Copyright (c) 2023 Samsung Electronics Co., Ltd.
6  *
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  * http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  *
19  */
20
21 #include <dali/public-api/signals/callback.h>
22
23 namespace Dali
24 {
25 namespace Internal
26 {
27 namespace Adaptor
28 {
29 /**
30  * @brief  Abstract interface used to transmit data to a client
31  */
32 class ClientSendDataInterface
33 {
34 public:
35   /**
36    * Trigger the main thread automation callback
37    */
38   virtual void TriggerMainThreadAutomation(CallbackBase* callback) = 0;
39
40   /**
41    * @brief Sends data to the client
42    * @param[in] data pointer to some data
43    * @param[in] bufferSizeInBytes how big the buffer is in bytes
44    * @param[in] clientId unique client id to send the data to
45    */
46   virtual void SendData(const char* const data, unsigned int bufferSizeInBytes, unsigned int clientId) = 0;
47
48 protected:
49   /**
50    * @brief  Constructor
51    */
52   ClientSendDataInterface()
53   {
54   }
55
56   /**
57    * @brief Virtual Destructor
58    */
59   virtual ~ClientSendDataInterface()
60   {
61   }
62
63 private:
64   // Undefined copy constructor.
65   ClientSendDataInterface(const ClientSendDataInterface&);
66
67   // Undefined assignment operator.
68   ClientSendDataInterface& operator=(const ClientSendDataInterface&);
69 };
70
71 } // namespace Adaptor
72
73 } // namespace Internal
74
75 } // namespace Dali
76
77 #endif // DALI_INTERNAL_ADAPTOR_CLIENT_SEND_DATA_INTERFACE_H