> For the complete documentation index, see [llms.txt](https://portal-integracao.intelbras.com.br/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://portal-integracao.intelbras.com.br/linha-android/iaserver/sharememorywrappermanager.md).

# ShareMemoryWrapperManager

Devido à restrição do mecanismo Android, a comunicação IPC não pode transmitir um grande número, então aqui o modo de memória compartilhada é usado para transmitir dados. O compartilhado token de memória representa um bloco de memória compartilhada. Atualmente, o serviço inteligente é passar os dados do quadro de identificação entre processos através deste esquema.

{% hint style="danger" %}
Nota: O recurso de memória compartilhada é muito limitado e é comum a todo o sistema. Deve ser reutilizado tanto quanto possível para evitar aplicações e liberações repetidas.
{% endhint %}

```java
/**
* Gets a valid shared memory object, internally checked for token validity, that is, returned only if
the token is valid, otherwise null
* If not reused, {@link ShareMemoryWrapper#release()} should be used accordingly
*
* @param size Shared memory size
* @return Shared memory object
*/
public ShareMemoryWrapper getValidShareMemoryWrapper(int size)
/**
* Reads data from shared memory
*
* @param token Shared memory token
* @return The data read
*/
public byte[] readShareBytes(int token)
/**
* Reads the specified length of data in the shared memory token
*
* @param token Shared memory token
* @param length Length of the read
* @return The data read
*/
public byte[] readShareBytes(int token, int length)
/**
* Writes data to shared memory
*
* @param token Shared memory token
* @param bytes Data to be written
* @return Result of the interface execution. true indicates success
*/
public boolean writeShareBytes(int token, byte[] bytes)
/**
* Reads the specified length of data in the shared memory token
*
* @param memoryWrapper Shared memory wrapper object
* @param length Length of the read
* @return The data read
*/
public byte[] readShareBytes(ShareMemoryWrapper memoryWrapper, int length)
/**
* Read all data in the shared memory token
*
* @param memoryWrapper Shared memory wrapper object
* @return The data read
*/
public byte[] readShareBytes(ShareMemoryWrapper memoryWrapper)
/**
* Reads the specified length of data in the shared memory token
*
* @param token Shared memory token
* @param destBytes The target buffer for the read data
* @param length Length of the read
* @return Result of the interface execution {@link JniResultCode}
*/
public int readShareBytes(int token, byte[] destBytes, int length)
/**
* Reads the specified length of data in the shared memory token
*
* @param memoryWrapper Shared memory wrapper object
* @param destBytes The target buffer for the read data
* @param length Length of the read
* @return Result of the interface execution {@link JniResultCode}
*/
public int readShareBytes(ShareMemoryWrapper memoryWrapper, byte[] destBytes, int length)
/**
* Writes data to shared memory
*
* @param memoryWrapper Shared memory wrapper object
* @param bytes Data to be written
* @return Result of the interface execution. true indicates success
*/
public boolean writeShareBytes(ShareMemoryWrapper memoryWrapper, byte[] bytes)
/**
* Request the free shared memory object from the shared memory service and remove the {@link
ShareMemoryWrapper} object from the reuse cache.
* The caller needs to set the reference count of the {@link ShareMemoryWrapper} object to 0, i.e.
{@link ShareMemoryWrapper#isIdle()} is true, otherwise it cannot be released
*
* @param memoryWrapper Shared memory wrapper object
* @return Result of the interface execution. true indicates success
*/
public boolean release(ShareMemoryWrapper memoryWrapper)
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://portal-integracao.intelbras.com.br/linha-android/iaserver/sharememorywrappermanager.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
