# Implementing Interfaces in clarion 11 ABC

**URL:** <https://clarionhub.com/t/implementing-interfaces-in-clarion-11-abc/8869>\
**Category:** questions\
**Tags:** nettalk, class, abc, c11\
**Created:** [December 19, 2025, 2:46pm UTC](https://clarionhub.com/t/implementing-interfaces-in-clarion-11-abc/8869 "2025-12-19T14:46:28Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![rjolda](https://clarionhub.com/letter_avatar_proxy/v4/letter/r/898d66/32.png) [@rjolda](https://clarionhub.com/u/rjolda)\
**Post date:** [December 19, 2025, 2:46pm UTC](https://clarionhub.com/t/implementing-interfaces-in-clarion-11-abc/8869/1 "2025-12-19T14:46:28Z")

</div>

Hi,  
I need to learn about Interfaces and using them - mostly for Net Talk Application.  
NT14 has a handy Interface called:

```clarion
iNetSessions Interface()
Save PROCEDURE (),Long,Proc,Virtual
Save PROCEDURE (*String p_SessionID),Long,Proc,Virtual
Load PROCEDURE (),Long,Proc,Virtual
_GetSessions PROCEDURE (Long pFilter, String pFilterData, Long pOffset, Long pLimit, StringTheory rResult),Virtual
_SessionRecords PROCEDURE (),Long,Virtual
_SessionExpired PROCEDURE (Long pRecordNumber),String,Virtual
_SessionExpired PROCEDURE (*String p_SessionID),Byte,Virtual
_SessionExpired PROCEDURE (),Byte,Virtual

```

... a bunch more interfaces.  
The procedures are defined in netwebsessions.inc and netwebsessions.clw

I tried this code in my NT app::

```clarion
Myint CLASS,IMPLEMENTS(iNetSessions)
END

```

However, I get 60 Procedure is not defined error messages.  
I want to implement two of the procedures in order to see what is in my session queues:

```clarion
NetSessionsQueue.iNetSessions._SessionRecords PROCEDURE()
  code
  return records(self._sessionqueue)
!------------------------------------------------------------------------------
NetSessionsQueue.iNetSessions._SessionDataRecords PROCEDURE()
  code
  return records(self._sessiondataqueue)

```

Any help will be appreciated!  
Thanks,  
Ron

---

<div class="post-metadata">

**Author:** ![jslarve](https://clarionhub.com/letter_avatar_proxy/v4/letter/j/e480ec/32.png) [@jslarve](https://clarionhub.com/u/jslarve)\
**Post date:** [December 19, 2025, 2:57pm UTC](https://clarionhub.com/t/implementing-interfaces-in-clarion-11-abc/8869/2 "2025-12-19T14:57:23Z")

</div>

> [@rjolda](#):
>
> However, I get 60 Procedure is not defined error messages.

Yeah, that’s the thing about Interfaces. By implementing that interface, you’re guaranteeing to the consumer that the procedures in the interface exist. So even if they don’t do anything, you still have to create them.

Or you could derive from a class that already implements that interface and use derived methods.

---

<div class="post-metadata">

**Author:** ![Bruce](https://clarionhub.com/letter_avatar_proxy/v4/letter/b/ccd318/32.png) [@Bruce](https://clarionhub.com/u/Bruce)\
**Post date:** [December 19, 2025, 3:03pm UTC](https://clarionhub.com/t/implementing-interfaces-in-clarion-11-abc/8869/3 "2025-12-19T15:03:45Z")

</div>

> > Myint CLASS,IMPLEMENTS(iNetSessions)  
> > END

If uou implement an interface you need to implement all the methods.

However if you _derive_ your class from the existing one rhen you can just do the overrides you want. Eg

```clarion
Include('netwebsessions.inc'),once

Myint CLASS(NetSessionsQueue),IMPLEMENTS(iNetSessions)
END

```

---

<div class="post-metadata">

**Author:** ![rjolda](https://clarionhub.com/letter_avatar_proxy/v4/letter/r/898d66/32.png) [@rjolda](https://clarionhub.com/u/rjolda)\
**Post date:** [December 19, 2025, 4:16pm UTC](https://clarionhub.com/t/implementing-interfaces-in-clarion-11-abc/8869/4 "2025-12-19T16:16:03Z")

</div>

Hi Bruce,  
Set it up your way.  
Now I get an ISL error:0  
Yikes, never seen that before… not sure what to do …  
Thanks,  
Ron

---

<div class="post-metadata">

**Author:** ![Rick\_UpperPark](https://clarionhub.com/user_avatar/clarionhub.com/rick_upperpark/32/346_2.png) [@Rick\_UpperPark](https://clarionhub.com/u/Rick_UpperPark)\
**Post date:** [December 19, 2025, 5:50pm UTC](https://clarionhub.com/t/implementing-interfaces-in-clarion-11-abc/8869/5 "2025-12-19T17:50:59Z")

</div>

Hi Ron,  
I derive NetSessionQueue class in one of my projects.  
Show us your complete line for you class definition.

---

<div class="post-metadata">

**Author:** ![CarlBarnes](https://clarionhub.com/user_avatar/clarionhub.com/carlbarnes/32/1859_2.png) [@CarlBarnes](https://clarionhub.com/u/CarlBarnes)\
**Post date:** [December 19, 2025, 6:08pm UTC](https://clarionhub.com/t/implementing-interfaces-in-clarion-11-abc/8869/6 "2025-12-19T18:08:14Z")

</div>

> [@rjolda](#):
>
> Now I get an ISL error:0

There is this [post on ISL Errors](https://clarionhub.com/t/what-does-internal-error-isl-error-0-mean/267) coding classes. Renaming the Class fixed it.

Google “Clarion ISL Error” there are some others.

Maybe I’m thinking of a different odd error, but adding a new Global variable STRING(255) fixed that by shifting addresses.

---

<div class="post-metadata">

**Author:** ![rjolda](https://clarionhub.com/letter_avatar_proxy/v4/letter/r/898d66/32.png) [@rjolda](https://clarionhub.com/u/rjolda)\
**Post date:** [December 19, 2025, 6:41pm UTC](https://clarionhub.com/t/implementing-interfaces-in-clarion-11-abc/8869/7 "2025-12-19T18:41:00Z")

</div>

HI,  
This is the data section:

```clarion
Include('netwebsessions.inc'),once
MySERVERClass CLASS(NetSessionsQueue),IMPLEMENTS(iNetSessions)
  END

```

Tried renaming but that did not solve anything.  
Ron
