Skip to content

[phase 1] Simplify type prefixes: IE -> I, drop TE/NE/GE prefixes #657

@aregtech

Description

@aregtech

Important

Refactoring changes should be rebased and merged against this branch:
feature/655-api-modernization-and-refactoring

Summary

Remove or shorten the legacy Hungarian-style type prefixes used throughout the SDK.

Current prefixes and their purpose

Prefix Meaning Example Count
IE Interface IEByteBuffer, IEIOStream, IESyncObject ~12 classes
TE Template TEArrayList, TEHashMap, TELinkedList ~14 classes
NE Namespace (utility) NECommon, NEString, NEService ~10 classes
GE Global/Engine GEGlobal.h, GEMacros.h, GETypes.h ~4 files

Target state

Current New Rationale
IEByteBuffer IByteBuffer I prefix for interfaces is widely understood
IEIOStream IIOStream Same
IESyncObject ISyncObject Same
TEArrayList<T> ArrayList<T> Templates are obvious from <T> syntax
TEHashMap<K,V> HashMap<K,V> Same
TELinkedList<T> LinkedList<T> Same
TEString<T> Keep or rename to BasicString<T> Follows std::basic_string convention
NECommon Dissolved into areg::common namespace Handled by namespace issue
NEString Dissolved into areg::string namespace Same
GEGlobal.h areg/global.h Drop prefix from filenames
GEMacros.h areg/macros.h Same
GETypes.h areg/types.h Same
GESwitches.h areg/switches.h Same

Depends on

  • Namespace issue must be completed first (or done simultaneously), since NE removal requires namespaces to be in place.

Scope

  • ~12 interface classes (IE prefix)
  • ~14 template classes (TE prefix)
  • ~10 namespace utility classes (NE prefix) — covered by namespace issue
  • ~4 global header files (GE prefix)
  • All files that reference these types (essentially the entire codebase)

Acceptance criteria

  • No IE prefix remains — all converted to I
  • No TE prefix remains — all dropped
  • No GE prefix remains in filenames
  • NE classes dissolved into namespaces (coordinated with namespace issue)
  • All #include paths updated for renamed files
  • Project compiles and all tests pass

Metadata

Metadata

Assignees

Projects

Status

No status

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions