diff options
Diffstat (limited to 'README.md')
-rwxr-xr-x | README.md | 81 |
1 files changed, 40 insertions, 41 deletions
@@ -19,19 +19,19 @@ TIDL is programming language to define interfaces for communicating among apps - [Struct](#struct-1) - [Proxy Interface](#proxy-interface) - [Stub Interface](#stub-interface) - - [Protocol Version 2](#protocol-version-2) - - [Enum Type](#enum-type) - - [Import Another TIDL File](#import-another-tidl-file) - - [Method Privilege](#method-privilege) - - [Map and Set Container Type](#map-and-set-container-type) - - [Marshalling Type Info](#marshalling-type-info) - - [Struct Inheritance](#struct-inheritance) - - [Remote Exception](#remote-exception) - - [Local Execution Mode](#local-execution-mode) - - [Private Sharing](#private-sharing) - - [TIDL Generated Code for Protocol Version 2](#tidl-generated-code-for-protocol-version-2) - - [Proxy Interface](#proxy-interface-1) - - [Stub Interface](#stub-interface-1) + - [Protocol version 2](#protocol-version-2) + - [Enum type](#enum-type) + - [Import another TIDL file](#import-another-tidl-file) + - [Method privilege](#method-privilege) + - [Map and set container type](#map-and-set-container-type) + - [Marshalling type info](#marshalling-type-info) + - [Struct inheritance](#struct-inheritance) + - [Remote exception](#remote-exception) + - [Local execution mode](#local-execution-mode) + - [Private sharing](#private-sharing) + - [TIDL generated code for protocol version 2](#tidl-generated-code-for-protocol-version-2) + - [Proxy interface](#proxy-interface-1) + - [Stub interface](#stub-interface-1) <a name="tidlc"></a> ## TIDLC @@ -549,13 +549,14 @@ class Runnable extends StubBase { ``` <a name="protocol-version-2"></a> -## Protocol Version 2 -**TIDLC** supports 'protocol version 2' since Tizen 8.0. +## Protocol version 2 To use 'protocol version 2', you must fill **'protocol 2'** in the .tidl file. 'protocol version 2' of **TIDL** supports the following features: + > [!NOTE] + > **TIDLC** supports 'protocol version 2' since Tizen 8.0. <a name="enum-type"></a> -### Enum Type +### Enum type - **'enum'** type is added. - You can declare an **enum** type inside a 'struct' or 'interface' and use it as a member variable or parameter. ```tidl @@ -584,7 +585,7 @@ To use 'protocol version 2', you must fill **'protocol 2'** in the .tidl file. - When using a struct's enum type as a method parameter, it must be specified as **"<struct_name>.<enum_type>"**. <a name="import-another-tidl-file"></a> -### Import Another TIDL File +### Import another TIDL file - **'import'** keyword is added. - You can add and use other TIDL files in the same directory as the current TIDL file using the **'import'** keyword. - During the compilation process, the contents of other TIDL files are integrated and generated as one code. @@ -598,7 +599,7 @@ To use 'protocol version 2', you must fill **'protocol 2'** in the .tidl file. ``` <a name="method-privilege"></a> -### Method Privilege +### Method privilege - The protocol version 2 of TIDL supports the method privilege feature. - You can set privileges for each method of an interface by writing them as below: ```tidl @@ -613,10 +614,10 @@ To use 'protocol version 2', you must fill **'protocol 2'** in the .tidl file. int Uninstall(string package); } ``` -- To use the GetPackages method in the example, the client application needs to have the privilege that is "http://tizen.org/privilege/packagemanager.info". +- To use the GetPackages method in the example, the client application needs to have the privilege that is "[http://tizen.org/privilege/packagemanager.info](http://tizen.org/privilege/packagemanager.info){:target="_blank"}". <a name="map-and-set-container-type"></a> -### Map and Set Container Type +### Map and set container type - You can use map and set container types in TIDL. - The map type is **'map\<K, V\>'**. The set type is **'set\<K\>'**. ```tidl @@ -626,33 +627,32 @@ To use 'protocol version 2', you must fill **'protocol 2'** in the .tidl file. set<string> keys; } ``` - > **Note** - > - > The key type of map and set container must be TIDL's builtin types. + > [!NOTE] + > The key type of map and set container must be TIDL's built-in types. <a name="marshalling-type-info"></a> -### Marshalling Type Info +### Marshalling type info - From protocol version 2, the type information and variable names of method parameters are also transmitted. - Even if variable names are changed, added, or deleted due to interface modifications, it does not affect communication. - If there are no variables to be passed, they are passed as initial values. - - Example 1. Original tidl code + - The following code is an example of an original TIDL code: ```tidl interface Hello { int GetPackages(out list<string> packages); } ``` - - Example 2. Revised tidl code + - The following code is an example of a revised TIDL code: ```tidl interface Hello { int GetPackages(out list<string> packages, out int size); } `````` -- In the example, the GetPackages() method has an added size parameter. +- In the example, the `GetPackages()` method has an added size parameter. - Even if the stub only returns the existing packages parameter, there is no problem with communication. <a name="struct-inheritance"></a> -### Struct Inheritance +### Struct inheritance - **'struct'** inheritance is supported. - Here is an example that supports **'struct'** inheritance: ```tidl @@ -666,11 +666,10 @@ To use 'protocol version 2', you must fill **'protocol 2'** in the .tidl file. } ``` - In this example, **MessageDerived** inherits **MessageBase**. - > **Note** - > - > The inherited struct MUST not have elements of the base struct." + > [!Note] + > The inherited struct must not have elements of the base struct. -- If the method of the interface is a base struct, communication can be performed using the derived struct that is inherited. (Polymophism) +- If the method of the interface is a base struct, communication can be performed using the derived struct that is inherited. (Polymorphism) ```tidl struct MessageBase { int id; @@ -690,26 +689,26 @@ To use 'protocol version 2', you must fill **'protocol 2'** in the .tidl file. int SendMessage(MessageBase msg); } ``` -- When using the **Message** interface, you can use **Envelope** or **MessageDerived** to call the **SendMessage()** method. +- When using the **Message** interface, you can use **Envelope** or **MessageDerived** to call the **`SendMessage()`** method. <a name="remote-exception"></a> -### Remote Exception +### Remote exception - The stub can use **RemoteException** to throw an exception to the proxy. - This feature is available when the method operates synchronously. - When the proxy sends a request and waits for a result, if the stub throws an exception, it is passed to the proxy. <a name="local-execution-mode"></a> -### Local Execution Mode +### Local execution mode - If the stub that the proxy sends a request to is in the same application, a function call occurs instead of RPC. <a name="private-sharing"></a> -### Private Sharing -- Since protocol version 2, the file keyword can be used without the '-b' option. +### Private sharing +- Since protocol version 2, the **file** keyword can be used without the '-b' option. - The proxy or the stub can use this to share a specific file in the data directory with the intended recipient for communication. - The recipient who receives the shared file can access it with read-only permission. <a name="tidl-generated-code-for-protocol-version-2"></a> -### TIDL Generated Code for Protocol Version 2 +### TIDL generated code for protocol version 2 **TIDL** ```tidl @@ -733,11 +732,11 @@ interface Message { int Send(MessageBase message); } ``` -- In the example, the MessageDerived structure inherits from MessageBase. +- In the example above, the **MessageDerived** structure inherits from **MessageBase**. - When calling the Send method of the Message interface, you can use a MessageDerived instance. <a name="proxy-interface-1"></a> -#### Proxy Interface +#### Proxy interface **C** ```c @@ -1145,7 +1144,7 @@ namespace Proxy <a name="stub-interface-1"></a> -#### Stub Interface +#### Stub interface **C** ```c |