VSM C++ SDK
Vehicle Specific Modules SDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
ugcs::vsm::Android_serial_processor Class Reference

Working with serial ports on Android platform. More...

#include <android_serial_processor.h>

Inheritance diagram for ugcs::vsm::Android_serial_processor:
ugcs::vsm::Request_context< is_processor > ugcs::vsm::Request_container

Classes

class  Stream
 

Public Types

typedef std::shared_ptr
< Android_serial_processor
Ptr
 Pointer type.
 
typedef std::weak_ptr
< Android_serial_processor
Weak_ptr
 Pointer type.
 
typedef Callback_proxy< void,
Io_stream::Ref
Open_handler
 Default prototype for open operation completion handler. More...
 
- Public Types inherited from ugcs::vsm::Request_context< is_processor >
typedef std::shared_ptr
< Request_context
Ptr
 Pointer type.
 
typedef std::weak_ptr
< Request_context
Weak_ptr
 Pointer type.
 
- Public Types inherited from ugcs::vsm::Request_container
enum  Type {
  Type::NONE = 0x0, Type::PROCESSOR = 0x1, Type::COMPLETION_CONTEXT = 0x2, Type::ANY = PROCESSOR | COMPLETION_CONTEXT,
  Type::TEMPORAL = 0x4, Type::TEMP_COMPLETION_CONTEXT = COMPLETION_CONTEXT | TEMPORAL
}
 Container type. More...
 
typedef std::shared_ptr
< Request_container
Ptr
 Pointer type.
 
typedef std::weak_ptr
< Request_container
Weak_ptr
 Pointer type.
 

Public Member Functions

Operation_waiter Open (const std::string &port_name, const Stream::Mode &mode=Stream::Mode(), Open_handler completion_handler=Make_dummy_callback< void, Stream::Ref >(), Request_completion_context::Ptr comp_ctx=Request_temp_completion_context::Create())
 Open serial device stream. More...
 
- Public Member Functions inherited from ugcs::vsm::Request_context< is_processor >
virtual Type Get_type () const override
 Get this container type. More...
 
- Public Member Functions inherited from ugcs::vsm::Request_container
 Request_container (const std::string &name, Request_waiter::Ptr waiter=Request_waiter::Create())
 Create container with default associated waiter. More...
 
bool Check_type (Type mask)
 Check if the container type conforms the specified characteristic mask. More...
 
void Submit_request (Request::Ptr request)
 Submit request to this container for further processing or notification handlers invocation. More...
 
void Submit_request_locked (Request::Ptr request, Request_waiter::Locker locker)
 The same as Submit_request, but with previously acquired lock of the associated waiter. More...
 
int Process_requests (int requests_limit=0)
 Process all currently queued requests. More...
 
int Process_requests (std::unique_lock< std::mutex > &lock, int requests_limit=0)
 Process all currently queued requests. More...
 
void Set_waiter (Request_waiter::Ptr waiter)
 Set request waiter associated with this container. More...
 
Request_waiter::Ptr Get_waiter () const
 Get request waiter associated with this container. More...
 
const std::string & Get_name ()
 Get the name of the container. More...
 
void Enable ()
 Enable the container. More...
 
void Disable ()
 Disable the container. More...
 
bool Is_enabled () const
 Check if the container is currently enabled. More...
 

Static Public Member Functions

template<typename... Args>
static Ptr Create (Args &&...args)
 Create an instance. More...
 
template<typename... Args>
static Ptr Get_instance (Args &&...args)
 Get global or create new processor instance. More...
 
static std::list< std::string > Enumerate_port_names ()
 
- Static Public Member Functions inherited from ugcs::vsm::Request_context< is_processor >
template<typename... Args>
static Ptr Create (Args &&...args)
 Create an instance. More...
 
- Static Public Member Functions inherited from ugcs::vsm::Request_container
template<typename... Args>
static Ptr Create (Args &&...args)
 Create an instance. More...
 

Friends

void Java_com_ugcs_vsm_Vsm_StreamReady (JNIEnv *env, jobject _this, jint streamId)
 
void Java_com_ugcs_vsm_Vsm_StreamClosed (JNIEnv *env, jobject _this, jint streamId)
 
void Java_com_ugcs_vsm_Vsm_StreamWriteComplete (JNIEnv *env, jobject _this, jint streamId, jboolean succeeded)
 
void Java_com_ugcs_vsm_Vsm_StreamReadComplete (JNIEnv *env, jobject _this, jint streamId, jobject buf)
 

Additional Inherited Members

- Protected Member Functions inherited from ugcs::vsm::Request_container
void Processing_loop ()
 Request processing loop implementation. More...
 
void Set_disabled ()
 Disable the container and notify its waiter. More...
 
virtual void On_wait_and_process ()
 Called when default processing loop want to wait for work and process it. More...
 
- Protected Attributes inherited from ugcs::vsm::Request_container
Request_waiter::Ptr waiter
 Waiter associated with this container. More...
 
std::list< Request::Ptrrequest_queue
 Queue of pending requests, i.e. More...
 

Detailed Description

Working with serial ports on Android platform.

It includes also Java-side part it interacts with.

Member Typedef Documentation

Default prototype for open operation completion handler.

Stream argument is nun-null if succeeded, null otherwise.

Member Function Documentation

template<typename... Args>
static Ptr ugcs::vsm::Android_serial_processor::Create ( Args &&...  args)
inlinestatic

Create an instance.

template<typename... Args>
static Ptr ugcs::vsm::Android_serial_processor::Get_instance ( Args &&...  args)
inlinestatic

Get global or create new processor instance.

Operation_waiter ugcs::vsm::Android_serial_processor::Open ( const std::string &  port_name,
const Stream::Mode mode = Stream::Mode(),
Open_handler  completion_handler = Make_dummy_callback< void, Stream::Ref >(),
Request_completion_context::Ptr  comp_ctx = Request_temp_completion_context::Create() 
)

Open serial device stream.

Parameters
port_nameName returned by Enumerate_port_names() method.
modePort mode.
Returns
Operation waiter for open request.

The documentation for this class was generated from the following file: