1168415b822cae1f8b54ef09c41c11a9b97b87f40San Mehat/* 2168415b822cae1f8b54ef09c41c11a9b97b87f40San Mehat * Copyright (C) 2008 The Android Open Source Project 3168415b822cae1f8b54ef09c41c11a9b97b87f40San Mehat * 4168415b822cae1f8b54ef09c41c11a9b97b87f40San Mehat * Licensed under the Apache License, Version 2.0 (the "License"); 5168415b822cae1f8b54ef09c41c11a9b97b87f40San Mehat * you may not use this file except in compliance with the License. 6168415b822cae1f8b54ef09c41c11a9b97b87f40San Mehat * You may obtain a copy of the License at 7168415b822cae1f8b54ef09c41c11a9b97b87f40San Mehat * 8168415b822cae1f8b54ef09c41c11a9b97b87f40San Mehat * http://www.apache.org/licenses/LICENSE-2.0 9168415b822cae1f8b54ef09c41c11a9b97b87f40San Mehat * 10168415b822cae1f8b54ef09c41c11a9b97b87f40San Mehat * Unless required by applicable law or agreed to in writing, software 11168415b822cae1f8b54ef09c41c11a9b97b87f40San Mehat * distributed under the License is distributed on an "AS IS" BASIS, 12168415b822cae1f8b54ef09c41c11a9b97b87f40San Mehat * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13168415b822cae1f8b54ef09c41c11a9b97b87f40San Mehat * See the License for the specific language governing permissions and 14168415b822cae1f8b54ef09c41c11a9b97b87f40San Mehat * limitations under the License. 15168415b822cae1f8b54ef09c41c11a9b97b87f40San Mehat */ 16168415b822cae1f8b54ef09c41c11a9b97b87f40San Mehat#ifndef _NETLINKEVENT_H 17168415b822cae1f8b54ef09c41c11a9b97b87f40San Mehat#define _NETLINKEVENT_H 18168415b822cae1f8b54ef09c41c11a9b97b87f40San Mehat 1917260b14682d4fe59dad3de2de8c9370e6ba9a71Mike J. Chen#include <sysutils/NetlinkListener.h> 2017260b14682d4fe59dad3de2de8c9370e6ba9a71Mike J. Chen 21168415b822cae1f8b54ef09c41c11a9b97b87f40San Mehat#define NL_PARAMS_MAX 32 22168415b822cae1f8b54ef09c41c11a9b97b87f40San Mehat 23168415b822cae1f8b54ef09c41c11a9b97b87f40San Mehatclass NetlinkEvent { 24168415b822cae1f8b54ef09c41c11a9b97b87f40San Mehat int mSeq; 25168415b822cae1f8b54ef09c41c11a9b97b87f40San Mehat char *mPath; 26168415b822cae1f8b54ef09c41c11a9b97b87f40San Mehat int mAction; 27168415b822cae1f8b54ef09c41c11a9b97b87f40San Mehat char *mSubsystem; 28168415b822cae1f8b54ef09c41c11a9b97b87f40San Mehat char *mParams[NL_PARAMS_MAX]; 29168415b822cae1f8b54ef09c41c11a9b97b87f40San Mehat 30168415b822cae1f8b54ef09c41c11a9b97b87f40San Mehatpublic: 31168415b822cae1f8b54ef09c41c11a9b97b87f40San Mehat const static int NlActionUnknown; 32168415b822cae1f8b54ef09c41c11a9b97b87f40San Mehat const static int NlActionAdd; 33168415b822cae1f8b54ef09c41c11a9b97b87f40San Mehat const static int NlActionRemove; 34168415b822cae1f8b54ef09c41c11a9b97b87f40San Mehat const static int NlActionChange; 35ec16b9d47cacb0d873ee0ff80c919f49215c0005Mike J. Chen const static int NlActionLinkDown; 36ec16b9d47cacb0d873ee0ff80c919f49215c0005Mike J. Chen const static int NlActionLinkUp; 37168415b822cae1f8b54ef09c41c11a9b97b87f40San Mehat 38168415b822cae1f8b54ef09c41c11a9b97b87f40San Mehat NetlinkEvent(); 39168415b822cae1f8b54ef09c41c11a9b97b87f40San Mehat virtual ~NetlinkEvent(); 40168415b822cae1f8b54ef09c41c11a9b97b87f40San Mehat 4117260b14682d4fe59dad3de2de8c9370e6ba9a71Mike J. Chen bool decode(char *buffer, int size, int format = NetlinkListener::NETLINK_FORMAT_ASCII); 42168415b822cae1f8b54ef09c41c11a9b97b87f40San Mehat const char *findParam(const char *paramName); 43168415b822cae1f8b54ef09c41c11a9b97b87f40San Mehat 44168415b822cae1f8b54ef09c41c11a9b97b87f40San Mehat const char *getSubsystem() { return mSubsystem; } 45168415b822cae1f8b54ef09c41c11a9b97b87f40San Mehat int getAction() { return mAction; } 46d674413ff460afe1da049e54bb7a489132799749San Mehat 47d674413ff460afe1da049e54bb7a489132799749San Mehat void dump(); 48ec16b9d47cacb0d873ee0ff80c919f49215c0005Mike J. Chen 49ec16b9d47cacb0d873ee0ff80c919f49215c0005Mike J. Chen protected: 50ec16b9d47cacb0d873ee0ff80c919f49215c0005Mike J. Chen bool parseBinaryNetlinkMessage(char *buffer, int size); 51ec16b9d47cacb0d873ee0ff80c919f49215c0005Mike J. Chen bool parseAsciiNetlinkMessage(char *buffer, int size); 52168415b822cae1f8b54ef09c41c11a9b97b87f40San Mehat}; 53168415b822cae1f8b54ef09c41c11a9b97b87f40San Mehat 54168415b822cae1f8b54ef09c41c11a9b97b87f40San Mehat#endif 55