---
layout: default-layout
title: class CObservationParameters - Dynamsoft Core Module C++ Edition API Reference
description: API reference for the CObservationParameters class in Dynamsoft Core C++ Edition, specifying which intermediate result unit types and sections to observe during processing.
keywords: intermediate result, c++
needAutoGenerateSidebar: true
---

# CObservationParameters

The `CObservationParameters` class is used to set filter conditions for the `CIntermediateResultReceiver`, so that only intermediate results meeting specific conditions will be called back.

## Definition

*Namespace:* dynamsoft::intermediate_results

*Assembly:* DynamsoftCore

```cpp
class CObservationParameters 
```

## Methods

| Method               | Description |
|----------------------|-------------|
| [`SetObservedResultUnitTypes`](#setobservedresultunittypes) | Sets the types of intermediate result units that have been observed.|
| [`GetObservedResultUnitTypes`](#getobservedresultunittypes) | Gets the types of intermediate result units that have been observed. |
| [`IsResultUnitTypeObserved`](#isresultunittypeobserved) | Determines whether the specified result unit type was observed. |
| [`AddObservedTask`](#addobservedtask) | Adds observed task name to be notified when relevant results are available. |
| [`RemoveObservedTask`](#removeobservedtask) | Remove the observed task name so that intermediate results generated by the task are not notified. |
| [`IsTaskObserved`](#istaskobserved) | Determines whether the specified task was observed. |
| [`SetResultUnitTypesOnlyForInput`](#setresultunittypesonlyforinput) | Set the type of intermediate result unit that indicates skipping default calculations and replacing with input data units. |
| [`GetResultUnitTypesOnlyForInput`](#getresultunittypesonlyforinput) | Gets the type of intermediate result unit that indicates skipping default calculations and replacing with input data units. |
| [`IsResultUnitTypeOnlyForInput`](#isresultunittypeonlyforinput) | Determines whether the specified type of intermediate result unit indicates skipping default calculations and replacing with input data units. |

### SetObservedResultUnitTypes

Sets the types of intermediate result units that have been observed.

```cpp
void SetObservedResultUnitTypes(unsigned long long types) 
```

**Parameters**

`[in] types` The observed types of intermediate result units.

**See Also**

[IntermediateResultUnitType]({{ site.dcvb_cpp_api }}core/enum-intermediate-result-unit-type.html?src=cpp&&lang=cpp)

### GetObservedResultUnitTypes

Gets the types of intermediate result units that have been observed.

```cpp
unsigned long long GetObservedResultUnitTypes() const
```

**Return value**

The observed types of intermediate result units.

**See Also**

[IntermediateResultUnitType]({{ site.dcvb_cpp_api }}core/enum-intermediate-result-unit-type.html?src=cpp&&lang=cpp)

### IsResultUnitTypeObserved

Determines whether the specified result unit type was observed.

```cpp
bool IsResultUnitTypeObserved(IntermediateResultUnitType type) const
```

**Return value**

Returns a boolean value indicating whether the specified result unit type was observed.

**See Also**

[IntermediateResultUnitType]({{ site.dcvb_cpp_api }}core/enum-intermediate-result-unit-type.html?src=cpp&&lang=cpp)

### AddObservedTask

Adds observed task name to be notified when relevant results are available.

```cpp
void AddObservedTask(const char* taskName)
```

**Parameters**

`[in] taskName` The specified task name.

### RemoveObservedTask

Remove the observed task name so that intermediate results generated by the task are not notified.

```cpp
void RemoveObservedTask(const char* taskName)
```

**Parameters**

`[in] taskName` The specified task name.

### IsTaskObserved

Determines whether the specified task was observed.

```cpp
bool IsTaskObserved(const char* taskName) const
```

**Parameters**

`[in] taskName` The specified task name.

**Return value**

Returns a boolean value indicating whether the specified task was observed.

### SetResultUnitTypesOnlyForInput

Set the type of intermediate result unit that indicates skipping default calculations and replacing with input data units.

```cpp
virtual void SetResultUnitTypesOnlyForInput(unsigned long long types) = 0;
```

**Parameters**

`types`: The type of intermediate result unit that serves as the combination value of `IntermediateResultUnitType`.

### GetResultUnitTypesOnlyForInput

Gets the type of intermediate result unit that indicates skipping default calculations and replacing with input data units.

```cpp
virtual unsigned long long GetResultUnitTypesOnlyForInput() const = 0;
```

**Return**

Returns the type of intermediate result unit that serves as the combination value of `IntermediateResultUnitType`.

### IsResultUnitTypeOnlyForInput

Determines whether the specified type of intermediate result unit indicates skipping default calculations and replacing with input data units.

```cpp
virtual bool IsResultUnitTypeOnlyForInput(IntermediateResultUnitType type) const = 0;
```

**Parameters**

`type`: The type of intermediate result unit to check.

**Return**

Returns a boolean value indicating whether the specified type of intermediate result unit indicates skipping default calculations and replacing with input data units.
