Developing Apama Applications > Developing Adapters > C/C++ Codec Plug-in Development
C/C++ Codec Plug-in Development
The codec layer is a layer of abstraction between the transport layer and the IAF’s Semantic Mapper. It consists of one or more plug-in libraries that perform message encoding and/or decoding. Decoders translate downstream messages retrieved by the transport layer into the standard ‘normalised event’ format on which the Semantic Mapper’s rules run. Encoders work in the opposite direction, encoding upstream normalised events into an appropriate format for transport layer plug-ins to send on. See The Integration Adapter Framework for a full introduction to codec plug-ins and the IAF’s architecture.
This topic includes the C/C++ Codec Plug-in Development Specification and additional information for developers of C/C++ event codecs. Java Codec Plug-in Development provides analogous information about developing codec plug-ins using Java.
Before developing a new codec plug-in, it is worth considering whether one of the standard Apama IAF plug-ins could be used instead. Standard Plug-ins provides more information on the standard IAF codec plug-ins: StringCodec and NullCodec. The StringCodec plug-in codes normalised events as formatted text strings. The NullCodec plug-in is useful in situations where it does not make sense to decouple the codec and transport layers, and allows transport plug-ins to communicate with the Semantic Mapper directly using normalised events.
Note: Beginning with Apama 4.0, plug-in constructors and the updateProperties(), sendTransportEvent(), and sendNormalisedEvent() methods all take an additional argument. This means that any IAF plug-ins written for versions earlier than 4.0 need to be modified and recompiled with this release.
Copyright © 2013 Software AG, Darmstadt, Germany and/or Software AG USA Inc., Reston, VA, USA, and/or Terracotta Inc., San Francisco, CA, USA, and/or Software AG (Canada) Inc., Cambridge, Ontario, Canada, and/or, Software AG (UK) Ltd., Derby, United Kingdom, and/or Software A.G. (Israel) Ltd., Or-Yehuda, Israel and/or their licensors.