clone Tizen.Messaging from spin
[platform/core/csapi/tizenfx.git] / src / Tizen.Messaging / Tizen.Messaging.Messages / MessagesManager.cs
1 /*
2  * Copyright (c) 2016 Samsung Electronics Co., Ltd All Rights Reserved
3  *
4  * Licensed under the Apache License, Version 2.0 (the License);
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an AS IS BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 using System;
18 using System.Collections.Generic;
19 using System.Threading.Tasks;
20
21 namespace Tizen.Messaging.Messages
22 {
23     /// <summary>
24     /// A class for message management. It allows applications to use message service.
25     /// </summary>
26     public static class MessagesManager
27     {
28         /// <summary>
29         /// Sends a message.
30         /// </summary>
31         /// <privilege>http://tizen.org/privilege/message.write</privilege>
32         /// <param name="message">The message to be sent</param>
33         /// <param name="saveToSentbox">The boolean variable to indicate sent message should be saved in sentbox or not</param>
34         /// <returns>A task contains the result of message sending</returns>
35         /// <exception cref="InvalidOperationException">Thrown when method failed due to invalid operation</exception>
36         /// <exception cref="NotSupportedException">Thrown when message service is not supported</exception>
37         /// <exception cref="ArgumentException">Thrown when input coordinates are invalid</exception>
38         public static Task<SentResult> SendMessageAsync(Message message, bool saveToSentbox)
39         {
40             return MessagesManagerImpl.Instance.SendMessageAsync(message, saveToSentbox);
41         }
42
43         /// <summary>
44         /// Searches for messages.
45         /// </summary>
46         /// <privilege>http://tizen.org/privilege/message.read</privilege>
47         /// <param name="filter">The search filter for searching messages</param>
48         /// <returns>A task contains the messages which fit with search filter</returns>
49         /// <exception cref="InvalidOperationException">Thrown when method failed due to invalid operation</exception>
50         /// <exception cref="NotSupportedException">Thrown when message service is not supported</exception>
51         /// <exception cref="ArgumentException">Thrown when input coordinates are invalid</exception>
52         public static Task<IEnumerable<Message>> SearchMessageAsync(MessagesSearchFilter filter)
53         {
54             return MessagesManagerImpl.Instance.SearchMessageAsync(filter);
55         }
56
57         /// <summary>
58         /// (event) MessageReceived is raised when receiving a message.
59         /// </summary>
60         static public event EventHandler<MessageReceivedEventArgs> MessageReceived
61         {
62             add
63             {
64                 MessagesManagerImpl.Instance._MessageReceived += value;
65             }
66             remove
67             {
68                 MessagesManagerImpl.Instance._MessageReceived -= value;
69             }
70         }
71     }
72 }