BOOS Core API 3.1
- api::Collection<Type>
- api::Heap
- api::IllegalValue<Type>
- api::Interrupt
- api::Iterable<Type>
- api::Iterator<Type>
- api::Kernel
- api::List<Type>
- api::ListIterator<Type>
- api::Mutex
- api::Object
- api::ProcessorInterrupt
- api::ProcessorPll
- api::ProcessorRegisters
- api::ProcessorTimer
- api::Queue<Type>
- api::Resource
- api::Runtime
- api::Scheduler
- api::Semaphore
- api::Stack<Type>
- api::String<Char>
- api::Synchronizable
- api::System
- api::Task
- api::Thread
- api::Timer
- api::Toggle
- api::Value<Type>
- library::AbstractBuffer<Type,Alloc>
- library::AbstractLinkedList<Type,Alloc>
- library::Align<Type,SIZEOF,Alloc>
- library::Buffer<Type,COUNT,Alloc>
- library::CircularList<Type,Alloc>
- library::Heap
- library::LinkedList<Type,Alloc>
- library::LinkedNode<Type,Alloc>
- library::Memory
- library::Stack<Type,Alloc>
- library::String<Char,Alloc>
- library::Toggle<Alloc>
BOOS Core API 2.2
- core::Allocator
- core::Interrupt
- core::InterruptTask
- core::Mutex
- core::Object<Alloc>
- core::Semaphore
- core::Synchronizer
- core::System
- core::Thread
- core::ThreadTask
- core::Timer
- core::TimerInterrupt
- util::AbstractBuffer<Type,Alloc>
- util::AbstractLinkedList<Type,Alloc>
- util::Align<Type,SIZEOF,Alloc>
- util::Allocator
- util::Buffer<Type,COUNT,Alloc>
- util::CircularList<Type,Alloc>
- util::Heap
- util::LinkedList<Type,Alloc>
- util::LinkedNode<Type,Alloc>
- util::Memory
- util::Object<Alloc>
- util::Stack<Type,Alloc>
- util::Toggle<Alloc>
EOOS Automotive R22-08 is released in version v0.10.0
The second official release of EOOS Automotive that is qualified for POSIX and WIN32 compatible operating systems and based on interfaces designed for EOOS RT – real time operating system.
Class «core::Semaphore»
Semaphore class.
- core::Semaphore
- public core::Object<Alloc>
- public Object<Alloc>
- public api::Object
- public Object<Alloc>
- public api::Semaphore
- public api::Resource
- public api::Object
- public api::Resource
- public core::Object<Alloc>
public:
Semaphore(int32 permits, bool fair);
virtual bool acquire(int32 permits);
virtual bool isConstructed() const;
static bool isObject(const Type* obj);
void operator delete(void* ptr);
void* operator new(size_t size);
void* operator new(size_t size, void* ptr);
virtual void release(int32 permits);
protected:
public: Semaphore(int32 permits);
Constructor.
Parameters:
permits — the initial number of permits available.
public: Semaphore(int32 permits, bool fair);
Constructor.
Parameters:
permits — the initial number of permits available.
fair — true if this semaphore will guarantee FIFO granting of permits under contention.
public: virtual ~Semaphore();
Destructor.
public: virtual bool acquire();
Acquires one permit from this semaphore.
The method acquires one permit or waits while the permit will be released.
Returns:
true if the semaphore is acquired successfully.
public: virtual bool acquire(int32 permits);
Acquires the given number of permits from this semaphore.
The method acquires given permits number or waits while the number will be released.
Parameters:
permits — the number of permits to acquire.
Returns:
true if the semaphore is acquired successfully.
public: virtual bool isBlocked();
Tests if this resource is blocked.
Returns:
true if this resource is blocked.
public: virtual bool isConstructed() const;
Tests if this object has been constructed.
Returns:
true if object has been constructed successfully.
public: virtual bool isFair() const;
Tests if this semaphore is fair.
Returns:
true if this semaphore has fairness set true.
public: static bool isObject(const Type* obj);
Tests if given object has been constructed object.
Parameters:
obj — pointer to object.
Returns:
true if object has been constructed successfully.
public: void operator delete(void* ptr);
Operator delete.
Parameters:
ptr — address of allocated memory block or a null pointer.
public: void* operator new(size_t size);
Operator new.
Parameters:
size — number of bytes to allocate.
Returns:
allocated memory address or a null pointer.
public: void* operator new(size_t size, void* ptr);
Operator new.
Parameters:
size — unused.
ptr — pointer to reserved memory area
Returns:
given pointer.
public: virtual void release();
Releases one permit.
The method releases from one permit and returns this to the semaphore.
public: virtual void release(int32 permits);
Releases the given number of permits.
The method releases from the permits and returns these to the semaphore.
Parameters:
permits — the number of permits to release.
protected: static Type alloc(size_t size);
Allocates memory.
Parameters:
size — number of bytes to allocate.
Returns:
allocated memory address or a null pointer.
protected: static void free(void* ptr);
Frees an allocated memory.
Parameters:
ptr — address of allocated memory block or a null pointer.
protected: virtual void setConstruct(bool flag);
Sets the object constructed flag.
Parameters:
flag — constructed flag.









