# ndk::BnCInterface


**This is an abstract class.**


`#include <binder_interface_utils.h>`

implementation of IInterface for server (n = native)

## Summary

### Inheritance

Inherits from: INTERFACE

| ### Constructors and Destructors ||
|---|---|
| `https://developer.android.com/ndk/reference/classndk/1-1-bn-c-interface#classndk_1_1_bn_c_interface_1a8b8ddd2015ee799cd3202b4042898a42()` ||
| `https://developer.android.com/ndk/reference/classndk/1-1-bn-c-interface#classndk_1_1_bn_c_interface_1a28bfb15e44f68bdd2554b6142b5c7239()` ||

| ### Public functions ||
|---|---|
| `https://developer.android.com/ndk/reference/classndk/1-1-bn-c-interface#classndk_1_1_bn_c_interface_1a7861c50895b5193b484197cefae4253c() overridefinal` | `https://developer.android.com/ndk/reference/classndk/1-1-sp-a-i-binder#classndk_1_1_sp_a_i_binder` |
| `https://developer.android.com/ndk/reference/classndk/1-1-bn-c-interface#classndk_1_1_bn_c_interface_1aa969fa8ad9505bf59ff1e013e9d54f5d() overridefinal` | `bool` |

| ### Public static functions ||
|---|---|
| `https://developer.android.com/ndk/reference/classndk/1-1-bn-c-interface#classndk_1_1_bn_c_interface_1af1e91efe8e4031bdbee8315f1effdc24(std::string_view instance)` | `std::string` |

| ### Protected functions ||
|---|---|
| `https://developer.android.com/ndk/reference/classndk/1-1-bn-c-interface#classndk_1_1_bn_c_interface_1a47662e1bef24692d6dd35f350ac996d9()=0` | `virtual https://developer.android.com/ndk/reference/classndk/1-1-sp-a-i-binder#classndk_1_1_sp_a_i_binder` This function should only be called by asBinder. |

## Public functions

### BnCInterface

```
 BnCInterface()
```

### asBinder

```
SpAIBinder asBinder() overridefinal
```

### isRemote

```
bool isRemote() overridefinal
```

### \~BnCInterface

```
virtual  ~BnCInterface()
```

## Public static functions

### makeServiceName

```
std::string makeServiceName(
  std::string_view instance
)
```

## Protected functions

### createBinder

```
virtual SpAIBinder createBinder()=0
```
This function should only be called by asBinder.

Otherwise, there is a possibility of multiple AIBinder\* objects being created for the same instance of an object.